)]}'
{
  "commit": "87394b45e5d275a21fc7ac33f42bd6eafe66fe79",
  "tree": "780c5c1d94bf2990b7e89963f265a4a1b6a529a6",
  "parents": [
    "98b0bfded2a2bbf11599e17fd4c23c881c09fb8b"
  ],
  "author": {
    "name": "Pali Rohár",
    "email": "pali.rohar@gmail.com",
    "time": "Thu Apr 17 15:15:58 2025 +0200"
  },
  "committer": {
    "name": "Martin Storsjö",
    "email": "martin@martin.st",
    "time": "Sun May 25 15:21:14 2025 +0300"
  },
  "message": "crt: exe: Inline pre_c_init() and pre_cpp_init() into _CRT_INIT()\n\nThis allows to remove the whole pre_c_init() and pre_cpp_init() functions\nand registration of __mingw_pcinit and __mingw_pcppinit hooks.\n\nInlining the code allows to easily figure out in which order is\ninitialization code called.\n\nAlso merge code which is protected by __native_startup_lock into one\nif-branch for better code readability.\n\nFunction pre_c_init() was the first callback in .CRT$XI section, so now\ncall its code before the _initterm_e(__xi_a, __xi_z) (which executes all\nremaining .CRT$XI callbacks).\n\nFunction pre_cpp_init() was the first callback in .CRT$XC section, so now\ncall its code before the _initterm (__xc_a, __xc_z) (which executes all\nremaining .CRT$XC callbacks).\n\nSigned-off-by: Martin Storsjö \u003cmartin@martin.st\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6da7e23fba92af10f685a87cabcb4a29f4a9e166",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/crt/crtexe.c",
      "new_id": "620f08b9467d2f7ba609a086377900e1dfc5a5d5",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/crt/crtexe.c"
    }
  ]
}
