Red Hat Bugzilla – Bug 1440250
elf/check-localplt test fails with binutils 2.27
Last modified: 2018-04-10 10:00:11 EDT
Created attachment 1269836 [details] elf-check-localplt test output Description of problem: elf/check-localplt test fails Version-Release number of selected component (if applicable): glibc-2.17-192.el7 binutils-2.27-7.base.el7 How reproducible: build glibc, then run tests Steps to Reproduce: 1. rpmbuild -bc ~/rpmbuild/SPECS/glibc.spec 2. cd ~/rpmbuild/BUILD/glibc-*/build-*/ && make check Actual results: elf/check-localplt test fails Expected results: elf/check-localplt must be passed Additional info: Test pass with binutils-2.25.1-22 build log: <...> LC_ALL=C gawk -f ../scripts/localplt.awk /root/rpmbuild/BUILD/glibc-2.17-c758a686/build-x86_64-redhat-linux/libc.so.jmprel /root/rpmbuild/BUILD/glibc-2.17-c758a686/build-x86_64-redhat-linux/math/libm.so.jmprel /root/rpmbuild/BUILD/glibc-2.17-c758a686/build-x86_64-redhat-linux/rt/librt.so.jmprel /root/rpmbuild/BUILD/glibc-2.17-c758a686/build-x86_64-redhat-linux/dlfcn/libdl.so.jmprel /root/rpmbuild/BUILD/glibc-2.17-c758a686/build-x86_64-redhat-linux/resolv/libresolv.so.jmprel /root/rpmbuild/BUILD/glibc-2.17-c758a686/build-x86_64-redhat-linux/crypt/libcrypt.so.jmprel /root/rpmbuild/BUILD/glibc-2.17-c758a686/build-x86_64-redhat-linux/nptl/libpthread.so.jmprel | \ LC_ALL=C gawk -f ../scripts/check-localplt.awk ../sysdeps/generic/localplt.data - \ > /root/rpmbuild/BUILD/glibc-2.17-c758a686/build-x86_64-redhat-linux/elf/check-localplt.out make[3]: *** [/root/rpmbuild/BUILD/glibc-2.17-c758a686/build-x86_64-redhat-linux/elf/check-localplt.out] Error 1 Upstream bug: https://sourceware.org/bugzilla/show_bug.cgi?id=18078
(In reply to skolosov from comment #0) > /root/rpmbuild/BUILD/glibc-2.17-c758a686/build-x86_64-redhat-linux/elf/check- > localplt.out > make[3]: *** > [/root/rpmbuild/BUILD/glibc-2.17-c758a686/build-x86_64-redhat-linux/elf/ > check-localplt.out] Error 1 Could you please post the output of check-localplt.out? If it's just a testsuite issue where a PLT entry is elided then we can at our discretion (rhe-7.5) backport the testsuite fixes to remove the failure.
Sure, check-localplt.out is attached: "elf-check-localplt test output"
*** Bug 1481681 has been marked as a duplicate of this bug. ***
This should fix it: commit a0af371c25ac1f215cf0db64e54cbb9a1b51f78c Author: Alan Modra <amodra@gmail.com> Date: Fri Feb 20 15:23:28 2015 +1030 Fix localplt test breakage with new readelf
I also see some new ifunc failures on x86-64, which are related to the binutils rebase. /usr/bin/ld: /root/build/elf/ifuncmod1.os: relocation R_X86_64_PC32 against protected symbol `global' can not be used when making a shared object /usr/bin/ld: final link failed: Bad value collect2: error: ld returned 1 exit status make[2]: *** [/root/build/elf/ifuncmod1.so] Error 1 The above should be fixed by this upstream commit: commit e0ed2fb40a0e29c43cf60addc74741dab15f2e05 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Mar 6 04:55:56 2015 -0800 Replace __attribute__((visibility("protected"))) With copy relocation, address of protected data defined in the shared library may be external. Compiler shouldn't asssume protected data will be local. But due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65248 __attribute__((visibility("protected"))) doesn't work correctly, we need to use asm (".protected xxx") instead.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2018:0805