)]}'
{
  "commit": "5a7173cd46252fbbac5c7b30efebd2d66aad5eb3",
  "tree": "612a0abf2f00e70b0b884f682383255ad7f0c938",
  "parents": [
    "bedc0be59330aaef361387481a073a725830adab"
  ],
  "author": {
    "name": "Jens Remus",
    "email": "jremus@linux.ibm.com",
    "time": "Thu Oct 16 11:09:06 2025 +0200"
  },
  "committer": {
    "name": "Jens Remus",
    "email": "jremus@linux.ibm.com",
    "time": "Thu Oct 16 11:09:06 2025 +0200"
  },
  "message": "s390: Do not rewrite insns and their relocs in linker if --no-relax\n\nUnder certain conditions the linker rewrites:\n- GOT access using lgrl to larl, changing the GOTENT to a PC32DBL reloc\n- GOT access using lg to larl, changing the GOT20 to a PC32DBL reloc\n- Relative long addressing instructions of weak symbols, which\n  definitively resolve to zero to either (1) load address of zero,\n  (2) a NOP, or (3) a trapping instruction, changing the relocation to\n  a NONE reloc.\n\nSuppress rewriting of non-TLS instructions and related relocations in\nlinker if option --no-relax is specified.  This aligns with LLVM linker\nbehavior on s390.\n\nLike x86-64 do not actually enable the linker relaxation option by\ndefault, as other targets would do using ENABLE_RELAXATION or\nTARGET_ENABLE_RELAXATION in their linker emulation scripts.  Instead\nperform linker instruction/relocation rewrites by default unless linker\noption --no-relax is explicitly specified by the user.  This ensures no\nfunctional change unless --no-relax is used.\n\nbfd/\n\t* elf64-s390.c (elf_s390_relocate_section): Do not rewrite\n\tnon-TLS instructions and related relocations if --no-relax.\n\t* elf32-s390.c (elf_s390_relocate_section): Likewise.\n\nld/testsuite/\n\t* ld-s390/s390.exp: New tests.  Same as gotreloc_*-1a and\n\tweakundef-*a, but with linker option --no-relax, to verify\n\tsuppression of linker non-TLS insn and reloc rewrites.\n\t* ld-s390/gotreloc_31-1b.dd: Likewise.\n\t* ld-s390/gotreloc_31-no-pie-1b.dd: Likewise.\n\t* ld-s390/gotreloc_64-no-pie-1b.dd: Likewise.\n\t* ld-s390/gotreloc_64-norelro-1b.dd: Likewise.\n\t* ld-s390/gotreloc_64-relro-1b.dd: Likewise.\n\t* ld-s390/weakundef-1b.d: Likewise.  Check for expected reloc\n\toverflows.\n\t* ld-s390/weakundef-2b.d: Likewise.\n\nSigned-off-by: Jens Remus \u003cjremus@linux.ibm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ce3faa023f3373af42dcdf26d0ee77aac88cbaea",
      "old_mode": 33188,
      "old_path": "bfd/elf32-s390.c",
      "new_id": "0d04663756a0fdabb0fe03c604173790ca3bf21c",
      "new_mode": 33188,
      "new_path": "bfd/elf32-s390.c"
    },
    {
      "type": "modify",
      "old_id": "af36e192f59da82e0ed3844093c0a6e3117de66a",
      "old_mode": 33188,
      "old_path": "bfd/elf64-s390.c",
      "new_id": "16daf981e1de7b6d3644d6553c00bdf3d3254715",
      "new_mode": 33188,
      "new_path": "bfd/elf64-s390.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9513e16e113e1a566103459cd20f9ef68bc52769",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-s390/gotreloc_31-1b.dd"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5688e4740b7a4b196590f7a28c9135622db34022",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-s390/gotreloc_31-no-pie-1b.dd"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "344701c0ee177240f57d2dac03a9d14e0bf5fa96",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-s390/gotreloc_64-no-pie-1b.dd"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2dc84f2efc0fdcdb4e924492e6ca63912e846fa3",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-s390/gotreloc_64-norelro-1b.dd"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b8f7f20da7d2749b6ddab0abef07ce17df0abc44",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-s390/gotreloc_64-relro-1b.dd"
    },
    {
      "type": "modify",
      "old_id": "8da0032eb803ccbe2bd29f0dbf889e3d8b41b193",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-s390/s390.exp",
      "new_id": "eaf74c4c2347d6051305b829b8606e53321f029b",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-s390/s390.exp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3cba83d45101deef558daa9ee8301a126dbe8bf4",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-s390/weakundef-1b.d"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b61f49dd512715fcdc4b790dfa5426bd790725f7",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-s390/weakundef-2b.d"
    }
  ]
}
