Message ID | 20171219010956.GA3478@gmail.com |
---|---|
State | New |
Headers | show |
Series | Add --enable-static-pie variants to x86_64, x32 and i686 | expand |
On Mon, 18 Dec 2017, H.J. Lu wrote: > Since the default GCC and binutils versions used by build-many-glibcs.py, > which are GCC 7 branch and binutils 2.29 branch, support static PIE on > x86_64, x32 and i686, this patch adds --enable-static-pie glibc variants > to x86_64, x32 and i686 to get some coverage for static PIE. > > Tested with build-many-glibcs.py. > > OK for master? OK.
I see FAIL: glibcs-x86_64-linux-gnu-static-pie check with both GCC 6 and GCC 7, a linker error building elf/tst-prelink. This is: /scratch/jmyers/glibc-bot/install/compilers/x86_64-linux-gnu/lib/gcc/x86_64-glibc-linux-gnu/7.2.1/../../../../x86_64-glibc-linux-gnu/bin/ld: /scratch/jmyers/glibc-bot/build/glibcs/x86_64-linux-gnu-static-pie/glibc/elf/tst-prelink.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC (and the same with GCC 6).
On Tue, Dec 19, 2017 at 8:55 AM, Joseph Myers <joseph@codesourcery.com> wrote: > I see > > FAIL: glibcs-x86_64-linux-gnu-static-pie check > > with both GCC 6 and GCC 7, a linker error building elf/tst-prelink. > > This is: > > /scratch/jmyers/glibc-bot/install/compilers/x86_64-linux-gnu/lib/gcc/x86_64-glibc-linux-gnu/7.2.1/../../../../x86_64-glibc-linux-gnu/bin/ld: /scratch/jmyers/glibc-bot/build/glibcs/x86_64-linux-gnu-static-pie/glibc/elf/tst-prelink.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC > > (and the same with GCC 6). This is: https://sourceware.org/bugzilla/show_bug.cgi?id=22630
diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py index 5453000df0..b317d598d1 100755 --- a/scripts/build-many-glibcs.py +++ b/scripts/build-many-glibcs.py @@ -368,6 +368,15 @@ class Context(object): {'arch': 'i686', 'ccopts': '-m32 -march=i686'}], extra_glibcs=[{'variant': 'disable-multi-arch', 'cfg': ['--disable-multi-arch']}, + {'variant': 'static-pie', + 'cfg': ['--enable-static-pie']}, + {'variant': 'x32-static-pie', + 'ccopts': '-mx32', + 'cfg': ['--enable-static-pie']}, + {'variant': 'static-pie', + 'arch': 'i686', + 'ccopts': '-m32 -march=i686', + 'cfg': ['--enable-static-pie']}, {'variant': 'disable-multi-arch', 'arch': 'i686', 'ccopts': '-m32 -march=i686',