)]}'
{
  "commit": "318d83e658773d09a0cd62f65aa3bb4bf4474a38",
  "tree": "0e53306098a162e0fed88f82e9bef0f1899f74ba",
  "parents": [
    "9326300e4d3dbe943380b30766ed474d98df07ba"
  ],
  "author": {
    "name": "Clément Chigot",
    "email": "chigot@adacore.com",
    "time": "Thu Oct 05 11:29:32 2023 +0200"
  },
  "committer": {
    "name": "Clément Chigot",
    "email": "chigot@adacore.com",
    "time": "Fri Oct 13 16:23:39 2023 +0200"
  },
  "message": "ld: allow update of existing QNX stack note\n\nUp to now, the linker would always create a QNX stack note from scratch.\nHowever, object files could already have such note, ending up into\nduplicates. QNX loader doesn\u0027t handle that.\n\nUpdate the mechanism to first search through the input files for a .note\nsection holding a QNX stack note. If none are found, then a new section\nis created into the stub file as before. This requires this search to be\ndone once the file have been opened, moving the whole logic a bit later\nin the emulation process.\n\nAs part for this update, also allow to request an executable stack\nwithout necessarily having to provide its size as well.  In this case, s\netup a default lazy stack of 0x1000.\n\nld/ChangeLog:\n\n        * emultempl/nto.em (nto_create_QNX_note_section): New Function.\n        (nto_lookup_QNX_note_section): New Function.\n        (nto_add_note_section): Move the creation of the note section\n        in the above new functions.\n        (nto_create_output_section_statements): rename nto_after_open\n        * testsuite/ld-aarch64/aarch64-nto.exp: add new test.\n        * testsuite/ld-aarch64/nto-stack-note-3.d: New test.\n        * testsuite/ld-aarch64/nto-stack-note.s: New test.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b38fddd251c85f346661f29e6c128fcb2cd25578",
      "old_mode": 33188,
      "old_path": "ld/emultempl/nto.em",
      "new_id": "0d319acc9bf66aa3505fb9e9da5657dc5ccbd625",
      "new_mode": 33188,
      "new_path": "ld/emultempl/nto.em"
    },
    {
      "type": "modify",
      "old_id": "4fd6245e9a29b2c841172ba45ba421a62a91c01b",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-aarch64/aarch64-nto.exp",
      "new_id": "256eb0da10e4d51185a118e54936fdf1323fee72",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-aarch64/aarch64-nto.exp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cdc71beeee03f9349174952fcdd06cbda7da5959",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-aarch64/nto-stack-note-3.d"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9e48ab8d5bcf93d45b3ccd6154f4e44ab2ab06e2",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-aarch64/nto-stack-note.s"
    }
  ]
}
