)]}'
{
  "commit": "2c43d202aefb2b6f202a44bbb8a0baf251aae845",
  "tree": "e5d552e5fb64a5d21202c0501d7b0780f65f140b",
  "parents": [
    "5578fbf672ee497ea19826edeb509f4cc3e825a8"
  ],
  "author": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Mon Aug 22 10:26:17 2022 -0700"
  },
  "committer": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Thu Aug 25 09:10:45 2022 -0700"
  },
  "message": "x86: Ignore protected visibility in shared libraries on Solaris\n\nOn x86, the PLT entry in executable may be used as function address for\nfunctions in shared libraries.  If functions are protected, the function\naddress used in executable can be different from the function address\nused in shared library.  This will lead to incorrect run-time behavior\nif function pointer equality is needed.  By default, x86 linker issues\nan error in this case.\n\nOn Solaris, linker issued an error for\n\nstruct tm *tb \u003d (kind \u003d\u003d CPP_time_kind::FIXED ? gmtime : localtime) (\u0026tt);\n\nwhere gmtime is a protected function in libc.so.  Use gmtime\u0027s PLT entry\nin executable as function address is safe since function pointer equality\nisn\u0027t needed.  Ignore protected visibility in shared libraries on Solaris\nto disable linker error.  If function pointer equality is needed, linker\nwill silently generate executable with incorrect run-time behavior on\nSolaris.\n\n\tPR ld/29512\n\t* elf32-i386.c (elf_i386_scan_relocs): Ignore protected\n\tvisibility in shared libraries on Solaris.\n\t* elf64-x86-64.c (elf_x86_64_scan_relocs): Likewise.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "52b1db4454687f982fd3d952edad1072b5091630",
      "old_mode": 33188,
      "old_path": "bfd/elf32-i386.c",
      "new_id": "9717e2c5ed65a74eb1b2175036cb3f331e759746",
      "new_mode": 33188,
      "new_path": "bfd/elf32-i386.c"
    },
    {
      "type": "modify",
      "old_id": "62a9a22317a13799324516156dc9be23891b32bd",
      "old_mode": 33188,
      "old_path": "bfd/elf64-x86-64.c",
      "new_id": "f3b54400013c16f31255b7631dbc545b0df63766",
      "new_mode": 33188,
      "new_path": "bfd/elf64-x86-64.c"
    }
  ]
}
