Re: [PATCH] scripts: Fix linking extract-cert against libcrypto

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am Dienstag, 9. Februar 2021, 09:44:33 CET schrieb Rolf Eike Beer:
> Am Dienstag, 9. Februar 2021, 05:59:56 CET schrieb Daniel Díaz:
> > When compiling under OpenEmbedded, the following error is seen
> > 
> > as of recently:
> >   /srv/oe/build/tmp/hosttools/ld: cannot find /lib/libc.so.6 inside /
> >   /srv/oe/build/tmp/hosttools/ld: cannot find /usr/lib/libc_nonshared.a
> > 
> > inside / /srv/oe/build/tmp/hosttools/ld: cannot find
> > /lib/ld-linux-x86-64.so.2 inside / collect2: error: ld returned 1 exit
> > status
> > 
> >   make[2]: *** [scripts/Makefile.host:95: scripts/extract-cert] Error 1
> 
> [...]
> 
> > As per `make`'s documentation:
> >   LDFLAGS
> >   
> >     Extra flags to give to compilers when they are supposed to
> >     invoke the linker, ‘ld’, such as -L. Libraries (-lfoo)
> >     should be added to the LDLIBS variable instead.
> >   
> >   LDLIBS
> >   
> >     Library flags or names given to compilers when they are
> >     supposed to invoke the linker, ‘ld’. LOADLIBES is a
> >     deprecated (but still supported) alternative to LDLIBS.
> >     Non-library linker flags, such as -L, should go in the
> >     LDFLAGS variable.
> 
> Correct. And the patch I use for my local 4.19 build actually uses LDLIBS,
> so it must have gone wrong in some rebase for one of the intermediate
> versions.
> 
> Acked-by: Rolf Eike Beer <eb@xxxxxxxxx>

Ok, now actually with proper testing: no, your patch doesn't work. When 
changing LDLIBS to LDFLAGS things do not show up on the commandline at all.

LDLIBS:

  gcc -Wp,-MMD,scripts/.sign-file.d -Wall -Wmissing-prototypes -Wstrict-
prototypes -O2 -fomit-frame-pointer -std=gnu89      -I/opt/emlix/test/include 
-I ./scripts   -o scripts/sign-file /tmp/e2/build/linux-kernel/scripts/sign-
file.c   -L/opt/emlix/test/lib -lcrypto -lz -ldl -pthread

LDFLAGS:

  gcc -Wp,-MMD,scripts/.sign-file.d -Wall -Wmissing-prototypes -Wstrict-
prototypes -O2 -fomit-frame-pointer -std=gnu89      -I/opt/emlix/test/include 
-I ./scripts   -o scripts/sign-file /tmp/e2/build/linux-kernel/scripts/sign-
file.c   

When looking closely you may notice that this is not entirely the same as 
current master would output: I missed the CFLAGS for sign-file in my patch. 
When testing your patch I accidentially had a .config that had module 
signatures disabled, so I have not tested it actually, that's why I didn't 
notice that it doesn't work.

I'm just guessing, but your build error looks like you are also cross-building 
the tools, which is wrong. You want them to be host-tools. So don't export 
PKG_CONFIG_SYSROOT_DIR, it would then try to link target libraries into a host  
binary.

Eike
-- 
Rolf Eike Beer, emlix GmbH, http://www.emlix.com
Fon +49 551 30664-0, Fax +49 551 30664-11
Gothaer Platz 3, 37083 Göttingen, Germany
Sitz der Gesellschaft: Göttingen, Amtsgericht Göttingen HR B 3160
Geschäftsführung: Heike Jordan, Dr. Uwe Kracke – Ust-IdNr.: DE 205 198 055

emlix - smart embedded open source

Attachment: signature.asc
Description: This is a digitally signed message part.


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux