)]}'
{
  "commit": "385774a432d1685af65a99432826065539a1b561",
  "tree": "420b6ae6c46eff08a1cc25d67e4a8835d18fe0a1",
  "parents": [
    "8e9069fd39f4fc28df94dd9b6fee1b7d254d5c79"
  ],
  "author": {
    "name": "Matt Van Horn",
    "email": "mvanhorn@users.noreply.github.com",
    "time": "Fri Jul 10 21:54:45 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Fri Jul 10 21:55:16 2026 -0700"
  },
  "message": "PR #2104: fix: export absl::time_zone name on MinGW DLL builds\n\nImported from GitHub PR https://github.com/abseil/abseil-cpp/pull/2104\n\n## Summary\n\nBuilding the monolithic shared library (`-DABSL_BUILD_MONOLITHIC_SHARED_LIBS\u003dON -DBUILD_SHARED_LIBS\u003dON`) with MinGW on Windows fails at link time with an undefined reference to `absl::time_internal::cctz::GetWindowsLocalTimeZone()`. That symbol lives in `time/internal/cctz/src/time_zone_name_win.cc`, which `CMake/AbseilDll.cmake` only appends to `ABSL_INTERNAL_DLL_FILES` under `if(MSVC)` - so MinGW DLL builds never compile it, even though `time_zone_lookup.cc` calls it on all Windows toolchains.\n\nThis splits the single `if(MSVC) ... else() ... endif()` block into two independent conditions: the `time_zone_name_win.cc`/`.h` sources are appended under `if(WIN32)` (covering MSVC, clang-cl, and MinGW), and the `flags/*` source group stays under `if(NOT MSVC)` so MinGW keeps receiving exactly the flags sources it gets today.\n\n## Why this matters\n\nThe per-target (non-DLL) build in `absl/time/CMakeLists.txt` already gates this file on `$\u003c$\u003cPLATFORM_ID:Windows\u003e:...\u003e` - i.e. any Windows platform - so the DLL list\u0027s `MSVC`-only gate is the inconsistency. `WIN32` is the correct CMake variable here; the patch sketched in the issue comments used `if(Windows)`, which is not a variable CMake defines, so this supersedes it. A carry-along fix was merged downstream into microsoft/vcpkg (#50887), but upstream remains broken.\n\n## Testing\n\nNo C++ sources change and there is no test file for the DLL file list, so verification is a CMake configure/build matrix: the monolithic shared-library build now links under MinGW (the previously-undefined `GetWindowsLocalTimeZone()` is compiled into the DLL), and the MSVC and non-MSVC builds are unchanged (MSVC still gets the Windows time-zone source via `WIN32`; MinGW still gets the `flags/*` sources via `NOT MSVC`).\n\nFixes #2025\n\nMerge 2efcf3defe31ca54b74544aca4a1c2a61fa2f3d5 into 0784689a65b4ea1329fbc5174b8a57c88ec796a9\n\nMerging this change closes #2104\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/abseil/abseil-cpp/pull/2104 from mvanhorn:fix/2025-mingw-dll-time-zone-name-win 2efcf3defe31ca54b74544aca4a1c2a61fa2f3d5\nPiperOrigin-RevId: 946043634\nChange-Id: I02ca46f3d8b928ebe62d546799b0b960a1639c6c\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a3ed65b5a23b6e699dee30285d22ae3652412ab6",
      "old_mode": 33188,
      "old_path": "CMake/AbseilDll.cmake",
      "new_id": "18f4f33da707ffc7b687e93b34102a71c8b3510d",
      "new_mode": 33188,
      "new_path": "CMake/AbseilDll.cmake"
    }
  ]
}
