Bug 1582602
Summary: | ld should allow "lea foo@GOT, %ecx" [rhel-7.5.z] | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Oneata Mircea Teodor <toneata> |
Component: | binutils | Assignee: | Nick Clifton <nickc> |
Status: | CLOSED ERRATA | QA Contact: | Miloš Prchlík <mprchlik> |
Severity: | medium | Docs Contact: | Vladimír Slávik <vslavik> |
Priority: | high | ||
Version: | 7.6 | CC: | alanm, dkochuka, fweimer, jcastran, law, mcermak, mnewsome, mpolacek, mprchlik, nickc, ohudlick, stalexan |
Target Milestone: | rc | Keywords: | ZStream |
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | binutils-2.27-28.base.el7_5.1 | Doc Type: | Bug Fix |
Doc Text: |
The "ld" linker based on the BFD library was too restrictive in its handling of a special form of the Load Effective Address (LEA) instruction in the AMD64 and Intel 64 architectures when building a shared library. As a consequence, the linker rejected valid code with an error message about an invalid relocation. The linker has been modified to handle addressing mode correctly. As a result, valid code that uses this instruction is accepted.
|
Story Points: | --- |
Clone Of: | 1573872 | Environment: | |
Last Closed: | 2018-06-26 16:52:35 UTC | Type: | --- |
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: | 1573872 | ||
Bug Blocks: |
Description
Oneata Mircea Teodor
2018-05-25 17:25:55 UTC
Update N-V-R to use correct z-stream syntax. Verified with build binutils-2.27-28.base.el7_5.1.x86_64, using the provided reproducer. [root@sheep-30 ~]# gcc -B./ -m32 -c -o x.o x.S [root@sheep-30 ~]# ld -melf_i386 -shared -o libx.so x.o ld: x.o: direct GOT relocation R_386_GOT32 against `foo' without base register can not be used when making a shared object ld: final link failed: Bad value [root@sheep-30 ~]# vs. [root@sheep-30 ~]# gcc -B./ -m32 -c -o x.o x.S [root@sheep-30 ~]# ld -melf_i386 -shared -o libx.so x.o [root@sheep-30 ~]# 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/RHBA-2018:1994 |