[libc-commits] [libc] 426caf1 - [libc] add locale proxy header (#130621)

via libc-commits libc-commits at lists.llvm.org
Mon Mar 10 17:46:33 PDT 2025


Author: Connector Switch
Date: 2025-03-11T08:46:29+08:00
New Revision: 426caf1182caa40a1af8eaa6cf2d88dededa671a

URL: https://github.com/llvm/llvm-project/commit/426caf1182caa40a1af8eaa6cf2d88dededa671a
DIFF: https://github.com/llvm/llvm-project/commit/426caf1182caa40a1af8eaa6cf2d88dededa671a.diff

LOG: [libc] add locale proxy header (#130621)

Address review comments in #130407.

This patch is already covered by existing locale test cases.

Added: 
    libc/hdr/locale_macros.h

Modified: 
    libc/hdr/CMakeLists.txt
    libc/test/src/locale/CMakeLists.txt
    libc/test/src/locale/locale_test.cpp
    libc/test/src/locale/localeconv_test.cpp

Removed: 
    


################################################################################
diff  --git a/libc/hdr/CMakeLists.txt b/libc/hdr/CMakeLists.txt
index 7f523c50e8694..b337a8c9fc2a6 100644
--- a/libc/hdr/CMakeLists.txt
+++ b/libc/hdr/CMakeLists.txt
@@ -183,6 +183,15 @@ add_proxy_header_library(
     libc.include.link
 )
 
+add_proxy_header_library(
+  locale_macros
+  HDRS
+    locale_macros.h
+  FULL_BUILD_DEPENDS
+    libc.include.llvm-libc-macros.locale_macros
+    libc.include.locale
+)
+
 add_proxy_header_library(
   sys_auxv_macros
   HDRS

diff  --git a/libc/hdr/locale_macros.h b/libc/hdr/locale_macros.h
new file mode 100644
index 0000000000000..7d94f6ddabe41
--- /dev/null
+++ b/libc/hdr/locale_macros.h
@@ -0,0 +1,22 @@
+//===-- Definition of macros from locale.h --------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_HDR_LOCALE_MACROS_H
+#define LLVM_LIBC_HDR_LOCALE_MACROS_H
+
+#ifdef LIBC_FULL_BUILD
+
+#include "include/llvm-libc-macros/locale-macros.h"
+
+#else // Overlay mode
+
+#error "macros not available in overlay mode"
+
+#endif // LLVM_LIBC_FULL_BUILD
+
+#endif // LLVM_LIBC_HDR_LOCALE_MACROS_H

diff  --git a/libc/test/src/locale/CMakeLists.txt b/libc/test/src/locale/CMakeLists.txt
index 3192004db26dd..5032ce9c324e2 100644
--- a/libc/test/src/locale/CMakeLists.txt
+++ b/libc/test/src/locale/CMakeLists.txt
@@ -7,7 +7,7 @@ add_libc_test(
   SRCS
     locale_test.cpp
   DEPENDS
-    libc.include.locale
+    libc.hdr.locale_macros
     libc.src.locale.newlocale
     libc.src.locale.uselocale
     libc.src.locale.freelocale
@@ -20,6 +20,6 @@ add_libc_test(
   SRCS
     localeconv_test.cpp
   DEPENDS
-    libc.include.locale
+    libc.hdr.locale_macros
     libc.src.locale.localeconv
 )

diff  --git a/libc/test/src/locale/locale_test.cpp b/libc/test/src/locale/locale_test.cpp
index bc48bb851f4e4..d800e8fa5fcf9 100644
--- a/libc/test/src/locale/locale_test.cpp
+++ b/libc/test/src/locale/locale_test.cpp
@@ -6,14 +6,12 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "hdr/locale_macros.h"
 #include "src/locale/freelocale.h"
 #include "src/locale/newlocale.h"
 #include "src/locale/uselocale.h"
-
 #include "test/UnitTest/Test.h"
 
-#include "include/llvm-libc-macros/locale-macros.h"
-
 TEST(LlvmLibcLocale, DefaultLocale) {
   locale_t new_locale = LIBC_NAMESPACE::newlocale(LC_ALL, "C", nullptr);
   EXPECT_NE(new_locale, static_cast<locale_t>(nullptr));

diff  --git a/libc/test/src/locale/localeconv_test.cpp b/libc/test/src/locale/localeconv_test.cpp
index 79264276dec35..4a7888176d539 100644
--- a/libc/test/src/locale/localeconv_test.cpp
+++ b/libc/test/src/locale/localeconv_test.cpp
@@ -6,9 +6,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "include/llvm-libc-macros/locale-macros.h"
+#include "hdr/locale_macros.h"
 #include "src/locale/localeconv.h"
-
 #include "test/UnitTest/Test.h"
 
 TEST(LlvmLibcLocale, DefaultLocale) {


        


More information about the libc-commits mailing list