)]}'
{
  "commit": "c953fe86fac6368f7934941ae31d372d097aa426",
  "tree": "d330e054d21bd0a1fd3cdb0b96cb2d3959fe7784",
  "parents": [
    "5ed153a90a23949c0fb132cb7c6f54fb9f3dfcb3"
  ],
  "author": {
    "name": "Indu Bhagat",
    "email": "indu.bhagat@oracle.com",
    "time": "Thu Jan 15 16:42:17 2026 -0800"
  },
  "committer": {
    "name": "Indu Bhagat",
    "email": "indu.bhagat@oracle.com",
    "time": "Thu Jan 15 17:02:25 2026 -0800"
  },
  "message": "[SFrame-V3] include: gas: libsframe: add 8-bits of func_info2 for extensibility in FDE\n\nThe existing field func_info (in the SFrame FDE) is used to convey important\ninformation around the encoding and interpretation of the rest of the\nstack trace data for the respective SFrame FDE: the SFrame FRE type,\nSFrame FDE PC type, etc.\n\nCurrently there is 1 bit left for AArch64, and 2 bits for AMD64, s390x\n(and other future ABIs to be supported).  Provision some additional\nspace now (specifically an additional 8-bits) for future needs for V3\nand beyond.\n\nCompared to V2, this now increases the size of SFrame FDE by 1 byte in\nV3.  In this patch, the additional func_info2 byte is not used\nfunctionally yet.  Hence, rather mechanical changes in libsframe, bfd\nand libsframe/testsuite accompany.  We will put func_info2 into use in a\nlater patch by reserving 5 of these bits for SFrame FDE types.\n\nWith the addition of a new byte for additional func info (func_info2),\nadd a new arg to allow usecases like textual dumper to get all data\nmembers in one API: sframe_decoder_get_funcdesc_v3.  To keep the APIs\nsymmetric looking, add new arg to sframe_encoder_add_funcdesc_v3 too.\n\nSince bfd uses these APIs, carry out the mechanical change in the\nrespective APIs too.  And of course, the testsuite which exercises these\nAPIs.\n\nbfd/\n\t* elf-sframe.c (_bfd_elf_merge_section_sframe): Get and set\n\tfunc_info2.\n\t* elf64-s390.c (_bfd_s390_elf_create_sframe_plt): Pass 0 for\n\tfunc_info2 for SFrame FDE for PLT.\n\t* elfxx-x86.c (_bfd_x86_elf_create_sframe_plt): Likewise.\ngas/\n\t* gen-sframe.c (output_sframe_funcdesc): Emit the uint8_t for\n\tfunc_info2.\nlibsframe/\n\t* sframe-dump.c (dump_sframe_func_with_fres):\n\t* sframe.c (sframe_fde_tbl_init): Handle the new additional\n\tmember.\n\t(sframe_encoder_write_fde): Likewise.\n\t* sframe.c (sframe_decoder_get_funcdesc_v3): Update func_info2.\nlibsframe/testsuite/\n\t* libsframe.decode/DATA2: Update data file with SFrame section\n\tdata.\n\t* libsframe.encode/encode-1.c: Pass 0 for func_info2 arg.\n\t* libsframe.find/findfre-1.c: Likewise.\n\t* libsframe.find/findfunc-1.c: Likewise.\n\t* libsframe.find/plt-findfre-1.c: Likewise.\n\t* libsframe.find/plt-findfre-2.c: Likewise.\ninclude/\n\t* sframe.h: Add new uint8_t sfde_func_info2 to\n\tsframe_func_desc_entry_v3.\n\t* sframe-api.h (sframe_decoder_get_funcdesc_v3): New arg.\n\t(sframe_encoder_add_funcdesc_v3): Likewise.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8842efe6fe672dae7e678861364b996737d92c58",
      "old_mode": 33188,
      "old_path": "bfd/elf-sframe.c",
      "new_id": "1ef53120543019768bea53a8ee9da526c4ceb358",
      "new_mode": 33188,
      "new_path": "bfd/elf-sframe.c"
    },
    {
      "type": "modify",
      "old_id": "dbeee7f66e44100778097b83e1d3aea0e665f9e0",
      "old_mode": 33188,
      "old_path": "bfd/elf64-s390.c",
      "new_id": "c172b9b52875def8f844653c9e6b9628616496bf",
      "new_mode": 33188,
      "new_path": "bfd/elf64-s390.c"
    },
    {
      "type": "modify",
      "old_id": "ae6c96d77df46134acd5757aa1b2fd4dab538bc5",
      "old_mode": 33188,
      "old_path": "bfd/elfxx-x86.c",
      "new_id": "58b12e2b372060bba18c516f8e28e025bc00b672",
      "new_mode": 33188,
      "new_path": "bfd/elfxx-x86.c"
    },
    {
      "type": "modify",
      "old_id": "6818407683acd039661133dd5a34e0fc05bd68a6",
      "old_mode": 33188,
      "old_path": "gas/gen-sframe.c",
      "new_id": "132cb2ff33e7369ea59d960e880ec12c19a4f17b",
      "new_mode": 33188,
      "new_path": "gas/gen-sframe.c"
    },
    {
      "type": "modify",
      "old_id": "71130eb12f1d0956ea4dabfa562d9d8b97de0b8d",
      "old_mode": 33188,
      "old_path": "include/sframe-api.h",
      "new_id": "07de850017a1c8098b8ec47363ca312e8c28b55f",
      "new_mode": 33188,
      "new_path": "include/sframe-api.h"
    },
    {
      "type": "modify",
      "old_id": "8e3510fdd8643744e8b90716618e95ae99dc04ca",
      "old_mode": 33188,
      "old_path": "include/sframe.h",
      "new_id": "3b656663ce2da0e6e91a28ae7c473a7f04c39f31",
      "new_mode": 33188,
      "new_path": "include/sframe.h"
    },
    {
      "type": "modify",
      "old_id": "394dbdc91582a24dce35b8deacfafa7ad476c519",
      "old_mode": 33188,
      "old_path": "libsframe/sframe-dump.c",
      "new_id": "d36731728fa0ac32a10f6b425d514987edc5d21e",
      "new_mode": 33188,
      "new_path": "libsframe/sframe-dump.c"
    },
    {
      "type": "modify",
      "old_id": "292058f7c1773d5a39444fe5b28153aee5e72648",
      "old_mode": 33188,
      "old_path": "libsframe/sframe.c",
      "new_id": "e8f499bd7f364fb738200d32ea3c34f75b758643",
      "new_mode": 33188,
      "new_path": "libsframe/sframe.c"
    },
    {
      "type": "modify",
      "old_id": "06fd11bd8bf5423db874283e7a73e2464d981083",
      "old_mode": 33188,
      "old_path": "libsframe/testsuite/libsframe.decode/DATA2",
      "new_id": "e297dad35b2402da62d8ed013f548769857ab4ea",
      "new_mode": 33188,
      "new_path": "libsframe/testsuite/libsframe.decode/DATA2"
    },
    {
      "type": "modify",
      "old_id": "284177df8050ec0152f6770f20883c063dc8bbe2",
      "old_mode": 33188,
      "old_path": "libsframe/testsuite/libsframe.encode/encode-1.c",
      "new_id": "53f15e68bac6cc54971d4ad026484713e0fd979c",
      "new_mode": 33188,
      "new_path": "libsframe/testsuite/libsframe.encode/encode-1.c"
    },
    {
      "type": "modify",
      "old_id": "996a943e6798ab24c240a047ff39e4a1e333fbbd",
      "old_mode": 33188,
      "old_path": "libsframe/testsuite/libsframe.find/findfre-1.c",
      "new_id": "b63c3651a87585b5a6e55cdfcd2742a913fb245a",
      "new_mode": 33188,
      "new_path": "libsframe/testsuite/libsframe.find/findfre-1.c"
    },
    {
      "type": "modify",
      "old_id": "364c9673ba47cbe94f1452aa49f1f0c4ad94a661",
      "old_mode": 33188,
      "old_path": "libsframe/testsuite/libsframe.find/findfunc-1.c",
      "new_id": "7d2c46b8b51ea2754975a419581ac0915215ef92",
      "new_mode": 33188,
      "new_path": "libsframe/testsuite/libsframe.find/findfunc-1.c"
    },
    {
      "type": "modify",
      "old_id": "c2a5e2f8de92a805e1d68f076c3a70c90d847e56",
      "old_mode": 33188,
      "old_path": "libsframe/testsuite/libsframe.find/plt-findfre-1.c",
      "new_id": "7368cc61fcbf5946b03178af03ab18000f1cc8d4",
      "new_mode": 33188,
      "new_path": "libsframe/testsuite/libsframe.find/plt-findfre-1.c"
    },
    {
      "type": "modify",
      "old_id": "c1ad7f085057e90ed7077a1e5db032f726c95df7",
      "old_mode": 33188,
      "old_path": "libsframe/testsuite/libsframe.find/plt-findfre-2.c",
      "new_id": "e6f317a757df6372dabcc830a2c3c0fc80b0843f",
      "new_mode": 33188,
      "new_path": "libsframe/testsuite/libsframe.find/plt-findfre-2.c"
    }
  ]
}
