[Bug 1266492] Re: ld:i386 crashes with -static -fPIE -pie
Matthias Klose
doko at ubuntu.com
Wed Jan 29 14:02:31 UTC 2014
Am 29.01.2014 09:39, schrieb Steve Beattie:
> The most proper way that I can see to address this would be to rely on
> the default dpkg-buildflags to get the basic level of protections. Then
> to get all the protections, build depend on hardening-wrapper and export
> DEB_BUILD_HARDENING=1 in debian/rules. I've attached a debdiff that I've
> verified builds on all available architectures for ureadahead, since
> that package is also hitting this issue.
yes that was the fix I had in mind.
> The least invasive workaround would be to export MALLOC_CHECK=2 at build
> time (i.e. in debian/rules), as this causes glibc to abort without
> attempting to produce a backtrace when it detects internal malloc
> corruption. This unfortunately still leaves configure believing that
> 'gcc -static' doesn't work, but it at least causes builds not to hang.
sure, that would mimic the behaviour we did see before the glibc update, but
papering over the original issue. In practice this shouldn't be an issue
because we only build static binaries in very few cases.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to eglibc in Ubuntu.
https://bugs.launchpad.net/bugs/1266492
Title:
ld:i386 crashes with -static -fPIE -pie
Status in Embedded GLIBC:
Incomplete
Status in “binutils” package in Ubuntu:
Confirmed
Status in “eglibc” package in Ubuntu:
New
Status in “evolution-data-server” package in Ubuntu:
Triaged
Status in “xorg-server” package in Ubuntu:
Triaged
Status in “binutils” source package in Trusty:
Confirmed
Status in “eglibc” source package in Trusty:
New
Status in “evolution-data-server” source package in Trusty:
Triaged
Status in “xorg-server” source package in Trusty:
Triaged
Bug description:
Making a simple file conftest.c with the following contents:
int main() { return 0; }
And then compiling it on i386 with gcc -fPIE -pie -static conftest.c
returns:
*** Error in `/usr/bin/ld': corrupted double-linked list: 0x08dddb38
***
This breaks compilation xorg-server on i386. I believe that -static
-fPIE -pie is probably invalid, and it fails on amd64 too.
$ gcc -fPIE -pie -static conftest.c
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbeginT.o: relocation R_X86_64_32 against `__TMC_END__' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-linux-gnu/4.8/crtbeginT.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
But autoconf hangs on the corrupted double-linked list, which times
out the xorg-server build.
To manage notifications about this bug go to:
https://bugs.launchpad.net/eglibc/+bug/1266492/+subscriptions
More information about the foundations-bugs
mailing list