[PATCH] s390: Rewrite emitted relocations when rewriting instructions
Andreas Krebbel
krebbel@linux.ibm.com
Wed Oct 15 17:31:12 GMT 2025
On 10/15/25 6:02 PM, Jens Remus wrote:
> On 10/13/2025 1:27 PM, Andreas Krebbel wrote:
>> On 10/1/25 3:28 PM, Jens Remus wrote:
>>> bfd/
>>> * elf64-s390.c (elf_s390_relocate_section): Rewrite emitted
>>> relocations when rewriting instructions.
>>> * elf32-s390.c (elf_s390_relocate_section): Likewise.
>>>
>>> ld/testsuite/
>>> * ld-s390/s390.exp: Link gotreloc* and weakundef* tests with
>>> option --emit-relocs.
>>> * ld-s390/gotreloc_31-1.dd: Expect rewritten instructions to be
>>> accompanied by a PC32DBL or NONE relocation respectively.
>>> * ld-s390/gotreloc_31-no-pie-1.dd: Likewise.
>>> * ld-s390/gotreloc_64-no-pie-1.dd: Likewise.
>>> * ld-s390/gotreloc_64-norelro-1.dd: Likewise.
>>> * ld-s390/gotreloc_64-relro-1.dd: Likewise.
>>> * ld-s390/weakundef-1.dd: Likewise.
>>> * ld-s390/weakundef-2.dd: Likewise.
>> Good catch. Ok, thanks for fixing this!
> Thank you! Sorry for the hassle, but I just sent a v2 with a slightly
> reworded commit message. Following is the git range-diff v1 against v2:
No need to wait for approval for these kind of changes to the approved
patch. Feel free to do something like this on the fly.
Andreas
>
> 1: 07f5884c4146 ! 1: 3a6b19c0bf8e s390: Rewrite emitted relocations when rewriting instructions
> @@ Commit message
> - GOT access using lgrl to larl, changing the GOTENT to a PC32DBL reloc
> - GOT access using lg to larl, changing the GOT20 to a PC32DBL reloc
> - Relative long addressing instructions of weak symbols, which
> - definitively resolve to zero to either (1) load address of zero,
> + definitively resolve to zero, to either (1) load address of zero,
> (2) a NOP, or (3) a trapping instruction.
>
> In case of a rewrite of GOT access using lgrl/lg to larl emit the
> @@ Commit message
> the gotreloc* and weakundef* tests to check for the respective
> relocations.
>
> + This aligns with how GNU linker behaves on x86-64, when rewriting
> + instructions/relocations in elf_x86_64_convert_load_reloc().
> +
> bfd/
> * elf64-s390.c (elf_s390_relocate_section): Rewrite emitted
> relocations when rewriting instructions.
>
> Regards,
> Jens
More information about the Binutils
mailing list