)]}'
{
  "commit": "c98e4bbc277291e23f24e84a530d227cc5ca2f1e",
  "tree": "2c315c7b82d07b373c704bf6c7d8e20bec191775",
  "parents": [
    "b06fd9d7b8d2789fccabfcbf3f5125d828543a6f"
  ],
  "author": {
    "name": "Pali Rohár",
    "email": "pali.rohar@gmail.com",
    "time": "Sun Apr 13 18:34:33 2025 +0200"
  },
  "committer": {
    "name": "Martin Storsjö",
    "email": "martin@martin.st",
    "time": "Mon May 05 23:43:59 2025 +0300"
  },
  "message": "crt: Fix mingw-w64 emulation of _fstat64i32, _stat64i32 and _wstat64i32 functions\n\nAll 64-bit CRT import libraries already provides _fstat64i32, _stat64i32\nand _wstat64i32 function symbols. These symbols are either directly\nexported from 64-bit CRT DLL library or def file contains alias to other\nABI compatible symbols (_fstat, _stat and _wstat).\n\nAlso all these functions _fstat64i32, _stat64i32 and _wstat64i32 are\nprovided by msvcr80+ and UCRT, so ensure that mingw-w64 does not provide\nany replacement for msvcr80+ import libraries. And ensure that libmingwex.a\nlibrary does not provide duplication of these symbols.\n\nFor 32-bit pre-msvcr80 CRT import libraries provides mingw-w64 emulation\nvia _fstat64, _stat64 and _wstat64, which just truncates 64-bit st_size\n(returned by _*stat64 function) to 32-bit st_size (which is ABI of\n_*stat64i32). Do not use any _mingw_no_trailing_slash workaround as for all\nthese functions with underscore prefix, it is expected that behavior is\nsame as for other stat functions with underscore prefix.\n\nThese _fstat64i32, _stat64i32 and _wstat64i32 functions in msvcr80+ and\nUCRT DLL libraries do not touch output struct stat buffer on error. So do\nsame thing in mingw-w64 emulation and remove memset(stat, 0, sizeof(stat))\ncall in failure path.\n\nAnd add missing __MINGW_IMP_SYMBOL import symbols into mingw-w64 emulation\ncode for these functions as msvcr80+ import libraries already have them.\n\nSigned-off-by: Martin Storsjö \u003cmartin@martin.st\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "32187b8391f2210ac166c433857c9b13f7aa9d4e",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/Makefile.am",
      "new_id": "02a857de63d0f3fa0e3f78d3124a6ef470dec1ee",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/Makefile.am"
    },
    {
      "type": "modify",
      "old_id": "7e71f2e800054c42e3753ec67b1efc2a8110972e",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/stdio/_fstat64i32.c",
      "new_id": "cc72b3814ba9e07db87cd8c7c059ad95f8c652d7",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/stdio/_fstat64i32.c"
    },
    {
      "type": "modify",
      "old_id": "e288470ea0527a709d9cf4e3a54bb693e6e1c09d",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/stdio/_stat64i32.c",
      "new_id": "47aa080800e334ee4b23d1f322830d5fb786095b",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/stdio/_stat64i32.c"
    },
    {
      "type": "modify",
      "old_id": "b17c50574f78337b13bc6f2844406d6ea917aecf",
      "old_mode": 33188,
      "old_path": "mingw-w64-crt/stdio/_wstat64i32.c",
      "new_id": "a48a5101359f284022364226b31304d9a8611447",
      "new_mode": 33188,
      "new_path": "mingw-w64-crt/stdio/_wstat64i32.c"
    }
  ]
}
