[Bug 1623418] Re: gcc-as-needed.diff patch broke mpx support in GCC
Matthias Klose
doko at ubuntu.com
Sun Sep 17 10:30:56 UTC 2017
$ gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ gcc -fcheck-pointer-bounds -mmpx foo.c
$ ldd a.out
linux-vdso.so.1 => (0x00007fff289d1000)
libmpx.so.0 => /usr/lib/x86_64-linux-gnu/libmpx.so.0 (0x00007fce0497a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fce045b0000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fce04393000)
/lib64/ld-linux-x86-64.so.2 (0x00007fce04b81000)
** Tags removed: verification-needed-xenial
** Tags added: verification-done-xenial
** Tags removed: verification-needed
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to binutils in Ubuntu.
https://bugs.launchpad.net/bugs/1623418
Title:
gcc-as-needed.diff patch broke mpx support in GCC
Status in gcc:
Unknown
Status in binutils package in Ubuntu:
Fix Released
Status in gcc-5 package in Ubuntu:
Fix Released
Status in gcc-6 package in Ubuntu:
Fix Released
Status in binutils source package in Xenial:
Fix Released
Status in gcc-5 source package in Xenial:
Fix Committed
Status in binutils source package in Yakkety:
Won't Fix
Status in gcc-5 source package in Yakkety:
Won't Fix
Status in gcc-6 source package in Yakkety:
Won't Fix
Bug description:
[SRU Justification]
gcc-5 from Ubuntu is configured with MPX support, but it is broken due
to always-added linker option "-as-needed".
[Test case]
1. Pass -mmpx to gcc when building an arbitrary project on x86.
2. Verify with ldd that the resulting executable is not linked against libmpx.so because the -as-needed flag has discarded the mpx library from being linked in.
3. Install binutils and gcc-5 from -proposed.
4. Rebuild the target, again with -mmpx.
5. Verify with ldd that the new executable is linked against libmpx.so.
6. Verify that there are no regressions in the binutils testsuite on any architectures, by manually checking the results in the build log.
[Regression potential]
This binutils patch implements new --push-state / --pop-state options which will not be used in the common case, only when -mmpx is passed. When these flags are not in use, which is the default, it should have no effect on the behavior of the toolchain, so risk of regression is minimal.
Here is the GCC upstream bug & fix
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77267
https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=240057
Would it be possible to backport this fix to Ubuntu gcc-5 build?
To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc/+bug/1623418/+subscriptions
More information about the foundations-bugs
mailing list