)]}'
{
  "commit": "b74ac2be734c59f59a6f0a7930487bb7b0e4bc26",
  "tree": "2d7127a21e73b7a2741a250d7d3363bbfa657eea",
  "parents": [
    "fcc7c8351c50fd05088591ea55d47a44e656a3c4"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Fri Dec 19 13:55:20 2025 -0500"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Dec 22 09:35:44 2025 -0800"
  },
  "message": "inject_hash: Support finding the marker symbols in .symtab or .dynsym\n\nWhen testing I2f1999679b1987664da4350d86ac149e52d44303, I found that\nsome build configuration that injected -Wl,--strip-all into the build in\nsome way that I could not figure out how to undo. That meant that the\nsample shared object lost its marker symbols for where to compute the\nhash.\n\nTo work around that, update inject_hash to also check dynamic symbols\nfor the markers. For the markers to end up in there when built via\ndelocate, they must be .globl. However, if we then made them visible[*],\nwe risk polluting the dynamic symbol table of the final binary, because\nwe don\u0027t know whether the consumer controlled symbol visibility\npre-link with -fvisibility\u003dhidden or post-link (e.g. with a symbol\nversion script).\n\nTo account for this, they\u0027re marked hidden, which actually keeps them\nout of the dynamic symbol table anyway. But it allows objcopy\n--set-symbol-visibility to catch and upgrade them in the sample shared\nlibrary, in builds where an errant -Wl,--strip-all impedes us. (Builds\nwithout this problem don\u0027t need to both, because the symbol will end up\nin .symtab.)\n\nThat, in turn, requires us to stop treating these symbols as synthesized\nlocal symbols, so we get a little extra complexity there.\n\n[*] To be visible, they actually need to be protected visibility rather\nthan default visibility. Otherwise the assembler complains that we\naren\u0027t GOT-indirecting all accesses to them.\n\nChange-Id: Ia677ac274fc3e55a2e3cc7832f6abae78cc9589b\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/86088\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fd8b25b699a3361782d65db222b559d524ec2803",
      "old_mode": 33188,
      "old_path": "util/fipstools/delocate/delocate.go",
      "new_id": "3f141279221750b2b9ba48ea47c6d988f80e0baf",
      "new_mode": 33188,
      "new_path": "util/fipstools/delocate/delocate.go"
    },
    {
      "type": "modify",
      "old_id": "de147cade954426bf7753a648aadef7a07e65a54",
      "old_mode": 33188,
      "old_path": "util/fipstools/delocate/testdata/aarch64-Basic/out.s",
      "new_id": "aa03451bfc4d3d553ac5389bdbb289374ae00615",
      "new_mode": 33188,
      "new_path": "util/fipstools/delocate/testdata/aarch64-Basic/out.s"
    },
    {
      "type": "modify",
      "old_id": "b2e3daa1fb02896eebe6c091daa5024e35655501",
      "old_mode": 33188,
      "old_path": "util/fipstools/delocate/testdata/generic-FileDirectives/out.s",
      "new_id": "e5aa58f0373ecec37e1a9ed820dce1a355aae909",
      "new_mode": 33188,
      "new_path": "util/fipstools/delocate/testdata/generic-FileDirectives/out.s"
    },
    {
      "type": "modify",
      "old_id": "4a5be91166afcdf905cf3c468870ebf10fee7249",
      "old_mode": 33188,
      "old_path": "util/fipstools/delocate/testdata/x86_64-BSS/out.s",
      "new_id": "cda5830ea523d3dd2c4bf2a45db9c5a2ecd55c34",
      "new_mode": 33188,
      "new_path": "util/fipstools/delocate/testdata/x86_64-BSS/out.s"
    },
    {
      "type": "modify",
      "old_id": "b0b90b0793432c4462991cd949fecaed22b0d591",
      "old_mode": 33188,
      "old_path": "util/fipstools/delocate/testdata/x86_64-Basic/out.s",
      "new_id": "b10b0ae1a05d4696ab4d1d7b2b1b40382ca54f48",
      "new_mode": 33188,
      "new_path": "util/fipstools/delocate/testdata/x86_64-Basic/out.s"
    },
    {
      "type": "modify",
      "old_id": "f77f90732abe9d2e001e4bbeb954601326945185",
      "old_mode": 33188,
      "old_path": "util/fipstools/delocate/testdata/x86_64-GOTRewrite/out.s",
      "new_id": "727b268ebfe0ce45e5e8a3ee9d923ee1134b087b",
      "new_mode": 33188,
      "new_path": "util/fipstools/delocate/testdata/x86_64-GOTRewrite/out.s"
    },
    {
      "type": "modify",
      "old_id": "abc0b715a74af774e4959ec564f93c6bcb69357f",
      "old_mode": 33188,
      "old_path": "util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s",
      "new_id": "936405b7783106a416028e3874c7a6c2a1240dc6",
      "new_mode": 33188,
      "new_path": "util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s"
    },
    {
      "type": "modify",
      "old_id": "ebdf28b236c1b31c7e20adbb7c62715384a479c4",
      "old_mode": 33188,
      "old_path": "util/fipstools/delocate/testdata/x86_64-LargeMemory/out.s",
      "new_id": "adf2e84929139aeda19fd80cee0fbbb3f21445a1",
      "new_mode": 33188,
      "new_path": "util/fipstools/delocate/testdata/x86_64-LargeMemory/out.s"
    },
    {
      "type": "modify",
      "old_id": "c35826b4251581de09dec84686cddd3a18640a72",
      "old_mode": 33188,
      "old_path": "util/fipstools/delocate/testdata/x86_64-Sections/out.s",
      "new_id": "facc7cb74641794371647823b68d132901b3d0a3",
      "new_mode": 33188,
      "new_path": "util/fipstools/delocate/testdata/x86_64-Sections/out.s"
    },
    {
      "type": "modify",
      "old_id": "2e4ba115d6d9e0df07cde1d02bb748a03c3432d7",
      "old_mode": 33188,
      "old_path": "util/fipstools/delocate/testdata/x86_64-ThreeArg/out.s",
      "new_id": "d14fdf39a2fdccebc97e0988ff89efbd5116c2aa",
      "new_mode": 33188,
      "new_path": "util/fipstools/delocate/testdata/x86_64-ThreeArg/out.s"
    },
    {
      "type": "modify",
      "old_id": "fdd6f4ad32e2a52ff65e88a067a075c53b517c47",
      "old_mode": 33188,
      "old_path": "util/fipstools/inject_hash/inject_hash.go",
      "new_id": "278502979bd593c554f20485736415e117c9607f",
      "new_mode": 33188,
      "new_path": "util/fipstools/inject_hash/inject_hash.go"
    }
  ]
}
