)]}'
{
  "commit": "d048eee2910878bf46f333f2fdc8ef940bd1638e",
  "tree": "3bf531d3ba7e6859d3e2d557306bad38477f36d7",
  "parents": [
    "546ddc53ee289c4a831f10adb16c03e363437e17"
  ],
  "author": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Tue Aug 12 07:37:57 2025 -0700"
  },
  "committer": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Thu Aug 14 08:00:04 2025 -0700"
  },
  "message": "ld: Use stat to check if linker script appears multiple times\n\nUse stat, instead of strcmp, to check if the same linker script file\nappears multiple times for\n\n$ ld -L... -T ././/script.t -T script.t ...\n\nAlthough ././/script.t and script.t access the same file, but their\nfilenames are different.  strcmp won\u0027t work here.\n\nCopy gnulib/import/same-inode.h to include since the gnulib directory\nisn\u0027t included in the binutils tarball.\n\ninclude/\n\n\tPR ld/24576\n\t* same-inode.h: New file.  Copied from gnulib/import/same-inode.h.\n\nld/\n\n\tPR ld/24576\n\t* ldfile.c: Include \"same-inode.h\".\n\t(ldfile_find_command_file): Change the second argument from bool\n\tto enum script_open_style.  Check if the same linker script file\n\tappears multiple times by using stat, instead using strcmp.\n\t(ldfile_open_command_file_1): Don\u0027t check if the same linker\n\tscript file appears multiple times here.\n\t* testsuite/ld-scripts/pr24576-1.d: Adjusted.\n\t* testsuite/ld-scripts/pr24576-2.d: New.\n\t* testsuite/ld-scripts/script.exp: Run pr24576-2.\n\nSigned-off-by: H.J. Lu \u003chjl.tools@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f65f3d039ed0fd411c5c975195d297441ea3e1d4",
      "new_mode": 33188,
      "new_path": "include/same-inode.h"
    },
    {
      "type": "modify",
      "old_id": "e642c7f6620a8aa532ff0d81a085b36aaafa506d",
      "old_mode": 33188,
      "old_path": "ld/ldfile.c",
      "new_id": "ce81fdc266f873f92bdc73ed9d09a21e4b4d8815",
      "new_mode": 33188,
      "new_path": "ld/ldfile.c"
    },
    {
      "type": "modify",
      "old_id": "9f9f4877cd5cf0417c57d5c521037110c343d3da",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-scripts/pr24576-1.d",
      "new_id": "6cc7621aadb0b8ab22625ec9d95475d2d4796ada",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-scripts/pr24576-1.d"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2d26ab3278390dcb5aae5d3df617ea68cfe4142b",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-scripts/pr24576-2.d"
    },
    {
      "type": "modify",
      "old_id": "c223135ae3de147ac7b06768a6da039a4a906bad",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-scripts/script.exp",
      "new_id": "0b37675ebe8fe6f6dc03bccec27ddd5e5a58595b",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-scripts/script.exp"
    }
  ]
}
