]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Fix Darwin bootstrap error in src/c++20/tzdb.cc
authorJonathan Wakely <jwakely@redhat.com>
Fri, 23 Dec 2022 13:43:52 +0000 (13:43 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Fri, 23 Dec 2022 13:45:30 +0000 (13:45 +0000)
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

index a02bcd4aec726d818dddae99b289b43fefdcc46b..5f5c4199f65e1971e75b328e0faded1fd18f2727 100644 (file)
 # 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