From b358521b608f36409281a51263ace3155d28f54d Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 23 Dec 2022 13:43:52 +0000 Subject: [PATCH] libstdc++: Fix Darwin bootstrap error in src/c++20/tzdb.cc Mach-O requires weak symbols to have a definition, so add a default implementation of __gnu_cxx::zoneinfo_dir_override. libstdc++-v3/ChangeLog: * src/c++20/tzdb.cc [__APPLE__] (zoneinfo_dir_override): Add definition. --- libstdc++-v3/src/c++20/tzdb.cc | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/src/c++20/tzdb.cc b/libstdc++-v3/src/c++20/tzdb.cc index a02bcd4..5f5c419 100644 --- a/libstdc++-v3/src/c++20/tzdb.cc +++ b/libstdc++-v3/src/c++20/tzdb.cc @@ -52,6 +52,10 @@ # endif #endif +#ifndef _GLIBCXX_ZONEINFO_DIR +# define _GLIBCXX_ZONEINFO_DIR "/usr/share/zoneinfo" +#endif + namespace __gnu_cxx { #ifdef _AIX @@ -59,6 +63,12 @@ namespace __gnu_cxx const char* (*zoneinfo_dir_override)() = nullptr; #else [[gnu::weak]] const char* zoneinfo_dir_override(); + +#ifdef __APPLE__ + // Need a weak definition for Mach-O. + [[gnu::weak]] const char* zoneinfo_dir_override() + { return _GLIBCXX_ZONEINFO_DIR; } +#endif #endif } @@ -934,9 +944,6 @@ namespace std::chrono return info; } -#ifndef _GLIBCXX_ZONEINFO_DIR -# define _GLIBCXX_ZONEINFO_DIR "/usr/share/zoneinfo" -#endif namespace { string -- 2.7.4