)]}'
{
  "log": [
    {
      "commit": "a3d93999ef0521681d45e445c39964a7af0f593f",
      "tree": "1f85541b518e0ce96240e09bb1c2c9ffb900e464",
      "parents": [
        "0fe86be80ca58a6667d5a2a4d3bf680d09d7e391"
      ],
      "author": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sun Oct 04 21:16:33 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sun Oct 04 21:16:43 2026 +0800"
      },
      "message": "crt: Regenerate Makefile.in\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "0fe86be80ca58a6667d5a2a4d3bf680d09d7e391",
      "tree": "d173a201a49afddd69bf37187882959ad15d13ab",
      "parents": [
        "533d65a99d09c2356b9d376dca7f3146efadc3a8"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sat Oct 03 12:43:17 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sun Oct 04 21:16:43 2026 +0800"
      },
      "message": "crt: Call _ValidateImageBase() only once at _pei386_runtime_relocator() entry\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "533d65a99d09c2356b9d376dca7f3146efadc3a8",
      "tree": "eb1e90dabea66cfa107add22567476db67f456b0",
      "parents": [
        "e14b9706b6a2c0dac12583a3e2e511aad55be9f4"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sat Oct 03 12:43:16 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sun Oct 04 21:16:43 2026 +0800"
      },
      "message": "crt: Add check that __mingw_GetSectionCount() call has not failed\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "e14b9706b6a2c0dac12583a3e2e511aad55be9f4",
      "tree": "068a95314310ab6b76ef1308db28d3d84946b5ca",
      "parents": [
        "2b2acb3ae1f5871fb40f19aa5dbf8e7083d4e108"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sat Oct 03 12:43:15 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sun Oct 04 21:16:43 2026 +0800"
      },
      "message": "crt: Move pesect.c functions into pseudo-reloc.c\n\nAll pesect.c functions are called only from pseudo-reloc.c file.\nMove them here and mark them as static.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "2b2acb3ae1f5871fb40f19aa5dbf8e7083d4e108",
      "tree": "192975b8dc0cd2595b101759a2463255840dcf0f",
      "parents": [
        "49be363ce161977c8594534df488e298e775b8b2"
      ],
      "author": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Oct 03 17:32:44 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Oct 03 17:37:44 2026 +0800"
      },
      "message": "crt: Fix mingw-w64 _invoke_watson implementation\n\nCapture CONTEXT registers at the beginning of the function with explicit\ncompiler memory barrier to prevent compiler from clobbering registers.\n\nFix filling of Esp/Rsp and Ebp/Rbp registers.\n\nAdd explaining comments for most of the function logic.\n\nCo-authored-by: LIU Hao \u003clh_mouse@126.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "49be363ce161977c8594534df488e298e775b8b2",
      "tree": "c44e57665d0de4800b197feed51b0815d6d3510a",
      "parents": [
        "e1ad51338c810b770a4d853b77510b72aa170d2c"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Mon Sep 28 23:19:28 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Wed Sep 30 12:01:05 2026 +0800"
      },
      "message": "winpthreads: For DLL version use DllMain for calling TLS hook\n\nCallbacks defined via PIMAGE_TLS_CALLBACK are not called on Win9x systems,\nand also they are not called on all pre-Vista systems when DLL library is\nloaded at runtime by LoadLibrary() call.\n\nCo-authored-by: LIU Hao \u003clh_mouse@126.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "e1ad51338c810b770a4d853b77510b72aa170d2c",
      "tree": "eba7aa1f1a8893187c1ac492923625dad040ad92",
      "parents": [
        "98794589e9fa1462ad7f4aae9388575254e147eb"
      ],
      "author": {
        "name": "Frank Lichtenheld",
        "email": "frank@lichtenheld.com",
        "time": "Tue Sep 29 12:23:29 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Wed Sep 30 11:47:01 2026 +0800"
      },
      "message": "crt: Add Di* functions to lib32 and lib64 newdev.def\n\nnewdev.h declares DiInstallDevice, DiInstallDriverA/W, DiRollbackDriver,\nDiShowUpdateDevice (all Vista+) and DiUninstallDevice (Win7+), but the\nlib32 and lib64 import libraries do not export them, so any program\ncalling them fails to link with \"undefined reference\". The lib64 def\nfile was generated in 2007 from a pre-Vista newdev.dll, and the lib32\none only ever contained UpdateDriverForPlugAndPlayDevices{A,W}.\n\nlibarm32/newdev.def, generated from the Windows RT 8.1 DLL, already\nlists all of these functions.\n\nSigned-off-by: Frank Lichtenheld \u003cfrank@lichtenheld.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "98794589e9fa1462ad7f4aae9388575254e147eb",
      "tree": "9b812e1be741a8d9c2f314ba6cbcd4216f9715e4",
      "parents": [
        "6bf0c9f83465dc43c98e1c686359fda77b466c61"
      ],
      "author": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Tue Sep 29 10:43:58 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Wed Sep 30 11:46:53 2026 +0800"
      },
      "message": "winpthreads: Regenerate Makefile.in\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "6bf0c9f83465dc43c98e1c686359fda77b466c61",
      "tree": "fb84a68fd638dbef529b52414f4dc9273c6faae3",
      "parents": [
        "dcfd7d5964539f73763e83154203503ac5af4496"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Tue Sep 29 08:29:48 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Wed Sep 30 11:46:44 2026 +0800"
      },
      "message": "winpthreads: mutex.c: implement robust mutexes\n\nImplementation for robust (`PTHREAD_MUTEX_ROBUST`) mutexes is based directly\non Windows mutexes.\n\nUnlike stalled (`PTHREAD_MUTEX_STALLED`) mutexes, robust mutexes lack fast lock\npaths and always require call to `WaitForSingleObject`, which may result in\na very noticable overhead in certain cases.\n\nAdd tests for robust mutexes. New tests correspond to those for stalled mutexes;\nthere are two new subtests specific to robust mutexes:\n\n- robust-*-state-recoverable\n- robust-*-state-unrecoverable\n\nThese tests verify that robust mutexes properly handle cases when a thread\nwhich owned the mutex terminated without releasing it.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nCo-authored-by: LIU Hao \u003clh_mouse@126.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "dcfd7d5964539f73763e83154203503ac5af4496",
      "tree": "b00eaa7afb28c44d5509c47660db0e69f4b852e7",
      "parents": [
        "3d13edfb49747bfb1b359a9af2ec178bfccc3593"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Tue Sep 29 08:29:48 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Tue Sep 29 10:42:33 2026 +0800"
      },
      "message": "winpthreads: mutex.c: implement `pthread_mutexattr_{set,get}robust` functions\n\nThis change is a preparation step for implementing robust mutexes.\n\nAdd new test `pthread_mutex/attr-robust.c`.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "3d13edfb49747bfb1b359a9af2ec178bfccc3593",
      "tree": "73ec27bb838230e0ce4ecc904113cc85b410b90c",
      "parents": [
        "b589a9f43a8c6daa75997b005ea91dfabf6c3768"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Tue Sep 29 08:29:48 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Tue Sep 29 10:42:33 2026 +0800"
      },
      "message": "winpthreads: mutex.c: implement `pthread_mutex_consistent` function\n\nThis change is a preparation step for implementing robust mutexes.\n\nUpdate `pthread_mutex/*-{basic,static}.c` tests to call\n`pthread_mutex_consistent`.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "b589a9f43a8c6daa75997b005ea91dfabf6c3768",
      "tree": "9671edc5e75e8454753ed5601861311aa88f92c4",
      "parents": [
        "242f4bb78ead7932951b8f8011ae3551209fa842"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Tue Sep 29 08:29:48 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Tue Sep 29 10:42:33 2026 +0800"
      },
      "message": "winpthreads: mutex.c: rename `WinpthreadsTimedWait` -\u003e `WinpthreadsStalledMutexTimedLock`\n\nThis change is a preparation step for implementing robust mutexes.\n\nFunction `WinpthreadsTimedWait` implements common wait logic for stalled\nmutexes; rename it to `WinpthreadsStalledMutexTimedLock` to reflect that.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "242f4bb78ead7932951b8f8011ae3551209fa842",
      "tree": "bd5bb23c5134ca8cb781b161601ef2abb87870d7",
      "parents": [
        "f070f8b78c86da1d7f83e6250871cbf4a74b2105"
      ],
      "author": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 28 14:28:12 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 28 14:28:12 2026 +0800"
      },
      "message": "crt: Regenerate Makefile.in\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "f070f8b78c86da1d7f83e6250871cbf4a74b2105",
      "tree": "aa7e6735adfb65f44c76a5b0196c2375ecb0876c",
      "parents": [
        "231f55ba315b959b6b2918080d4e4226c3a63eda"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sun Sep 06 00:40:37 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 28 14:27:31 2026 +0800"
      },
      "message": "crt: test: Add new t_cpp_dtor_atexit_order test which verifies order of atexit callbacks and C++ thread local destructors\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "231f55ba315b959b6b2918080d4e4226c3a63eda",
      "tree": "34c17e15cb31074b7eeebbed982ea31f0254ed32",
      "parents": [
        "a3d77afdb44c84a65d4c906aa038c82c6f7545db"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sun Sep 13 20:21:29 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 28 14:27:31 2026 +0800"
      },
      "message": "crt: test: Add new t_tls_exe_cxa_atexit_order test which verifies order of atexit and mingw_cxa_atexit callbacks\n\nThe mingw_cxa_atexit callback must be called before any atexit callback independently of the registration order.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "a3d77afdb44c84a65d4c906aa038c82c6f7545db",
      "tree": "d280a31dede1c3372a9e31c8e9553512bc25704b",
      "parents": [
        "d3e0b702edd939c74d8e0502072b2db322509b93"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sun Sep 06 00:27:45 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 28 14:27:31 2026 +0800"
      },
      "message": "crt: test: Add new t_tls_exe_dtor_atexit_order test which verifies order of atexit and __tlregdtor callbacks\n\nThe __tlregdtor callback must be called before any atexit callback independently of the registration order.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "d3e0b702edd939c74d8e0502072b2db322509b93",
      "tree": "36fa92e36cf532608d6e2428b85683a9f0fa700e",
      "parents": [
        "1de03732b44b7cb62364d410e0b81e9644bd536d"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sun Sep 06 00:23:20 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 28 14:27:30 2026 +0800"
      },
      "message": "crt: test: Do not exit t_tls_exe_native_process_detach with zero status on non-success\n\nDetect non-success via new global variable.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "1de03732b44b7cb62364d410e0b81e9644bd536d",
      "tree": "5f9e1675d9440bb879e1234d5534ccb8c3541214",
      "parents": [
        "9df3d3e70d522d61ddb79bd60841c5664b061085"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sun Sep 06 00:22:28 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 28 14:27:30 2026 +0800"
      },
      "message": "crt: test: Do not return from t_tls_dll_native_process_detach test on non-success\n\nTest\u0027s PE TLS callback changes exit code to 0. So use TerminateProcess() on non-success.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "9df3d3e70d522d61ddb79bd60841c5664b061085",
      "tree": "50eaf7389b47c3156c9db152923095a91c47ea06",
      "parents": [
        "d59ee1298b424ec93dc439ac8023caa447314613"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sun Sep 13 20:24:57 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 28 14:27:30 2026 +0800"
      },
      "message": "crt: test: Check that __mingw_register_thread_local_exe_atexit_callback_ptr is non-NULL in in t_tls_exe_dtor test\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "d59ee1298b424ec93dc439ac8023caa447314613",
      "tree": "ed12731cbd40bb8d3161a0a0c7e27838761bdff6",
      "parents": [
        "a0ba64d0ce512a2801a3152cdbabb9b355c4e029"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sat Sep 05 23:47:25 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 28 14:27:30 2026 +0800"
      },
      "message": "crt: test: Check event counter in t_tls_exe_dtor test for main process callback\n\nVerifies that callback registered via __tlregdtor for the main process\nthread (which is called after the main function returns) is not called more\nthan once.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "a0ba64d0ce512a2801a3152cdbabb9b355c4e029",
      "tree": "09b459ade444cd44104797582e2d8afb89d2fc1e",
      "parents": [
        "b7f5cd3bbb51e03dd1f8a90dcc9f7c632b5e1054"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sat Sep 05 20:45:32 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 28 14:27:30 2026 +0800"
      },
      "message": "crt: tls: Call __dyn_tls_dtor also from the thread_local_exe_atexit_callback\n\nmsvc/UCRT calls the __dyn_tls_dtor function two times, once during the\nexit() call via thread_local_exe_atexit_callback and second time from the\nPE TLS callback.\n\nSo do the same thing in mingw-w64. Stores the __dyn_tls_dtor pointer into\nthe tentative __dyn_tls_dtor_callback variable, so it can be referenced and\ncalled on demand. msvc also provides the __dyn_tls_dtor_callback symbol.\n\nNote that __dyn_tls_dtor has already guard which prevents duplicate\nexecution of individual callbacks.\n\nThis change fixes execution order of atexit and __dyn_tls_dtor callbacks by\nexecuting all __dyn_tls_dtor callbacks before atexit callbacks. This\nmatches the msvc behavior.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "b7f5cd3bbb51e03dd1f8a90dcc9f7c632b5e1054",
      "tree": "6d0145a6f11084689e4f98a007084d5bc4f2b587",
      "parents": [
        "a394c23a5182a804476a2b8ec0f8264ecae6dc4f"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sat Sep 05 21:05:02 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 28 14:27:30 2026 +0800"
      },
      "message": "crt: tls: Move _register_thread_local_exe_atexit_callback into own source unit and do not call it for DLL builds\n\nAdd a new internal function __mingw_register_thread_local_exe_atexit_callback\nwhich will call the CRT _register_thread_local_exe_atexit_callback() function\nwith the mingw-w64 supplied callback function. Supplied callback function\nfor now just calls the __mingw_cxa_atexit_callback_ptr (which is pointer to\nthe tls_atexit_callback) previously directly passed as argument to\n_register_thread_local_exe_atexit_callback().\n\nStores pointer of the __mingw_register_thread_local_exe_atexit_callback\ninto the tentative __mingw_register_thread_local_exe_atexit_callback_ptr\nvariable and call it from crtexe.c on demand when is linked into final\nexectuable. And reference the __mingw_register_thread_local_exe_atexit_callback\nsymbol from tls_atexit.c where is the __mingw_cxa_atexit_callback_ptr\ndefined and expected to be __mingw_register_thread_local_exe_atexit_callback\ncalled from CRT EXE startup code.\n\nWith these tenative definitions, the _register_thread_local_exe_atexit_callback()\nwould be included in final binary image only if the callback is really\nrequired and only for EXE builds.\n\nBefore this change the _register_thread_local_exe_atexit_callback() with\ntls_atexit_callback argument was called from PE TLS DLL_PROCESS_ATTACH\ncallback. After this change, _register_thread_local_exe_atexit_callback()\n(with new mingw-w64 callback which calls tls_atexit_callback via\n__mingw_cxa_atexit_callback_ptr) is called from new function\n__mingw_register_thread_local_exe_atexit_callback() which is called from\nCRT EXE startup code (crtexe.c).\n\nAlso extend documentation for tls_atexit_callback and tls_callback.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "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"
    },
    {
      "commit": "dd706ccbef23b1b2fdadb4f131440b45ef3fdff2",
      "tree": "4e18cd6c18cddc72c02e649aa2152444f23ef99d",
      "parents": [
        "0ba2323bd1525b50262d3cf2fbb8df4496f93479"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sat Sep 05 18:18:44 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 28 14:27:30 2026 +0800"
      },
      "message": "crt: tls: Rename __mingw_atexit_tls_callback_ptr to __mingw_cxa_tls_callback_ptr\n\nIt is a better description of the callback which is used for mingw cxa TLS API functionality.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "0ba2323bd1525b50262d3cf2fbb8df4496f93479",
      "tree": "d93c636e4051cc0a03ab9a1562ad0443d0e03b3b",
      "parents": [
        "af31875616312a66a41b6417f4085d28684332b5"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sat Sep 05 18:03:57 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 28 14:27:30 2026 +0800"
      },
      "message": "crt: tls: Rename __mingw_TLScallback_ptr to __w64_mingwthr_callback_ptr\n\nIt is a better description of the callback which is used for w64_mingwthr API functionality.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "af31875616312a66a41b6417f4085d28684332b5",
      "tree": "160f19e9f30653f77d2efb89e4992f1779cd2bf8",
      "parents": [
        "a112e5740d42c374aa0244016db19b68aeb189b0"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sat Sep 05 18:02:14 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 28 14:27:30 2026 +0800"
      },
      "message": "crt: tls: Do not export __mingw_TLScallback function, declare it as static\n\nThis is internal mingw-w64 function and does not have to be exported.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "a112e5740d42c374aa0244016db19b68aeb189b0",
      "tree": "8e9dbf99ec1b38a0382891cd082ac34928d051dc",
      "parents": [
        "9ea46f4c128a5bfde80e192d60eddcea74916880"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sat Sep 05 14:44:43 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 28 14:27:30 2026 +0800"
      },
      "message": "crt: tls: Deduplicate code for running mingw cxa dtors\n\nCode for this functionality inside the tls_atexit.c file is already in the\nlocal tls_atexit_callback() function.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "9ea46f4c128a5bfde80e192d60eddcea74916880",
      "tree": "d64a9cc79e70ab20035d0b2718bc78cfca8fddea",
      "parents": [
        "4564ee4b5063097bf747af3a3f8270a28adff820"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Wed Sep 23 12:35:32 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 25 17:52:52 2026 +0800"
      },
      "message": "gendef: Do not set stdcall @0 for non-stdcall functions parsed from existing def files\n\nIf there is a def file \"lib1.def\" with line \"func1\" and gendef was called\non lib2.dll which contains func2 symbol defined as PE forward to lib1.func1\nthen gendef produces \"lib2.def\" file with line \"func2@0 \u003d lib1.func1\" even\nwhen gendef was not called with -a option.\n\nThis behavior is wrong because func1 in lib1.def is not defined as stdcall\ntherefore gendef should not add stdcall decoration for func2.\n\nThis change fixes this issue, changes the way how gendef reads and parse\ninput def files.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "4564ee4b5063097bf747af3a3f8270a28adff820",
      "tree": "aebd7be4acfcc74255dd8fc4177a5b54b04f89f5",
      "parents": [
        "c95ced33f88c0717fbdd9e14bd9eb3751cdac364"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Tue Sep 22 15:27:39 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Thu Sep 24 10:49:06 2026 +0800"
      },
      "message": "crt: Remove arm32 msvcp120_clr0400.def file\n\nmsvcp120_clr0400.dll is private .NET CLR library for .NET runtime which\nshould not be used by other applications. The public redistributable\nlibrary msvcp120.dll but this is not used by mingw-w64 yet.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "c95ced33f88c0717fbdd9e14bd9eb3751cdac364",
      "tree": "d9c9340a677a05cf92a087fbbe2a6b30ad499b91",
      "parents": [
        "7006a8a3262de6f3ea0616764d962ee31b5a5999"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Tue Sep 22 12:11:13 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Thu Sep 24 10:30:14 2026 +0800"
      },
      "message": "winpthreads: pthread.h: group spinlock-related declarations together\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "7006a8a3262de6f3ea0616764d962ee31b5a5999",
      "tree": "fba452db9d0ae997e3da9b55ef967d4b2c594562",
      "parents": [
        "5136007c8715af40f8f354ebf4b2185a9c9d03b4"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Tue Sep 22 12:11:13 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Thu Sep 24 10:30:14 2026 +0800"
      },
      "message": "winpthreads: spinlock.c: add fast lock paths\n\nThese fast paths are equivalent to those used for stalled mutexes in mutex.c.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "5136007c8715af40f8f354ebf4b2185a9c9d03b4",
      "tree": "c918c4f386156e287a676f85e06a2c453e871516",
      "parents": [
        "57b595039040eaa15bece85b7cc71d952281b269"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Tue Sep 22 12:11:13 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Thu Sep 24 10:30:14 2026 +0800"
      },
      "message": "winpthreads: spinlock.c: call `CreateEventW` instead of `CreateEventA`\n\nUnicode APIs such as `CreateEventW` are preffered over ANSI such as\n`CreateEventA`; the former, however, are not supported on Win9x systems.\n\nIn the current state, winpthreads does not support Win9x systems, so use\nUnicode APIs instead.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "57b595039040eaa15bece85b7cc71d952281b269",
      "tree": "1962de843a36e0729aaa733309bb24b70c4be36f",
      "parents": [
        "d36bf8095cfc0afcf2fa8098cd117878a2f63177"
      ],
      "author": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 19 18:24:28 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 19 18:25:15 2026 +0800"
      },
      "message": "winpthreads: Fix typos in comments\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "d36bf8095cfc0afcf2fa8098cd117878a2f63177",
      "tree": "a7a310a3996602fae776c118fd2ccf405d9ac0a3",
      "parents": [
        "61d40c4c077b82ed2ad22640742bd01e3000e222"
      ],
      "author": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 19 18:16:18 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 19 18:16:18 2026 +0800"
      },
      "message": "winpthreads: Ensure `*_INITIALIZER` expand to indivisible expressions\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "61d40c4c077b82ed2ad22640742bd01e3000e222",
      "tree": "b8b82dca12c6cd7b89c69e21eeaa746ea811e122",
      "parents": [
        "a166dd18bb50842f2eb4ab5e02e0da6e2f4ebcc5"
      ],
      "author": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 18 23:06:39 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 19 17:57:48 2026 +0800"
      },
      "message": "winpthreads: Regenerate Makefile.in\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "a166dd18bb50842f2eb4ab5e02e0da6e2f4ebcc5",
      "tree": "0ed7fb062546ca253826110c383f1d32bbae9363",
      "parents": [
        "510ae6631b0a82d5cf1deab2711af3f56e23d0e0"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 18 20:22:33 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 19 17:57:48 2026 +0800"
      },
      "message": "winpthreads: pthread.h: group mutex-related declarations together\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "510ae6631b0a82d5cf1deab2711af3f56e23d0e0",
      "tree": "3b8b97f4f6201fc9b305b7af5ec12337b973417f",
      "parents": [
        "9aff49b9c81df45793b320d6608178ee79f53fed"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 18 20:22:33 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 19 17:57:48 2026 +0800"
      },
      "message": "winpthreads: pthread.h: remove `GENERIC_*INITIALIZER` constants\n\nThese constants were used to define `PTHREAD_*_INITIALIZER` constants.\n\nRemove `GENERIC_*INITIALIZER` constants and define `PTHREAD_*_INITIALIZER`\nconstants using appropriate values.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "9aff49b9c81df45793b320d6608178ee79f53fed",
      "tree": "72cfffba61050f521834d431e4c0b15311d9b98e",
      "parents": [
        "1146136ce132917556842690bda1322f31ccadad"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 18 20:22:33 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 19 17:57:48 2026 +0800"
      },
      "message": "winpthreads: mutex.c: reorder function definitions\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "1146136ce132917556842690bda1322f31ccadad",
      "tree": "552be85750c149ed21ca74e4de6fcd34c5e5f84a",
      "parents": [
        "0573b46f3ddf3b7a1729c353c0935c26345c3130"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 18 20:22:33 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 19 17:57:48 2026 +0800"
      },
      "message": "winpthreads: mutex.c: move `pthread_mutexattr_*` functions in their own section within the file\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "0573b46f3ddf3b7a1729c353c0935c26345c3130",
      "tree": "4ac3ebfc685c8972f9f43bcfad5def64a12fc6c0",
      "parents": [
        "b339e4d31c479da242eadb0d0d117edea49c660f"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 18 20:22:32 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 19 17:57:48 2026 +0800"
      },
      "message": "winpthreads: mutex.c: update `pthread_mutex_init` function\n\nUse `pthread_mutexattr_t` value passed to `pthread_mutex_init` directly,\ninterpreted as `WinpthreadsMutexAttributes` union, instead of retrieving\nattributes by calling `pthread_mutexattr_get*` functions; these functions\nare still called to validate passed `pthread_mutexattr_t` object.\n\nSimplify `WinpthreadsMutexGet` function by using `WinpthreadsMutexAttributes`\nunion directly instead of manipulating `pthread_mutexattr_t` object.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "b339e4d31c479da242eadb0d0d117edea49c660f",
      "tree": "e7f06e1ba5d465f2d39a1088f222412493cc0905",
      "parents": [
        "d90d65114c1585da41b2efc9cf8567bfc11088a6"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 18 20:22:32 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 19 17:57:48 2026 +0800"
      },
      "message": "winpthreads: tests: add tests for `pthread_mutexattr_*` functions\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "d90d65114c1585da41b2efc9cf8567bfc11088a6",
      "tree": "627e228ec770b94d143a71dac6b5137d0468e885",
      "parents": [
        "bf7aa803119b69b738a6e3409102b1566b7987c8"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 18 20:22:32 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 19 17:57:47 2026 +0800"
      },
      "message": "winpthreads: mutex.c: update `pthread_mutexattr_*` functions\n\nInterpret `pthread_mutexattr_t` as a union consisting of bit fields.\n\nThis change makes it easier to understand how `pthread_mutexattr_*` functions\noperate on `pthread_mutexattr_t` objects and provide support for new attributes.\n\nRemove macro `PTHREAD_PRIO_MULT` from pthread.h; this constant is not defined\nby POSIX and is only used by `pthread_mutexattr_{set,get}prioceiling` functions.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "bf7aa803119b69b738a6e3409102b1566b7987c8",
      "tree": "cd50f9d316451dee73b86e95fa686a197c72b686",
      "parents": [
        "4d81109f4fcd2c5f6844dd85d4db0bb21161cc6a"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 18 20:22:32 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 19 17:57:47 2026 +0800"
      },
      "message": "winpthreads: tests: do not use `pthread_mutex_lock` in *-timedlock mutex tests\n\nThese tests used `pthread_mutex_lock` to initially lock the mutex.\nUse `pthread_mutex_timedlock` instead.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "4d81109f4fcd2c5f6844dd85d4db0bb21161cc6a",
      "tree": "c2acc0f97c6199f00c8f34899055199621c99b68",
      "parents": [
        "8ca2236e1356d6beb5c06c1d6cf7b76162e0c89b"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 18 20:22:32 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 19 17:57:47 2026 +0800"
      },
      "message": "winpthreads: tests: do not use `pthread_mutex_lock` in *-trylock-recursive mutex tests\n\nThese tests used `pthread_mutex_lock` to initially lock the mutex.\nUse `pthread_mutex_trylock` instead.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "8ca2236e1356d6beb5c06c1d6cf7b76162e0c89b",
      "tree": "74edd44d58a332408f034322eb18f11397332c44",
      "parents": [
        "6de5d3b4db33c23e404148321ccb4a7bf92ca4fc"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 18 20:22:32 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 19 17:57:47 2026 +0800"
      },
      "message": "winpthreads: tests: do not use `pthread_mutex_lock` in *-trylock mutex tests\n\nThese tests used `pthread_mutex_lock` to initially lock the mutex.\nUse `pthread_mutex_trylock` instead.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "6de5d3b4db33c23e404148321ccb4a7bf92ca4fc",
      "tree": "80baf0bb0e852bbc7b949756919b5ccbc3390ed9",
      "parents": [
        "ab7c1a4d1550f382f6f3ebc82ae8dd96de114fc0"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sun Sep 13 21:09:52 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Thu Sep 17 11:22:58 2026 +0800"
      },
      "message": "crt: gdtoa: Replace atexit by __attribute__((destructor))\n\nThis avoid overhead of atexit call which requires dynamic allocation and\nfor DLL builds also larger code which is statically linked into every DLL.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "ab7c1a4d1550f382f6f3ebc82ae8dd96de114fc0",
      "tree": "90a97af25854db8a88add242558291566d7db1d3",
      "parents": [
        "b19001a4b38b633b48f9d709fe3fecd5e9905fd4"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sun Sep 13 21:09:03 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Thu Sep 17 11:22:58 2026 +0800"
      },
      "message": "crt: gdtoa: Fix race conditions during initialization of dtoa lock\n\nUse InterlockedExchange() for changing the dtoa_CS_init variable to ensure\nthat new value would be immediately visible in all threads.\n\nWhen a thread saw `dtoa_CS_init \u003d\u003d 0`, it was possible that another thread got\nscheduled and completed initialization, so `dtoa_CS_init` became 2; and then the\ncurrent thread did `last_CS_init \u003d InterlockedExchange (\u0026dtoa_CS_init, 1)` and\nsaw `last_CS_init \u003d\u003d 2` and restored it with `InterlockedExchange (\u0026dtoa_CS_init, 2)`.\nThe value of `dtoa_CS_init` went from 2 to 1 to 2, which was an ABA pattern.\n\nThe other thread which actually completed initialization should only call\n`EnterCriticalSection(\u0026dtoa_CritSec[n])` when it saw `dtoa_CS_init \u003d\u003d 2`. In the\nmiddle of this ABA sequence, the call might get missed.\n\nThe fix is to update `dtoa_CS_init` to 1 with a CAS from 0 so it will not be\nupdated from anything else.\n\nCo-authored-by: LIU Hao \u003clh_mouse@126.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "b19001a4b38b633b48f9d709fe3fecd5e9905fd4",
      "tree": "9de4b839802c2c397419d9684ba6d0bc41b8a5bd",
      "parents": [
        "2c1cd2f9c2a2affdba9186f8a1c95a6c2bc90de4"
      ],
      "author": {
        "name": "Zhongteng Gui",
        "email": "dragon-archer@outlook.com",
        "time": "Thu Sep 17 00:55:01 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Thu Sep 17 10:33:27 2026 +0800"
      },
      "message": "headers: corecrt.h: Don\u0027t define mbstate_t for Cygwin.\n\nThis fixes a regression that was caused by 8c4baed92d4dee4fe1874af860a61aa5c945b6f5.\nCygwin has its own `mbstate_t` which is different from the Windows one.\n\nSigned-off-by: Zhongteng Gui \u003cdragon-archer@outlook.com\u003e\nReference: https://sourceforge.net/p/mingw-w64/mailman/message/59391723/\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "2c1cd2f9c2a2affdba9186f8a1c95a6c2bc90de4",
      "tree": "073bfa4f94f44a69994e62feded56c895ba0f0c2",
      "parents": [
        "61db487c8eb1307419e8393eb55e041d3ceb36ea"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Tue Sep 15 21:21:53 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Wed Sep 16 10:22:12 2026 +0800"
      },
      "message": "crt: tests: t_assert: do not set `stderr` to Unicode translation mode\n\nBy default, `assert` macro calls CRT function `_assert`; this function\ndoes not work when `stderr` is set to Unicode translation mode.\n\nThis test was added in b2c3c92b542df57ed8bfcd798928692e94a35308 to\ntest mingw-w64 wrapper for `_assert`, which was added to make it work\nin cases when `stderr` wsa set to Unicode translation mode.\n\nWith this change, t_assert becomes a simple test for `assert` macro.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "61db487c8eb1307419e8393eb55e041d3ceb36ea",
      "tree": "4bb62ea95a22424164088082029e02bcdbf5b245",
      "parents": [
        "94126a8b36c8f41981c8999e4665f0bc555b5cfb"
      ],
      "author": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Tue Sep 15 22:27:41 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Wed Sep 16 10:17:15 2026 +0800"
      },
      "message": "crt: Regenerate Makefile.in\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "94126a8b36c8f41981c8999e4665f0bc555b5cfb",
      "tree": "d68be1043b090518c51e7748fdc2ebe7a02a6e1e",
      "parents": [
        "0f79e39c3e3f6ae4d7541337f684d52123730a90"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Tue Sep 15 21:21:54 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Wed Sep 16 10:17:15 2026 +0800"
      },
      "message": "crt: remove mingw-w64 wrapper for _assert()\n\nThe purpose of `_assert` wrapper was to make `assert` usable when an Unicode\ntranslation mode was enabled on stderr. At the time when this wrapper was added,\nit was asumed that `_assert` does not return, when in fact it can.\n\nIt is important to keep in mind that after displaying the message, `_assert`\nterminates the process by calling `abort`; it is possible to escape from `abort`\nby setting signal handler for SIGABRT which calls `longjmp`.\n\nIf an application were to perform such escape, previous translation mode used on\nstderr will not be restored and it will be left in `_O_TEXT` translation mode.\n\n`_assert` is also called from mingw-w64 wrapper for `_wassert`, which allocates\nmemory using `malloc`; such escape from `_assert` would result in a memory leak.\n\nTo avoid issues descrived above, remove wrapper for `_assert`. Any application\nthat calls `_assert` directly must take its limitations into account.\n\nThis change effectively reverts b2c3c92b542df57ed8bfcd798928692e94a35308.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "0f79e39c3e3f6ae4d7541337f684d52123730a90",
      "tree": "95fb7838e3966ce3856a10321fe0278b28d3661d",
      "parents": [
        "15d4cc4c73cdbc6e10c3a726b41b071d7245c8e3"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Tue Sep 15 21:21:53 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Wed Sep 16 10:17:15 2026 +0800"
      },
      "message": "crt: tests: add new test t_wassert\n\nThis test is similar to t_assert, except it tests CRT function `_wassert`.\n\nUnlike `_assert`, CRT function `_wassert` properly behaves in case when\n`stderr` was set to Unicode translation mode.\n\nWhen this test is compiled with msvcrt.dll, or msvcr80.dll and later, it also\nsets `stderr` to Unicode transaltion mode before triggering an `assert`.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "15d4cc4c73cdbc6e10c3a726b41b071d7245c8e3",
      "tree": "076d4b03d46768ecf221155e785807063b49959c",
      "parents": [
        "84eeb47960d4dfc7e1972fc2f682df8ba8049322"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Tue Sep 15 21:21:53 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Wed Sep 16 10:17:15 2026 +0800"
      },
      "message": "crt: tests: t_assert: write child process\u0027 output to stdout\n\nAfter the child process terminates, read the rest of the data it has written\nto the pipe and write it to stdout; this allows to examine assertion message\nprinted by the child process.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "84eeb47960d4dfc7e1972fc2f682df8ba8049322",
      "tree": "7087a62f2c593694ebfc0ef42dd764fb0bb60f3b",
      "parents": [
        "f8b5ec01ebd23f28e908f1b48c67f79758f66a8b"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sun Sep 13 21:08:09 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 14 15:06:22 2026 +0800"
      },
      "message": "crt: test: Use winternl.h instead of ntdef.h in t_format_Z* tests\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "f8b5ec01ebd23f28e908f1b48c67f79758f66a8b",
      "tree": "9f4f699e35b02fbab410cc6e476d124852dfb2af",
      "parents": [
        "85c7dd4cce5ab74b679f9ca74efa49a7f5e4bd5a"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sun Sep 13 21:07:21 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 14 15:06:15 2026 +0800"
      },
      "message": "crt: test: Add assert for atexit call in t_fstat\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "85c7dd4cce5ab74b679f9ca74efa49a7f5e4bd5a",
      "tree": "8255d985fa7217b851ef8c9550c43359b850448b",
      "parents": [
        "344fb5b82d5a851554c693bbe038ffa8a619a71c"
      ],
      "author": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 11 23:08:19 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 12 13:39:32 2026 +0800"
      },
      "message": "winpthreads: Regenerate configure and Makefile.in\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "344fb5b82d5a851554c693bbe038ffa8a619a71c",
      "tree": "17c944198ee257c438fe379d5e7089d333d9e6e3",
      "parents": [
        "43b26479f156d4062ee10e7298e4c984173397a9"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:25 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 12 13:39:32 2026 +0800"
      },
      "message": "winpthreads: tests: add missing subtests for normal mutexes\n\nThe mutex tests are named using pattern {type}[-static]-{subtest}.\nAdd missing subtests for normal mutexes.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "43b26479f156d4062ee10e7298e4c984173397a9",
      "tree": "27e88989f95644fbaa3228cdc8c9e7f0a5c49512",
      "parents": [
        "6bd55bfadd6acc0cff4d5df5f179218d0a60510b"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:25 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 12 13:39:32 2026 +0800"
      },
      "message": "winpthreads: tests: rename mutex tests\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "6bd55bfadd6acc0cff4d5df5f179218d0a60510b",
      "tree": "d10b30a998c4119e6ba5ea739242d2053d5b1eee",
      "parents": [
        "aae2ea4d24ef487444f9195ec31a48605d01291d"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:25 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 12 13:39:31 2026 +0800"
      },
      "message": "winpthreads: tests: update pthread_mutex/mutex8*.c\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "aae2ea4d24ef487444f9195ec31a48605d01291d",
      "tree": "a1dce66fc4219cbf7ea73422de0da71cf4ed86d0",
      "parents": [
        "08016867ca7a9d00c673b038613224da21ee2aeb"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:24 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 12 13:39:31 2026 +0800"
      },
      "message": "winpthreads: tests: update pthread_mutex/mutex7*.c\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "08016867ca7a9d00c673b038613224da21ee2aeb",
      "tree": "aea3475b2d6ca3f6cd7fc167c5acae1a3a38756c",
      "parents": [
        "e20528ccdef5ecfe1954f542471124562e6b808c"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:24 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 12 13:39:31 2026 +0800"
      },
      "message": "winpthreads: tests: update pthread_mutex/mutex6*.c\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "e20528ccdef5ecfe1954f542471124562e6b808c",
      "tree": "0902323fe8e8b0b1ad4aef5e2a2d86ba980d39a9",
      "parents": [
        "7c5487dfd3bb57d9f54205ccbc71b89dd5af93ab"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:24 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 12 13:39:31 2026 +0800"
      },
      "message": "winpthreads: tests: update pthread_mutex/mutex5.c\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "7c5487dfd3bb57d9f54205ccbc71b89dd5af93ab",
      "tree": "09e2d811d49b2cb46174ac3cfc506f6e091ffb0e",
      "parents": [
        "c930a6d9edc13bfe8968275dd9d6607a411e9e27"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:24 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 12 13:39:31 2026 +0800"
      },
      "message": "winpthreads: tests: update pthread_mutex/mutex4*.c\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "c930a6d9edc13bfe8968275dd9d6607a411e9e27",
      "tree": "94b81093ad9f330bb85d87c732ad41472af7ec40",
      "parents": [
        "5d25819156b085b78f75585c83a7a91f39a7f56b"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:24 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 12 13:39:31 2026 +0800"
      },
      "message": "winpthreads: tests: update pthread_mutex/mutex3*.c\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "5d25819156b085b78f75585c83a7a91f39a7f56b",
      "tree": "38e5ee9b7d26b6407f5fc26a73f81bc93e5e9481",
      "parents": [
        "e0195d9bb8b1d4737c87bb9ed875f398d04a8a1b"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:24 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 12 13:39:31 2026 +0800"
      },
      "message": "winpthreads: tests: update pthread_mutex/mutex2*.c\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "e0195d9bb8b1d4737c87bb9ed875f398d04a8a1b",
      "tree": "1e7ccadfbe98cb7d9a332bbabdc5c5f8aae3b953",
      "parents": [
        "73e5bda90b3f5f59441296f3b59a2ac7497f0542"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:24 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 12 13:39:31 2026 +0800"
      },
      "message": "winpthreads: tests: update pthread_mutex/mutex1*.c\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "73e5bda90b3f5f59441296f3b59a2ac7497f0542",
      "tree": "2bf597ad15f969b75c848f5e62c6b585b54a7336",
      "parents": [
        "42c8f0c1a8f1b5edc80a55a729b684dbafbd44dd"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:24 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 12 13:39:30 2026 +0800"
      },
      "message": "winpthreads: tests: split pthread_mutex/mutex4.c\n\nMove test for each mutex type to a separate file.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "42c8f0c1a8f1b5edc80a55a729b684dbafbd44dd",
      "tree": "dfd5a071804f5114feabb81591b8e2dcc9d74420",
      "parents": [
        "5f5452330fc7ee3c04692fc995a3811adbd6e883"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:24 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 12 13:39:30 2026 +0800"
      },
      "message": "winpthreads: tests: fix typos in pthread_mutex/* tests\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "5f5452330fc7ee3c04692fc995a3811adbd6e883",
      "tree": "0482185616b8286e58ba9cba11faee2235094d7a",
      "parents": [
        "e42b9491c6dc90b57dc125165c732af0e7820f3a"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:24 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 12 13:39:30 2026 +0800"
      },
      "message": "winpthreads: tests: reformat pthread_mutex/* tests\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "e42b9491c6dc90b57dc125165c732af0e7820f3a",
      "tree": "b6d4c8182dadbf4a2d243aaa8031c9ff70c1b55b",
      "parents": [
        "3147c814c309b43d3f02d69e39fa8da05dfb4cad"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:24 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 12 13:39:30 2026 +0800"
      },
      "message": "winpthreads: mutex.c: refactor implementation\n\nFor each mutex type supported by the implementation, move logic for each basic\noperation to a separate function:\n\n- It reduces amount of runtime checks\n- It makes it easier to follow interaction between functions implementing\n  basic operations for a specific mutex type\n\nThere is now a separate `Winpthreads{Type}Mutex` structure for each mutex type\nsupported by the implementation.\n\nStructure `WinpthreadsMutex`, which is pointed to by `pthread_mutex_t` objects,\nnow is an union of mutex-type-specific `Winpthreads{Type}Mutex` structures.\n\nThe real allocation size of `WinpthreadsMutex` structure is the same as for\n`Winpthreads{Type}Mutex` structure for a specific mutex type; this allows us to\nallocate only as much memory as required to implement specific mutex type.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nCo-authored-by: LIU Hao \u003clh_mouse@126.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "3147c814c309b43d3f02d69e39fa8da05dfb4cad",
      "tree": "937074a7ad30c2463a71735184271c27a93bba6f",
      "parents": [
        "5ad0d1594d7cf77061efb3614b2dc0cf344b1283"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:24 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 11 23:07:42 2026 +0800"
      },
      "message": "winpthreads: mutex.c: improve `pthread_mutex_destroy`\n\nCheck whether mutex passed to `pthread_mutex_destroy` is owned by any thread,\nincluding the calling thread, and fail with EBUSY in such case.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "5ad0d1594d7cf77061efb3614b2dc0cf344b1283",
      "tree": "d5ddb23af67d5a1034088ec55d41e920dce6629a",
      "parents": [
        "3275fe8de161f30905e4aa58210ecaf0f749058d"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:24 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 11 23:07:42 2026 +0800"
      },
      "message": "winpthreads: mutex.c: update static function `mutex_impl`\n\nThis function now returns zero on success and an error code on failure.\nThis allows to propagate error code from `pthread_mutex_init` to the caller.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "3275fe8de161f30905e4aa58210ecaf0f749058d",
      "tree": "2d9091bf65fe6d61cddb41e9ad260a599d702f10",
      "parents": [
        "bc46ce75c89e0a3b8bb7d702cd66b1e67a40117f"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:23 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 11 23:07:41 2026 +0800"
      },
      "message": "winpthreads: mutex.c: move initialization logic to `pthread_mutex_init`\n\nMove initialization logic to `pthread_mutex_init`, where it belongs,\nand remove static function `mutex_impl_init`.\n\nUpdate `mutex_impl` function to call `pthread_mutex_init` instead of removed\n`mutex_impl_init`.\n\nBefore this change, initialization of `pthread_mutex_t` objects was handled\nas follows:\n\n1. Function `pthread_mutex_init` did not perform actual initialization,\n  but simply stored a static initializer in the `pthread_mutex_t` object.\n\n2. Later, when such statically initialized mutex was about to be used,\n  `mutex_impl` would call `mutex_impl_init` to allocate `mutex_impl_t`\n  structure and store its address in `pthread_mutex_t` object.\n\n3. In `pthread_mutex_lock_intern`, which is the implementation for public\n  `pthread_mutex_*lock` functions, it would create event object and store\n  it in `mutex_impl_t` structure.\n\nThis means that even after successful call to `pthread_mutex_init`,\ninitialized mutex still may be unusable:\n\n- Step 2 may fail to allocate `mutex_impl_t` structure due to out-of-memory\n  conditions.\n- Step 3 may fail to create event object.\n- In step 3, multiple threads may create an event object at the same time,\n  potentially exhausting resources available to the process.\n\nAfter this change, function `pthread_mutex_init` creates fully initialized\nmutex which does not require additional initialization steps later.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "bc46ce75c89e0a3b8bb7d702cd66b1e67a40117f",
      "tree": "1dabdcf309f8833500069cc029b32a315d99cc38",
      "parents": [
        "0046d05bb0e6d7e2ecaf6e04aa51c35e2fefbfca"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:23 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 11 23:07:41 2026 +0800"
      },
      "message": "winpthreads: mutex.c: improve `pthread_mutex_timedlock`\n\nPOSIX[1] does not specify behavior when the second argument to\n`pthread_mutex_timedlock` is NULL; assume it is always non-NULL.\n\nFollow POSIX[1] specification and fail with EINVAL if `tv_nsec` field of passed\n`struct timespec` is less than zero or greater than or equal to 1000000000.\n\nReplace uses of `unsigned long long` with more MSVC-friendly `unsigned __int64`.\n\nCast `patience` variable to `DWORD` when calling `pthread_mutex_lock_intern`;\nthis avoids MSVC warning C4244.\n\n[1] https://pubs.opengroup.org/onlinepubs/9799919799.2024edition/functions/pthread_mutex_clocklock.html\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "0046d05bb0e6d7e2ecaf6e04aa51c35e2fefbfca",
      "tree": "f8669114a00c14d7cde5db968b6c74e811b113a6",
      "parents": [
        "fb54e034817d783236cf3cc58082bc505942f5d0"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:23 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 11 23:07:41 2026 +0800"
      },
      "message": "winpthreads: mutex.c: add reference links to POSIX specification\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "fb54e034817d783236cf3cc58082bc505942f5d0",
      "tree": "c4cacfc96750b5d4fc77a447a0b21a9f54a438f0",
      "parents": [
        "09f04c31adf2b4e5beaa9c866bd5ff3e8bf8ce1d"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:23 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 11 23:07:41 2026 +0800"
      },
      "message": "winpthreads: mutex.c: remove static function `__pthread_mutex_timedlock`\n\nIn 87281623c635c264cb128d4fd9af54c7a4705ae6, function `pthread_mutex_timedlock`\nwas renamed to `__pthread_mutex_timedlock` and modified to always use\n`struct _timespec64`; it was used as a common implementation for\n`pthread_mutex_timedlock{32|64}` functions.\n\nMove code from `__pthread_mutex_timedlock` to `pthread_mutex_timedlock64` and\ncall `pthread_mutex_timedlock64` from `pthread_mutex_timedlock32`.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "09f04c31adf2b4e5beaa9c866bd5ff3e8bf8ce1d",
      "tree": "31d35f503c70a256fb8ad0c39174206ebcb18bbd",
      "parents": [
        "8f9675d9ecf62865bfe700f6b61f7186b587bf6f"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:23 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 11 23:07:41 2026 +0800"
      },
      "message": "winpthreads: mutex.c: replace `is_static_initializer` function with a macro\n\nThis is consistent with other source files.\nDocument valid values for a statically initialized `pthread_mutex_t` object.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "8f9675d9ecf62865bfe700f6b61f7186b587bf6f",
      "tree": "d12332f8f3e31f2d4d8c993e15179d8161a41036",
      "parents": [
        "00e208efaf34af1bbf5c6ec27d1adff7dc9f552e"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:23 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 11 23:07:41 2026 +0800"
      },
      "message": "winpthreads: reformat src/mutex.c\n\nThe changes include:\n\n- Minor whitespace changes\n- Consistent use of two spaces for indentaion\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "00e208efaf34af1bbf5c6ec27d1adff7dc9f552e",
      "tree": "61f326da7acb1ce3eeb1f17c8df86504e0edd3bd",
      "parents": [
        "9c1abbbf55a3de2febee4d1f685b1bda20774c5e"
      ],
      "author": {
        "name": "Kirill Makurin",
        "email": "maiddaisuki@outlook.com",
        "time": "Fri Sep 11 17:22:23 2026 +0900"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 11 23:07:41 2026 +0800"
      },
      "message": "Revert \"Add code to tolerate sloppy code of libgomp.\"\n\nThis reverts commit 628fdbff240760b0de3167cf1d197d448284606c.\n\nSigned-off-by: Kirill Makurin \u003cmaiddaisuki@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "9c1abbbf55a3de2febee4d1f685b1bda20774c5e",
      "tree": "50b6185c7adf0b2ea67190bb452cc6f65fffd91a",
      "parents": [
        "ddda991ad0f6f0531a6e2058f3f187a552201097"
      ],
      "author": {
        "name": "Timo Rothenpieler",
        "email": "timo@rothenpieler.org",
        "time": "Wed Sep 09 14:16:34 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 11 19:14:01 2026 +0800"
      },
      "message": "ssp: prioritize stack guard init constructor\n\nOther libraries might also be running constructors, which themselves are built with SSP enabled,\nor are calling functions that are.\nIf those then get ordered befor the ssp constructor, they might crash due to the yet to be initialized\n__stack_chk_guard.\n\nThis at least affects a statically linked glib, which launches a background thread in the\nlibgio constructor.\nIf the ssp constructor then runs at a random point after, it initializes the stack guard, and once\nthe thread returns from whatever function it\u0027s in, it crashes because the stack guard changed.\n\nSigned-off-by: Timo Rothenpieler \u003ctimo.rothenpieler@uni-bremen.de\u003e\n"
    },
    {
      "commit": "ddda991ad0f6f0531a6e2058f3f187a552201097",
      "tree": "5b9029eb84ff02d2f06351442d24cba465a18441",
      "parents": [
        "7b408e6a9b48d07286d3d825d7fae36c31e38648"
      ],
      "author": {
        "name": "Zhongteng Gui",
        "email": "dragon-archer@outlook.com",
        "time": "Thu Sep 10 15:56:33 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Thu Sep 10 19:40:18 2026 +0800"
      },
      "message": "headers: time.h: Add back _TIMEZONE_DEFINED\n\nSome downstream projects depend on it to avoid multiple definition of\nstruct timezone.\n\nSigned-off-by: Zhongteng Gui \u003cdragon-archer@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "7b408e6a9b48d07286d3d825d7fae36c31e38648",
      "tree": "f3ff152d1c050c2b45efbb0b817206657eb7d7f8",
      "parents": [
        "032e96f73f4771135c61e144679b52b0777d1ca2"
      ],
      "author": {
        "name": "Zhongteng Gui",
        "email": "dragon-archer@outlook.com",
        "time": "Fri Sep 04 22:10:10 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Wed Sep 09 16:19:47 2026 +0800"
      },
      "message": "crt: gettimeofday.c: Optimize implemention\n\nForward gettimeofday to mingw_gettimeofday.\n\nMerge getntptimeofday into gettimeofday and remove redundant conditions.\n\nSigned-off-by: Zhongteng Gui \u003cdragon-archer@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "032e96f73f4771135c61e144679b52b0777d1ca2",
      "tree": "0897d1c5dafeaf2e81baf6a0eadf271c36249be5",
      "parents": [
        "aa96035ea5edd244502bd3e1550d4a801c12033e"
      ],
      "author": {
        "name": "Zhongteng Gui",
        "email": "dragon-archer@outlook.com",
        "time": "Fri Sep 04 22:02:53 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Wed Sep 09 16:19:47 2026 +0800"
      },
      "message": "headers: crt: Clean up time.h and sys/time.h\n\nsys/time.h always include time.h, so no need to define timezone and\nmingw_gettimeofday itself.\n\nUse reserved parameter name for mingw_gettimeofday.\n\nRemove _TIMEZONE_DEFINED and _GETTIMEOFDAY_DEFINED.\n\nSigned-off-by: Zhongteng Gui \u003cdragon-archer@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "aa96035ea5edd244502bd3e1550d4a801c12033e",
      "tree": "1f5927ab57d5f29f8e29ff7eb51e4b941319200a",
      "parents": [
        "a84481954af55fc8e021a2ae95e5d1977962abe9"
      ],
      "author": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Tue Sep 08 13:37:24 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Tue Sep 08 13:37:24 2026 +0800"
      },
      "message": "crt: Update comments in gccmain.c [no ci]\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "a84481954af55fc8e021a2ae95e5d1977962abe9",
      "tree": "24830422efa63a344cea7f92ec1161fb22155aa7",
      "parents": [
        "bfd987c2e36ea2cf739af41f0d2775044f563880"
      ],
      "author": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 07 22:43:18 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Tue Sep 08 10:13:12 2026 +0800"
      },
      "message": "crt: Regenerate Makefile.in\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "bfd987c2e36ea2cf739af41f0d2775044f563880",
      "tree": "7f40c9aaa2c410ef78b11f10606bca8c1135cd31",
      "parents": [
        "3dc9decb77b32713a683dbb44c56416400946b78"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sat Aug 15 13:42:37 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Tue Sep 08 10:13:12 2026 +0800"
      },
      "message": "crt: test: Add t_noatexit_dll test which verifies that DLL which is not using atexit does not have atexit statically linked\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "3dc9decb77b32713a683dbb44c56416400946b78",
      "tree": "d7ed9c4b727f80ce2a33619210af5ff91ad60c1c",
      "parents": [
        "2612fbe42fe6f9584aa8309f18ca3219281a2acc"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sat Aug 15 13:16:06 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 07 22:42:26 2026 +0800"
      },
      "message": "crt: Do not use atexit() for calling gcc global destructors in DLL builds\n\nFunction atexit() for DLL libraries is provided by mingw-w64, which is\nstatically linked on demand when needed.\n\nGlobal destructors for DLL libraries are currently called via first\nregistered DLL atexit callback and atexit callbacks are executed explicitly\nfrom the DLL entry point (for process detach event) in reverse order.\n\nExecution of global destructors does not require DLL atexit support, so\ncall them explicitly after the invocation of atexit callbacks.\n\nProvide two new functions __mingw_dll_do_global_ctors() and\n__mingw_dll_do_global_dtors() which are suitable only for DLL builds.\n\n__mingw_dll_do_global_ctors() is doing same thing as __main() except it\ndoes not register atexit callback for dtors. It contains guard which\nprevents executing globacl constructor multiple times.\n\n__mingw_dll_do_global_dtors() is doing exactly same thing as\natexit callback __do_global_dtors(), just is called explictly.\n\nBoth functions __mingw_dll_do_global_ctors() and __mingw_dll_do_global_dtors()\nmust be separated from the compilation unit which provides __main symbol to\nprevent linker referencing the atexit symbol. For this purpose provide\nthese two new functions via mingw_dll_ctors_dtors.c compilation unit.\nAnd to prevent code duplicate at source level, define its functionality\ndirectly in the gccmain.c with the preprocessor condition.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "2612fbe42fe6f9584aa8309f18ca3219281a2acc",
      "tree": "4f142228522fafc6e486393b8f5d578b246d67c5",
      "parents": [
        "6cbed22c6774c4ec7288884b784cd8ebc94dfabe"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sat Aug 15 13:11:29 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 07 22:42:26 2026 +0800"
      },
      "message": "crt: gccmain: Add comments for __do_global_dtors/__do_global_ctors/__main functions\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "6cbed22c6774c4ec7288884b784cd8ebc94dfabe",
      "tree": "dbe9018b12650837b859ec6e0b92dc77eae9b8e5",
      "parents": [
        "e4ba72cdbc4883f03c6007fb4b1dfe0249dcd9e7"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sat Aug 15 13:05:49 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 07 22:42:25 2026 +0800"
      },
      "message": "crt: gccmain: Remove includes\n\nInclude headers are not needed. This makes the gccmain.c indepedent of the\nmingw-w64 header files, like the libgcc\u0027s __main implementation.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "e4ba72cdbc4883f03c6007fb4b1dfe0249dcd9e7",
      "tree": "3c02ea6b203e44a0288b981446a1be61c6b7405b",
      "parents": [
        "9f55f4a2d3b9783dab76d9808be3d6279b99ec2a"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali.rohar@gmail.com",
        "time": "Sat Aug 15 13:02:45 2026 +0200"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 07 22:42:25 2026 +0800"
      },
      "message": "crt: gccmain: Make __do_global_dtors/__do_global_ctors/__main compatible with libgcc\n\nlibgcc\u0027s __do_global_dtors is incrementing callback iteration pointer\nbefore invoking the callback. This is probably a guard which allows\ncallback function to call the __do_global_dtors() without invoking the\ncallback function itself second time.\n\nlibgcc\u0027s __do_global_ctors is comparing first element of __CTOR_LIST__[]\nagainst -1 with casting both of them to __SIZE_TYPE__ instead of unsigned\nlong. This has effect for 64-bit windows systems as unsigned long type on\nthem is 32-bit but __SIZE_TYPE__ is 64-bit.\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "9f55f4a2d3b9783dab76d9808be3d6279b99ec2a",
      "tree": "73e43c0d8f2f0624037b9b0f76e3fd4f21724417",
      "parents": [
        "4f820ac4c1ec18b9e5a0c69df92604679c236ef5"
      ],
      "author": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Sat Sep 05 18:29:42 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 07 22:09:30 2026 +0800"
      },
      "message": "crt: Regenerate Makefile.in\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "4f820ac4c1ec18b9e5a0c69df92604679c236ef5",
      "tree": "e742c00143900cbc0d12ce69bd86820e67345361",
      "parents": [
        "5b0ede2b68b6270538842f6c1f39dde5d3af5344"
      ],
      "author": {
        "name": "Zhongteng Gui",
        "email": "dragon-archer@outlook.com",
        "time": "Fri Sep 04 22:25:14 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Mon Sep 07 22:09:25 2026 +0800"
      },
      "message": "crt: Fix __mingw_get_crt_info and remove broken revstamp.h\n\nrevstamp.h isn\u0027t autogenrated and is broken (and likely have been broken\nsince migrating from SVN to Git), so remove it.\n\nUse __DATE__ and __TIME__ instead of __MINGW_W64_REV_STAMP in\n__mingw_get_crt_info.\n\nAccordingly changes Makefile.am.\n\nSigned-off-by: Zhongteng Gui \u003cdragon-archer@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "5b0ede2b68b6270538842f6c1f39dde5d3af5344",
      "tree": "98f22a982d8fdc7268b84293d3656d23f7578cb8",
      "parents": [
        "772388c59556d3f347714d7ff100bfa775570388"
      ],
      "author": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 04 13:11:09 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 04 13:14:22 2026 +0800"
      },
      "message": "headers,crt: Regenerate configure and Makefile.in\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "772388c59556d3f347714d7ff100bfa775570388",
      "tree": "2eadd0aaced1162de8395311a93aec749726d877",
      "parents": [
        "3c3336affd6744563a96ced3bb787324eeaf5bac"
      ],
      "author": {
        "name": "Zhongteng Gui",
        "email": "dragon-archer@outlook.com",
        "time": "Thu Sep 03 22:09:48 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 04 13:14:22 2026 +0800"
      },
      "message": "headers: crt: Merge swprintf.inl into corecrt_wstdio.h\n\nIt\u0027s not referenced elsewhere, and it doesn\u0027t contain any inline\ndefinitions now.\n\nAccoredingly updated configure.ac and Makefile.am.\n\nSigned-off-by: Zhongteng Gui \u003cdragon-archer@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "3c3336affd6744563a96ced3bb787324eeaf5bac",
      "tree": "7b47ce0ae0450a32c1a02fd0d5a1ce265eab8f9a",
      "parents": [
        "d8892ebd04e25b56425c8526a1320050931a5882"
      ],
      "author": {
        "name": "Zhongteng Gui",
        "email": "dragon-archer@outlook.com",
        "time": "Fri Sep 04 01:00:45 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 04 13:14:22 2026 +0800"
      },
      "message": "headers: stdlib.h: fix #pragma pack\n\n`#pragma pop()` restores to \"default packing\" instead of \"previous\npacking\", which can potentially cause problems and/or generate warnings.\n\nSigned-off-by: Zhongteng Gui \u003cdragon-archer@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "d8892ebd04e25b56425c8526a1320050931a5882",
      "tree": "1c21714b57cb707becf204ef2686db92b512bb0c",
      "parents": [
        "7976405e072fa4da684ed17d19e95d909b34845c"
      ],
      "author": {
        "name": "Zhongteng Gui",
        "email": "dragon-archer@outlook.com",
        "time": "Thu Sep 03 21:15:03 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Fri Sep 04 13:14:17 2026 +0800"
      },
      "message": "crt: Remove unused configure variables\n\nRemove PRIVATE_EXPORTS, __ENABLE_REGISTEREDPRINTF, and\nADD_CXX_ONLY_WARNING_FLAGS.\n\nSigned-off-by: Zhongteng Gui \u003cdragon-archer@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "7976405e072fa4da684ed17d19e95d909b34845c",
      "tree": "c3f331346053502f851490a1d1ad9e2ebe8bb87a",
      "parents": [
        "ba9130d19c67f532329ecd1148f964c67fb740ad"
      ],
      "author": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Thu Sep 03 14:05:38 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Thu Sep 03 14:05:38 2026 +0800"
      },
      "message": "crt: Regenerate Makefile.in\n\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "ba9130d19c67f532329ecd1148f964c67fb740ad",
      "tree": "80a13e1b5b86449d9c8914b3c224ce0c2d7c006a",
      "parents": [
        "11f86d56b65b49f8c47f97b0fb19ddcd7f814d59"
      ],
      "author": {
        "name": "Zhongteng Gui",
        "email": "dragon-archer@outlook.com",
        "time": "Thu Sep 03 00:47:58 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Thu Sep 03 14:04:57 2026 +0800"
      },
      "message": "crt: Remove unused file and variable\n\nlib32/test.c is never used. test.c doesn\u0027t exist (note that this isn\u0027t\nlib32/test.c), and temp is never used. Both $(TAR) and tar are not used.\n\nSigned-off-by: Zhongteng Gui \u003cdragon-archer@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "11f86d56b65b49f8c47f97b0fb19ddcd7f814d59",
      "tree": "0ebddb68476c3c73368b3b7e525c533da6f1d3be",
      "parents": [
        "45f76661721dc1f3249d1bc7510564b258f65567"
      ],
      "author": {
        "name": "Zhongteng Gui",
        "email": "dragon-archer@outlook.com",
        "time": "Thu Sep 03 00:39:13 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Thu Sep 03 14:04:57 2026 +0800"
      },
      "message": "crt: Rename dxerr.c to dxerr.def.h\n\nThis follows crt/complex. Accordingly changes dxerr{8,9}{,w}.c and\nMakefile.am.\n\nSigned-off-by: Zhongteng Gui \u003cdragon-archer@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    },
    {
      "commit": "45f76661721dc1f3249d1bc7510564b258f65567",
      "tree": "e3ef158b7a9e6e05269cbc63f6a57fcf0cc68284",
      "parents": [
        "0997d83bc715a7453d1223b9a948ab1dca3a5c1c"
      ],
      "author": {
        "name": "Zhongteng Gui",
        "email": "dragon-archer@outlook.com",
        "time": "Tue Sep 01 22:39:37 2026 +0800"
      },
      "committer": {
        "name": "LIU Hao",
        "email": "lh_mouse@126.com",
        "time": "Wed Sep 02 12:41:13 2026 +0800"
      },
      "message": "headers: crt: split out corecrt_malloc.h\n\nmemalignment is kept in stdlib.h, as this is part of ISO C23, and MSVC\ndoesn\u0027t provide it.\n\nAlso remove _CRT_ALLOCATION_DEFINED.\n\nSigned-off-by: Zhongteng Gui \u003cdragon-archer@outlook.com\u003e\nSigned-off-by: LIU Hao \u003clh_mouse@126.com\u003e\n"
    }
  ],
  "next": "0997d83bc715a7453d1223b9a948ab1dca3a5c1c"
}
