Bug 1440250

Summary: elf/check-localplt test fails with binutils 2.27
Product: Red Hat Enterprise Linux 7 Reporter: Sergey Kolosov <skolosov>
Component: glibcAssignee: Patsy Griffin <pfrankli>
Status: CLOSED ERRATA QA Contact: Sergey Kolosov <skolosov>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.4CC: ashankar, codonell, fweimer, mcermak, mnewsome, mpetlan, pfrankli, skolosov
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Unspecified   
Whiteboard:
Fixed In Version: 2.17-214.el7 Doc Type: No Doc Update
Doc Text:
undefined
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-10 13:58:28 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1471969    
Attachments:
Description Flags
elf-check-localplt test output none

Description Sergey Kolosov 2017-04-07 16:52:08 UTC
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

Comment 2 Carlos O'Donell 2017-04-07 17:04:57 UTC
(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.

Comment 3 Sergey Kolosov 2017-04-07 17:12:23 UTC
Sure, check-localplt.out is attached: "elf-check-localplt test output"

Comment 5 Michael Petlan 2017-09-14 14:11:17 UTC
*** Bug 1481681 has been marked as a duplicate of this bug. ***

Comment 6 Michael Petlan 2017-09-14 14:12:47 UTC
This should fix it:

commit a0af371c25ac1f215cf0db64e54cbb9a1b51f78c
Author: Alan Modra <amodra>
Date:   Fri Feb 20 15:23:28 2015 +1030

    Fix localplt test breakage with new readelf

Comment 7 Florian Weimer 2017-09-25 13:48:42 UTC
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>
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.

Comment 12 errata-xmlrpc 2018-04-10 13:58:28 UTC
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