)]}'
{
  "commit": "2f83249c13d86065b4c7cdb198ea871017b4bba1",
  "tree": "9e1807cdf070909cb98f34c3bb25a53f33d6f36b",
  "parents": [
    "ce2d3708bc8b1dfed6a3c69b56077ad10d2f351d"
  ],
  "author": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Mon Jan 10 15:26:18 2022 -0800"
  },
  "committer": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Thu Jan 13 05:20:51 2022 -0800"
  },
  "message": "elf: Remove the 1-page gap before the RELRO segment\n\nThe existing RELRO scheme may leave a 1-page gap before the RELRO segment\nand align the end of the RELRO segment to the page size:\n\n  [18] .eh_frame    PROGBITS    408fa0 008fa0 005e80 00   A  0   0  8\n  [19] .init_array  INIT_ARRAY  410de0 00fde0 000008 08  WA  0   0  8\n  [20] .fini_array  FINI_ARRAY  410de8 00fde8 000008 08  WA  0   0  8\n  [21] .dynamic     DYNAMIC     410df0 00fdf0 000200 10  WA  7   0  8\n  [22] .got         PROGBITS    410ff0 00fff0 000010 08  WA  0   0  8\n  [23] .got.plt     PROGBITS    411000 010000 000048 08  WA  0   0  8\n\nInstead, we can remove the 1-page gap if the maximum page size \u003e\u003d the\nmaximum section alignment:\n\n  [18] .eh_frame    PROGBITS    408fa0 008fa0 005e80 00   A  0   0  8\n  [19] .init_array  INIT_ARRAY  40fde0 00fde0 000008 08  WA  0   0  8\n  [20] .fini_array  FINI_ARRAY  40fde8 00fde8 000008 08  WA  0   0  8\n  [21] .dynamic     DYNAMIC     40fdf0 00fdf0 000200 10  WA  7   0  8\n  [22] .got         PROGBITS    40fff0 00fff0 000010 08  WA  0   0  8\n  [23] .got.plt     PROGBITS    410000 010000 000048 08  WA  0   0  8\n\nBecause the end of the RELRO segment is always aligned to the page size\nand may not be moved, the RELRO segment size may be increased:\n\n  [ 3] .dynstr      STRTAB      000148 000148 000001 00   A  0   0  1\n  [ 4] .eh_frame    PROGBITS    000150 000150 000000 00   A  0   0  8\n  [ 5] .init_array  INIT_ARRAY  200150 000150 000010 08  WA  0   0  1\n  [ 6] .fini_array  FINI_ARRAY  200160 000160 000010 08  WA  0   0  1\n  [ 7] .jcr         PROGBITS    200170 000170 000008 00  WA  0   0  1\n  [ 8] .data.rel.ro PROGBITS    200180 000180 000020 00  WA  0   0 16\n  [ 9] .dynamic     DYNAMIC     2001a0 0001a0 0001c0 10  WA  3   0  8\n  [10] .got         PROGBITS    200360 000360 0002a8 00  WA  0   0  8\n  [11] .bss         NOBITS      201000 000608 000840 00  WA  0   0  1\n\nvs the old section layout:\n\n  [ 3] .dynstr      STRTAB      000148 000148 000001 00   A  0   0  1\n  [ 4] .eh_frame    PROGBITS    000150 000150 000000 00   A  0   0  8\n  [ 5] .init_array  INIT_ARRAY  200b48 000b48 000010 08  WA  0   0  1\n  [ 6] .fini_array  FINI_ARRAY  200b58 000b58 000010 08  WA  0   0  1\n  [ 7] .jcr         PROGBITS    200b68 000b68 000008 00  WA  0   0  1\n  [ 8] .data.rel.ro PROGBITS    200b70 000b70 000020 00  WA  0   0 16\n  [ 9] .dynamic     DYNAMIC     200b90 000b90 0001c0 10  WA  3   0  8\n  [10] .got         PROGBITS    200d50 000d50 0002a8 00  WA  0   0  8\n  [11] .bss         NOBITS      201000 000ff8 000840 00  WA  0   0  1\n\nBut there is no 1-page gap.\n\n\tPR ld/28743\n\t* ldlang.c (lang_size_relro_segment_1): Remove the 1-page gap\n\tbefore the RELRO segment if the maximum page size \u003e\u003d the maximum\n\tsection alignment.\n\t* testsuite/ld-i386/pr20830.d: Adjusted.\n\t* testsuite/ld-s390/gotreloc_64-relro-1.dd: Likewise.\n\t* testsuite/ld-x86-64/pr14207.d: Likewise.\n\t* testsuite/ld-x86-64/pr18176.d: Likewise.\n\t* testsuite/ld-x86-64/pr20830a-now.d: Likewise.\n\t* testsuite/ld-x86-64/pr20830a.d: Likewise.\n\t* testsuite/ld-x86-64/pr20830b-now.d: Likewise.\n\t* testsuite/ld-x86-64/pr20830b.d: Likewise.\n\t* testsuite/ld-x86-64/pr21038a-now.d: Likewise.\n\t* testsuite/ld-x86-64/pr21038a.d: Likewise.\n\t* testsuite/ld-x86-64/pr21038b-now.d: Likewise.\n\t* testsuite/ld-x86-64/pr21038c-now.d: Likewise.\n\t* testsuite/ld-x86-64/pr21038c.d: Likewise.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0a24fd854bc9bd41413adbacf3c919f1c09eb274",
      "old_mode": 33188,
      "old_path": "ld/ldlang.c",
      "new_id": "48e4082863463f659839c2c992ae943024f75347",
      "new_mode": 33188,
      "new_path": "ld/ldlang.c"
    },
    {
      "type": "modify",
      "old_id": "8a14a6087a138d850bb0b11bfe22a4f12fc4bed0",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-i386/pr20830.d",
      "new_id": "f1e3733673313709c253371ceb6794ca47b1e672",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-i386/pr20830.d"
    },
    {
      "type": "modify",
      "old_id": "64151d10a7c8aadf246cb560280dca584453cbd6",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-s390/gotreloc_64-relro-1.dd",
      "new_id": "5a107465be29e0277f521d0970e69eb129e706f7",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-s390/gotreloc_64-relro-1.dd"
    },
    {
      "type": "modify",
      "old_id": "e3af36146c6af3752cfe57764fadc6fad16c4b0c",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-x86-64/pr14207.d",
      "new_id": "c1991daccc8acedd312c1b9dd4e21d39a1cbc95e",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-x86-64/pr14207.d"
    },
    {
      "type": "modify",
      "old_id": "a99ff15ac6bee23984d9c8bb70d2c586a710150b",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-x86-64/pr18176.d",
      "new_id": "c053b52a2928612e82340244f1d14cfbab422632",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-x86-64/pr18176.d"
    },
    {
      "type": "modify",
      "old_id": "4f284c44a404f7d57da9d2ce8465a2e33d7d9868",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-x86-64/pr20830a-now.d",
      "new_id": "b8fa6acd1d400e95306110e07d7588121ee005dc",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-x86-64/pr20830a-now.d"
    },
    {
      "type": "modify",
      "old_id": "615b59fd5de0ef9928db44c8ae62ec6f1dc5b688",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-x86-64/pr20830a.d",
      "new_id": "5c16652c4a86c2f158c6275065227d7106524c40",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-x86-64/pr20830a.d"
    },
    {
      "type": "modify",
      "old_id": "7c7f2f928acd00dc41bfb2152167c625a4283314",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-x86-64/pr20830b-now.d",
      "new_id": "0c4f2ada3dd856b565eef7da777560d29b8f1f7c",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-x86-64/pr20830b-now.d"
    },
    {
      "type": "modify",
      "old_id": "3c5d42b9c4386de6058ddca2b691a89adb50d826",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-x86-64/pr20830b.d",
      "new_id": "6f4f22ca960c3167fc2b283259b695d0337dfb82",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-x86-64/pr20830b.d"
    },
    {
      "type": "modify",
      "old_id": "1653a68ff8a5c72f0a99835fbf222a796af8525e",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-x86-64/pr21038a-now.d",
      "new_id": "c05800962be7f22680c2d6e95a174ab943c4d09c",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-x86-64/pr21038a-now.d"
    },
    {
      "type": "modify",
      "old_id": "6ef8db254e9d32735c761c6a6dd4e7c2a177f62e",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-x86-64/pr21038a.d",
      "new_id": "e0c3c7cf63f60b1d7945f88222333bbcbccd83cf",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-x86-64/pr21038a.d"
    },
    {
      "type": "modify",
      "old_id": "c042b6cf702a135495bb7e3d9f32e519e121eec1",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-x86-64/pr21038b-now.d",
      "new_id": "519c5a3e9574e517a94aca13e033163bf5cd8184",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-x86-64/pr21038b-now.d"
    },
    {
      "type": "modify",
      "old_id": "2058512b74e4f2fcfcd94d58b3f5d4924af38230",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-x86-64/pr21038c-now.d",
      "new_id": "6c947ea4c1382e423209d61c382c4d0367094984",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-x86-64/pr21038c-now.d"
    },
    {
      "type": "modify",
      "old_id": "a62d43a7bc086e9b4d72a1700e6c20dbdc4d76ab",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-x86-64/pr21038c.d",
      "new_id": "40ecc97e5174adee04301af48566d57581389e89",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-x86-64/pr21038c.d"
    }
  ]
}
