)]}'
{
  "commit": "0a43fbaa23a5eaf4254a51fa43ef61a6e28c9bd6",
  "tree": "dfa72149ea3a4004ec931b2ec5a2d9b8c4086071",
  "parents": [
    "5a6dafd5f1110e8b642fdf65c13d8543e469a09e"
  ],
  "author": {
    "name": "Claudiu Zissulescu",
    "email": "claziss@gmail.com",
    "time": "Fri Sep 15 12:57:22 2023 +0300"
  },
  "committer": {
    "name": "Claudiu Zissulescu",
    "email": "claziss@gmail.com",
    "time": "Fri Sep 15 12:57:22 2023 +0300"
  },
  "message": "arc: Fix alignment of the TLS Translation Control Block\n\nThe R_ARC_TLS_LE_32 is defined as S + A + TLS_TBSS - TLS_REL, where\n\n  -  S is the base address of the symbol in the memory\n  -  A is the symbol addendum\n  -  TLS_TBSS is the TLS Translation Control Block size (aligned)\n  -  TLS_REL is the base of the TLS section\n\nGiven the next code snip:\n\n__thread int data_var \u003d 12;\n__attribute__((__aligned__(128))) __thread int data_var_128 \u003d 128;\n__thread int bss_var;\n__attribute__((__aligned__(256))) __thread int bss_var_256;\n\nint __start(void)\n{\n\treturn data_var + data_var_128 + bss_var + bss_var_256;\n}\n\nThe current code returns different TLS_TBSS values for .tdata and\n.tbss. This patch fixes this by using the linker provided tls_sec.\n\nbfd/\n\n\t* elf32-arc.c (TLS_REL): Clean up.\n\t(TLS_TBSS): Use tls_sec alignment.\n\t(arc_do_relocation): Check if we have valid tls_sec.\n\nSigned-off-by: Claudiu Zissulescu \u003cclaziss@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "78dfd6eebbd9c6b642b802b27dd477d6c95e9e94",
      "old_mode": 33188,
      "old_path": "bfd/elf32-arc.c",
      "new_id": "ac9970545c37cd1405a7aa7c18b900085783f21d",
      "new_mode": 33188,
      "new_path": "bfd/elf32-arc.c"
    }
  ]
}
