Summary: | sys-libs/glibc-2.12.2: MAKEOPTS=-s: ld hits internal error at bfd/elf32-i386.c:2946:elf_i386_relocate_section with binutils-2.20.1-r1 on hardened | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Fabiano Francesconi <fabiano.francesconi> |
Component: | [OLD] Core system | Assignee: | Gentoo Toolchain Maintainers <toolchain> |
Status: | RESOLVED OBSOLETE | ||
Severity: | normal | CC: | hardened |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
emerge --info
ebuild.log Build log |
Created attachment 275871 [details]
ebuild.log
Comment on attachment 275871 [details]
ebuild.log
this log is useless. never post something built with MAKEFLAGS=-s in your bug reports. please re-emerge with a proper log and post that as an attachment.
would be useful to see if binutils-2.21 fails as well This is weird.. I tried removing "-s" from the MAKEOPTS and now suddently it compiles just fine. Is it ok? I don't think so.. now I will try to recompile it re-adding the "-s" to the make options and let see what happens.. Ok, confirmed. Readding '-s' to MAKEOPTS breaks the compiling phase. Created attachment 276023 [details]
Build log
I've switched to i686-pc-linux-gnu-4.4.5 (from i686-pc-linux-gnu-4.4.5-hardenednopie) and I removed the "-s" flag from MAKEOPTS and it crashes again. See attached build.log (it's a tarball that contains ~8mb plain text file) for more information and have you tried binutils-2.21 ? Same error. /usr/lib/gcc/i686-pc-linux-gnu/4.4.5/../../../../i686-pc-linux-gnu/bin/ld: BFD (GNU Binutils) 2.21 internal error, aborting at /var/tmp/portage/sys-devel/binutils-2.21/work/binutils-2.21/bfd/elf32-i386.c line 3042 in elf_i386_relocate_section This is the snippet of code: " if ((input_section->flags & SEC_ALLOC) == 0 || h->plt.offset == (bfd_vma) -1) abort ();" And here is a comment from the previous if: /* Since STT_GNU_IFUNC symbol must go through PLT, we handle it here if it is defined in a non-shared object. */ So maybe a non shared object is in that command and shouldn't be? Not sure how to check that though :( i can't reproduce with recent versions: sys-devel/binutils-2.24-r3 sys-devel/gcc-4.8.3 sys-libs/glibc-2.20-r2 specifically i tried: MAKEOPTS='-j2 -s' emerge glibc (In reply to SpanKY from comment #11) and that's on an hardened/linux/amd64/no-multilib system |
Created attachment 275869 [details] emerge --info See attached files