[oe] [meta-oe][PATCH] libhugetlbfs: x86 - don't link against host libs

Martin Jansa martin.jansa at gmail.com
Wed Apr 15 17:16:53 UTC 2015


On Mon, Apr 13, 2015 at 11:18:59PM -0500, Gary S. Robertson wrote:
> The x86 build linker scripts were still searching hard-coded paths on the
> build host for libraries.  As it happens, the libraries needed for
> linking the failing executable are present on my build host, so the build
> succeeds here despite the erroneous linker paths.  Consequently I had
> stupidly assumed the resulting QA warning was a fairly benign error
> until your test build in a pristine environment demonstrated otherwise.
> 
> I'm unclear as to the exact behavior shown by your log of the failed build,
> but since it is a linker error I am for now assuming it is precipitated
> somehow by the flawed library search paths.  In any case with the
> hard-coded host paths commented out I get a clean build without the QA
> warning and see no similar logs in my local builds - so I hope this will
> also fix the build failures on your end.

Thanks for quick response, but this doesn't seem to be enough:

| /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/libexec/i586-oe-linux/gcc/i586-oe-linux/4.9.2/ld: Attempt to open /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86/lib/libgcc_s.so succeeded
| i586-oe-linux-gcc  -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86 -I.. -O2 -Wall -g -o obj32/zero_filesize_segment.o -c zero_filesize_segment.c
| i586-oe-linux-gcc  -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,noexecstack -ldl -L../obj32 -o obj32/zero_filesize_segment -Lobj32 zero_filesize_segment.ld obj32/zero_filesize_segment.o obj32/testutils.o -Wl,--no-as-needed -lpthread -ldl -lhugetlbfs_privutils || cp bad-toolchain.sh obj32/zero_filesize_segment
| /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/libexec/i586-oe-linux/gcc/i586-oe-linux/4.9.2/ld: error: zero_filesize_segment.ld: SECTIONS seen after other input files; try -T/--script
| /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/libexec/i586-oe-linux/gcc/i586-oe-linux/4.9.2/ld: internal error in input_sections_begin, at /home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-oe-linux/binutils-cross-i586/2.25-r0/git/gold/merge.h:269
| collect2: error: ld returned 1 exit status
| i586-oe-linux-gcc  -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86 -I.. -O2 -Wall -g -o obj32/linkhuge.o -c linkhuge.c
| i586-oe-linux-gcc  -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,noexecstack -ldl -L../obj32 -o obj32/linkhuge obj32/linkhuge.o obj32/testutils.o -Wl,--no-as-needed -lpthread -ldl -lhugetlbfs_privutils
| i586-oe-linux-gcc  -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86 -I.. -O2 -Wall -g -o obj32/linkhuge_nofd.o -c linkhuge_nofd.c
| i586-oe-linux-gcc  -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,noexecstack -ldl -L../obj32 -o obj32/linkhuge_nofd obj32/linkhuge_nofd.o obj32/testutils.o -Wl,--no-as-needed -lpthread -ldl -lhugetlbfs_privutils
| i586-oe-linux-gcc  -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86 -I.. -O2 -Wall -g -o obj32/linkshare.o -c linkshare.c
| i586-oe-linux-gcc  -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,noexecstack -ldl -L../obj32 -o obj32/linkshare obj32/linkshare.o obj32/testutils.o -Wl,--no-as-needed -lpthread -ldl -lhugetlbfs_privutils
| i586-oe-linux-gcc  -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86 -I.. -O2 -Wall -g -o obj32/linkhuge_rw.o -c linkhuge_rw.c
| i586-oe-linux-gcc  -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86 -B./obj32 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,noexecstack -ldl -L../obj32 -o obj32/linkhuge_rw -Wl,--no-as-needed -lpthread -ldl -lhugetlbfs_privutils -Wl,--hugetlbfs-align obj32/linkhuge_rw.o obj32/testutils.o
| i586-oe-linux-ld: internal error in do_write, at /home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-oe-linux/binutils-cross-i586/2.25-r0/git/gold/output.cc:464
| collect2: error: ld returned 1 exit status

Please try to build qemux86 with gold (ld-is-gold in DISTRO_FEATURES) to see if you reproduce this issue.

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com



More information about the Openembedded-devel mailing list