)]}'
{
  "commit": "a394c23a5182a804476a2b8ec0f8264ecae6dc4f",
  "tree": "ad1905edff023cf35b7f0687bc6adc746c88acbf",
  "parents": [
    "dd706ccbef23b1b2fdadb4f131440b45ef3fdff2"
  ],
  "author": {
    "name": "Pali Rohár",
    "email": "pali.rohar@gmail.com",
    "time": "Sat Sep 05 19:23:24 2026 +0200"
  },
  "committer": {
    "name": "LIU Hao",
    "email": "lh_mouse@126.com",
    "time": "Mon Sep 28 14:27:30 2026 +0800"
  },
  "message": "crt: Improve mingw-w64 _register_thread_local_exe_atexit_callback implementation which is used for msvcrt builds\n\nCheck that the _register_thread_local_exe_atexit_callback function is not\ncalled multiple times. UCRT also disallow to call it multiple times.\n\nImprove guard in run_callback to ensure that the callback is not executed\nmore times even if the run_callback is called more times.\n\nAdd mingw-w64 wrapper around the CRT exit() function which will register\nthe callback via atexit before calling the CRT exit function. This ensures\nthat the CRT exit function would call the callback as the first atexit\ncallback.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "61c2b3d18f7d95fcb7fccee0aecf025a8049b23a",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/Makefile.am",
      "new_id": "07c050d63de300ba0e0a52a1912aada0b7a5dd73",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/Makefile.am"
    },
    {
      "type": "modify",
      "old_id": "06260eee3fc5593e9e59fc4b7fcd44047b24f0b0",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib-common/msvcr120_app.def.in",
      "new_id": "6bbbf54ee65f2c6e6aaa34e2a330c8ed49ddb736",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib-common/msvcr120_app.def.in"
    },
    {
      "type": "modify",
      "old_id": "39ece04fe4975dc4d82d2a268046a0ba52d1df46",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib-common/msvcrt.def.in",
      "new_id": "fdf8eb8adcd5959d6cc6b84f243c6b0f22c7b934",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib-common/msvcrt.def.in"
    },
    {
      "type": "modify",
      "old_id": "154d7add2f8ecf34285f4c956ada3ab484ac0f28",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/crtdll.def.in",
      "new_id": "5dd3c996420b76e737d7a2718c3ea0427e649aa3",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/crtdll.def.in"
    },
    {
      "type": "modify",
      "old_id": "1db3e07209fef25fd146822f7c5a104e6402d72a",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr100.def.in",
      "new_id": "a08fb20d90a3ef527104dae7191b7796473eba90",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr100.def.in"
    },
    {
      "type": "modify",
      "old_id": "9899fe057f463b775dd0bf4f2d832cb2429107a7",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr100d.def.in",
      "new_id": "6939f0dfe76abe913acdfe094e714e0d4f642e02",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr100d.def.in"
    },
    {
      "type": "modify",
      "old_id": "1a4db8110b00c87e45c3edf706414bb8aaa3a12c",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr110.def.in",
      "new_id": "9a7f16f14661d85791d6b0149809efa7e5adc1bb",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr110.def.in"
    },
    {
      "type": "modify",
      "old_id": "0b52690468ce584c32dec7a4074db7fb5f156079",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr110d.def.in",
      "new_id": "bf4ba2d3c27b889afae1648c9f66e554bdadf925",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr110d.def.in"
    },
    {
      "type": "modify",
      "old_id": "af88bbbd53390bfbf63500bdb466886cf38aa514",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr120.def.in",
      "new_id": "43ae5cbae6e9ff607dc4d3be3ec48166c8f4f69c",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr120.def.in"
    },
    {
      "type": "modify",
      "old_id": "b8d4c9bb18f6dfd8da1c69162b4fc1c9de23d499",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr120d.def.in",
      "new_id": "df3d1a09887b6fc9b135ea6732f273c08683d09d",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr120d.def.in"
    },
    {
      "type": "modify",
      "old_id": "aced5b3c5d587ef046ac80ab69741461eb6e1528",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr40d.def.in",
      "new_id": "bcf0e6a1d0abf79277646758766c257ffcb97e00",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr40d.def.in"
    },
    {
      "type": "modify",
      "old_id": "53e2bfe2dff28c20ac51f0979270a754c67cb9c7",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr70.def.in",
      "new_id": "1c44a281562f78aafd1b9536c23f011320be7c72",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr70.def.in"
    },
    {
      "type": "modify",
      "old_id": "7784d76f2a3b8940acee3314cbe0e15e15f67c2a",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr70d.def.in",
      "new_id": "1eb2a6c1052401ddc7018e83d39c1585c152d6c5",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr70d.def.in"
    },
    {
      "type": "modify",
      "old_id": "aa33cd3d0c347e51ecef1b169f1d5c53674ff058",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr71.def.in",
      "new_id": "576109f77547e16eba5ead65b07894fca206b9b7",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr71.def.in"
    },
    {
      "type": "modify",
      "old_id": "a317d1ef2d2475b1395fe9ff48e5066e24df20bd",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr71d.def.in",
      "new_id": "f64aaa00ecc7b6b2cb0cf5832e7dfe9e400f7768",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr71d.def.in"
    },
    {
      "type": "modify",
      "old_id": "7d579983ed1c409d29c5485845e92ebdc11ee228",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr80.def.in",
      "new_id": "2153e69d1b6b887dccc467806fe60fdf09429851",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr80.def.in"
    },
    {
      "type": "modify",
      "old_id": "d4deb170db4c3f7e0dc5dc018d99be3c796114b3",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr80d.def.in",
      "new_id": "3597f3ad17d37c52765eae8f1f80d352dc422d43",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr80d.def.in"
    },
    {
      "type": "modify",
      "old_id": "a6f5752122085cc450615db7aebaa512fa588248",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr90.def.in",
      "new_id": "5c4c9c2298c6a9fcf4d029173e097f42a1bc52a0",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr90.def.in"
    },
    {
      "type": "modify",
      "old_id": "eb4f68ec0acc63ae69e2733dbb13bc392f41de32",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr90d.def.in",
      "new_id": "f636d349187416c8ec1be3ac898deb972d4ad4a2",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr90d.def.in"
    },
    {
      "type": "modify",
      "old_id": "8a7d40842465ba7a4cf3f485a8ef933ed8a25c07",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcrt10.def.in",
      "new_id": "4ba98bfffdf3046a441a17a49f5fbdd6a7134526",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcrt10.def.in"
    },
    {
      "type": "modify",
      "old_id": "8a87561df4ed651bc327370b8ffd664aa1c51e44",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcrt20.def.in",
      "new_id": "ee350877bae46deed6837404c87ea6eccf6d323b",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcrt20.def.in"
    },
    {
      "type": "modify",
      "old_id": "4c698c153df3ceb5b4706b9bb33da725d910686d",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcrt40.def.in",
      "new_id": "6347304031ba35ef116f7119a91d8285b4b1c45c",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcrt40.def.in"
    },
    {
      "type": "modify",
      "old_id": "ea0c17c3ca5aff46c67d300ac0ca386b7feb35f9",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcrtd.def.in",
      "new_id": "130113d67b7ab817608a32fe44646f5bc5591f6e",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcrtd.def.in"
    },
    {
      "type": "modify",
      "old_id": "2e7991c6dbbf18fc050b93b6291b06d016df8267",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib64/msvcr100.def.in",
      "new_id": "b082f74fea9e6fad3c3d97422bd44d9ac554d9e3",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib64/msvcr100.def.in"
    },
    {
      "type": "modify",
      "old_id": "26c568dc49415823817b5be626d47d39932693a0",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib64/msvcr100d.def.in",
      "new_id": "b737e020ac7925dc3a38b25c35543569cf687261",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib64/msvcr100d.def.in"
    },
    {
      "type": "modify",
      "old_id": "83362bce9402d3325c08845697cf96edb9b5b335",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib64/msvcr110.def.in",
      "new_id": "9df2ee93abcf1b5d30dcf62a7677196955d8ec86",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib64/msvcr110.def.in"
    },
    {
      "type": "modify",
      "old_id": "621768782ff4f4b2a784784381dbb6799b582175",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib64/msvcr110d.def.in",
      "new_id": "c657ad623b9839bcc858266a8780ffacc372de8d",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib64/msvcr110d.def.in"
    },
    {
      "type": "modify",
      "old_id": "9095011ac40389e7d9fcedce05b1e0fb3a3a56ad",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib64/msvcr120.def.in",
      "new_id": "130f10fcc5db231496778b3d6501bbbe3102f934",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib64/msvcr120.def.in"
    },
    {
      "type": "modify",
      "old_id": "31c325805b9b2bffc01be605afa66a2373278083",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib64/msvcr120d.def.in",
      "new_id": "278ec14d1486d39ee5d4390a2895edfd5e566dc6",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib64/msvcr120d.def.in"
    },
    {
      "type": "modify",
      "old_id": "f81f10e290c0eb67f7b7e7a0b9f8530847e6d627",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib64/msvcr80.def.in",
      "new_id": "a46fbaedcba4a02b48066674df80a0bc571719e5",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib64/msvcr80.def.in"
    },
    {
      "type": "modify",
      "old_id": "3fbac9478076c5b70de6fffe2a1905d63ca99313",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib64/msvcr80d.def.in",
      "new_id": "dc2ece7c1bdaeddb2866e86fe9b73b303b3059fc",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib64/msvcr80d.def.in"
    },
    {
      "type": "modify",
      "old_id": "3efea2608479adf65905556e39ef8a634c942b3d",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib64/msvcr90.def.in",
      "new_id": "22828329d3c72f3b2dae1d96fc5ac037016acaa9",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib64/msvcr90.def.in"
    },
    {
      "type": "modify",
      "old_id": "c95a741a868b81b51f6b0cebcb8508d84010dfbe",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib64/msvcr90d.def.in",
      "new_id": "5bdfa14fd59226c3407467d21c249885099baf96",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib64/msvcr90d.def.in"
    },
    {
      "type": "modify",
      "old_id": "3c067e0021423f4c3cc628f97e19cc87ab46e6a0",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/libarm32/msvcr110.def.in",
      "new_id": "4decd8f69e2f318152824c594811b89408c030d8",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/libarm32/msvcr110.def.in"
    },
    {
      "type": "modify",
      "old_id": "7164dbb8842027ec164254a82a46b927a95a6a12",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/libarm32/msvcr110d.def.in",
      "new_id": "81fc74679fb2956bf36cf269d9c34d6f3a26395c",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/libarm32/msvcr110d.def.in"
    },
    {
      "type": "modify",
      "old_id": "8e3b65f26e436ea0399d4ea394759f5dbe5dc838",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/libarm32/msvcr120.def.in",
      "new_id": "2baa561d1d3343c271553b6d2687ed4aadd9d4de",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/libarm32/msvcr120.def.in"
    },
    {
      "type": "modify",
      "old_id": "ef278913e2a5f8f91b2a2a0cb87669019d3fcf61",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/libarm32/msvcr120d.def.in",
      "new_id": "afd9d451fa29217e422a263fd8a8d1b56f5c7373",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/libarm32/msvcr120d.def.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "88e1b3ac49ddc4ec556e57d41a2ac0b6a14298c5",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/misc/exit.c"
    },
    {
      "type": "modify",
      "old_id": "09d9270e4dd40c5de452cff65e693e35cb0f1f31",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/misc/register_tls_atexit.c",
      "new_id": "1875a67113ab3d511da78f5d6172d9ac187bd0c7",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/misc/register_tls_atexit.c"
    }
  ]
}
