)]}'
{
  "commit": "b9ac6b67372d065a5bcd4f515b7f84118a65446b",
  "tree": "fa89c20c3c29be33ae32ce6d2d5284908656129b",
  "parents": [
    "310227311766a67d9af3eea5af64fb5dcbcf02b7"
  ],
  "author": {
    "name": "Pali Rohár",
    "email": "pali.rohar@gmail.com",
    "time": "Fri May 15 01:13:05 2026 +0200"
  },
  "committer": {
    "name": "LIU Hao",
    "email": "lh_mouse@126.com",
    "time": "Sun Jun 07 00:04:05 2026 +0800"
  },
  "message": "crt: Fix _beginthread and _beginthreadex functions for i386 pre-msvcr100 builds\n\nLike the 32-bit x86 version of _XcptFilter function in pre-msvcr100 DLL\nlibraries, also _beginthread and _beginthreadex functions are affected and\ndo not handle SEH exceptions caused by SSE floating point exceptions\n(STATUS_FLOAT_MULTIPLE_FAULTS and STATUS_FLOAT_MULTIPLE_TRAPS).\n\nSo if the SSE floating point exception occurs in a thread spawned by\n_beginthread or _beginthreadex then it cause fatal process crash.\n\nAdd mingw-w64 wrappers around _beginthread and _beginthreadex functions\nwhich register own SEH handler and forwards STATUS_FLOAT_MULTIPLE_FAULTS\nand STATUS_FLOAT_MULTIPLE_TRAPS SEH exceptions into the __mingw_SEH_error_handler\nfunction which now properly handles them.\n\nThis change fixes all SSE floating point exception tests running in\nnon-main threads for i386 pre-msvcr100 builds (including system os\nmsvcrt.dll library).\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e368ae6179bf4b9a8fa16d6408a55101ac92e2a6",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/Makefile.am",
      "new_id": "b651dce59d51d48fca16f3ceb435dc8d82e09556",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/Makefile.am"
    },
    {
      "type": "modify",
      "old_id": "64a8fa2bad676acbe92decced59b98eb50500a6c",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib-common/msvcrt.def.in",
      "new_id": "7909159204b4a9f410c939a5c67f1ed188afe4f7",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib-common/msvcrt.def.in"
    },
    {
      "type": "modify",
      "old_id": "bc4b926cde51951ad278625d268d8d717c412dd0",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/crtdll.def.in",
      "new_id": "99ededa69ea812b770dda5854658dab7bd445e63",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/crtdll.def.in"
    },
    {
      "type": "modify",
      "old_id": "bcb770c8aeaf0c5a7eecc49c367bb706c65cd7dd",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr40d.def.in",
      "new_id": "5f5f75409679f6620ba4e24c5b070c025abed3b1",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr40d.def.in"
    },
    {
      "type": "modify",
      "old_id": "3a685e7d5d284aebb029c0d7d8ac410954cb94bb",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr70.def.in",
      "new_id": "29a8aa95e9547b06bce366a15574a9db43cab7c1",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr70.def.in"
    },
    {
      "type": "modify",
      "old_id": "4eddb5ac9624561240747c77117b43a243aa709b",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr70d.def.in",
      "new_id": "3bbf5c542f5ce9d0b3d5b7087feb8f8ee0081ba5",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr70d.def.in"
    },
    {
      "type": "modify",
      "old_id": "bef231fa3169fc476d3a1056a99b9ad637f4961d",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr71.def.in",
      "new_id": "6248aa6046169e19498f2f91576b315fc8b5e8b7",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr71.def.in"
    },
    {
      "type": "modify",
      "old_id": "6e6ee588a806bdd22cad787fd84f028144748d3e",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr71d.def.in",
      "new_id": "71fee41aca8c8e38408fdfe434f86acf346f228f",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr71d.def.in"
    },
    {
      "type": "modify",
      "old_id": "fbbbae58bea454b3b329e1125dfb73197099865b",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr80.def.in",
      "new_id": "d84908cc5d35cdfe45e66853fb254a5e910e81ae",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr80.def.in"
    },
    {
      "type": "modify",
      "old_id": "0970c0949000a22c3b576da5a42573f64db1585e",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr80d.def.in",
      "new_id": "30302a1979e68a974953243ac084fe1f00a60437",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr80d.def.in"
    },
    {
      "type": "modify",
      "old_id": "166bba6d62632c5dbed8ebe5fd36e2c7a36bb14c",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr90.def.in",
      "new_id": "5c3d6a48c5d2ca3eab5c602372b4d6bb436b630b",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr90.def.in"
    },
    {
      "type": "modify",
      "old_id": "1b454e60586b5be0d28f8c5dc642febc9580c5d3",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcr90d.def.in",
      "new_id": "294cb57f8db7b6e946da8bb308b923d390c66cab",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcr90d.def.in"
    },
    {
      "type": "modify",
      "old_id": "57961b1b8103e91a1f604c3b17cbae87aa5440bc",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcrt10.def.in",
      "new_id": "ab67734060d0eccea6bd4d581e6c5d89011024f3",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcrt10.def.in"
    },
    {
      "type": "modify",
      "old_id": "2ca58460327ce73983fd0418f1a1e4c4054edb09",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcrt20.def.in",
      "new_id": "0b13fc424bab3cab1fbeeac927cf54718997d8f1",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcrt20.def.in"
    },
    {
      "type": "modify",
      "old_id": "ad31df8a076915470015fcf8c6c5f32add3f023a",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcrt40.def.in",
      "new_id": "95654f5f85e867c0bd5adf66c1660b71d5f6bd38",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcrt40.def.in"
    },
    {
      "type": "modify",
      "old_id": "d3e30bbfcdfd090583b7107298685192e190ca6c",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/lib32/msvcrtd.def.in",
      "new_id": "f7d5dce9f5451a79323bd464d091076b37967395",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/lib32/msvcrtd.def.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6d07df7e7cfa78595576ca2cfaff0be1b683fa70",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/misc/i386__beginthread.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "aede03f34d3103153d4119ce7bd506296b659e37",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/misc/i386__beginthreadex.c"
    },
    {
      "type": "modify",
      "old_id": "f4e2eecf02b6fed9ca40b7d9e2f7f053210f79ef",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/testcases/t_sigfpe.c",
      "new_id": "0c30621052c1854599fd9c460a2f0f1f1270983b",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/testcases/t_sigfpe.c"
    }
  ]
}
