Bug 1300734

Summary: "GOT: symbol address load from got to larl" ld test case failed on s390x
Product: Red Hat Enterprise Linux 7 Reporter: Miloš Prchlík <mprchlik>
Component: binutilsAssignee: Nick Clifton <nickc>
Status: CLOSED ERRATA QA Contact: Miloš Prchlík <mprchlik>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.3CC: law, mcermak, mnewsome, ohudlick
Target Milestone: rcKeywords: Patch
Target Release: ---   
Hardware: s390x   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
undefined
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-04 01:54:35 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:
Bug Depends On:    
Bug Blocks: 1297579, 1313485    
Attachments:
Description Flags
Update linker test case none

Description Miloš Prchlík 2016-01-21 15:06:17 UTC
Description of problem:

ld's test suite reports one unexpected failed test, apaprently it's this one:

/root/rpmbuild/BUILD/binutils-2.25.1/ld/ld-new   -znorelro  -o tmpdir/gotreloc_31-1 -L/root/rpmbuild/BUILD/binutils-2.25.1/ld/testsuite/ld-s390 -shared -melf_s390 --version-script=gotreloc-1.ver tmpdir/gotreloc-1.o 
Executing on host: sh -c {/root/rpmbuild/BUILD/binutils-2.25.1/ld/ld-new   -znorelro  -o tmpdir/gotreloc_31-1 -L/root/rpmbuild/BUILD/binutils-2.25.1/ld/testsuite/ld-s390 -shared -melf_s390 --version-script=gotreloc-1.ver tmpdir/gotreloc-1.o  2>&1}  /dev/null ld.tmp (timeout = 300)
spawn [open ...]
Executing on host: sh -c {/root/rpmbuild/BUILD/binutils-2.25.1/ld/../binutils/objdump -dzrj.text tmpdir/gotreloc_31-1 >dump.out 2>ld.stderr}  /dev/null  (timeout = 300)
spawn [open ...]
/root/rpmbuild/BUILD/binutils-2.25.1/ld/../binutils/objdump -dzrj.text tmpdir/gotreloc_31-1
regexp_diff match failure
regexp "^.*:    c4 18 00 00             .long   0xc4180000$"
line   " 14c:   c4 18 00 00 08 4e       lgrl    %r1,11e8 <_GLOBAL_OFFSET_TABLE_+0xc>"
regexp_diff match failure
regexp "^.*:    08 4e e3 10             .long   0x084ee310$"
line   " 152:   e3 10 c0 0c 00 04       lg      %r1,12(%r12)"
regexp_diff match failure
regexp "^.*:    c0 0c 00 04             .long   0xc00c0004$"
line   " 158:   c0 10 00 00 00 08       larl    %r1,168 <bar>"
regexp_diff match failure
regexp "^.*:    c0 10 00 00 00 08 [      ]*larl %r1,168 <bar>$"
line   " 15e:   58 10 c0 0c             l       %r1,12(%r12)"
regexp_diff match failure
regexp "^.*:    58 10 c0 0c [    ]*l    %r1,12\(%r12\)$"
line   " 162:   c0 10 00 00 00 03       larl    %r1,168 <bar>"
regexp_diff match failure
regexp "^.*:    c0 10 00 00 00 03 [      ]*larl %r1,168 <bar>$"
line   "00000168 <bar>:"
regexp_diff match failure
regexp "^.* <bar>:$"
line   " 168:   00 00 01 23             .long   0x00000123"
extra regexps in /root/rpmbuild/BUILD/binutils-2.25.1/ld/testsuite/ld-s390/gotreloc_31-1.dd starting with "^.*: 00 00 01 23             .long   0x00000123$"
EOF from dump.out
FAIL: GOT: symbol address load from got to larl

64bit version seems to pass quite fine:

/root/rpmbuild/BUILD/binutils-2.25.1/ld/ld-new   -znorelro  -o tmpdir/gotreloc_64-1 -L/root/rpmbuild/BUILD/binutils-2.25.1/ld/testsuite/ld-s390 -shared -melf64_s390 --version-script=gotreloc-1.ver tmpdir/gotreloc-1.o 
Executing on host: sh -c {/root/rpmbuild/BUILD/binutils-2.25.1/ld/ld-new   -znorelro  -o tmpdir/gotreloc_64-1 -L/root/rpmbuild/BUILD/binutils-2.25.1/ld/testsuite/ld-s390 -shared -melf64_s390 --version-script=gotreloc-1.ver tmpdir/gotreloc-1.o  2>&1}  /dev/null ld.tmp (timeout = 300)
spawn [open ...]
Executing on host: sh -c {/root/rpmbuild/BUILD/binutils-2.25.1/ld/../binutils/objdump -dzrj.text tmpdir/gotreloc_64-1 >dump.out 2>ld.stderr}  /dev/null  (timeout = 300)
spawn [open ...]
/root/rpmbuild/BUILD/binutils-2.25.1/ld/../binutils/objdump -dzrj.text tmpdir/gotreloc_64-1
PASS: GOT: symbol address load from got to larl



Version-Release number of selected component (if applicable):

binutils-2.25.1-10.el7.s390x


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Nick Clifton 2016-01-29 10:23:21 UTC
Created attachment 1119392 [details]
Update linker test case

This test case in the linker testsuite is out of date with respect to the latest output from objdump. (It was expecting just raw bytes as the output, but now objdump tries to disassemble them).

This patch updates the test case.

Comment 3 Nick Clifton 2016-02-15 17:25:30 UTC
Patch checked in.  Moved to MODIFIED.

Comment 5 Miloš Prchlík 2016-06-24 09:41:52 UTC
Verified for build binutils-2.25.1-19.base.el7.

Comment 7 errata-xmlrpc 2016-11-04 01:54:35 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://rhn.redhat.com/errata/RHBA-2016-2265.html