aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs
diff options
context:
space:
mode:
authorthegeorg <thegeorg@yandex-team.com>2025-01-14 19:49:39 +0300
committerthegeorg <thegeorg@yandex-team.com>2025-01-14 20:22:34 +0300
commit75745a5e674587c5c9092665fd9e9654184cceaa (patch)
tree3027d4310abc743c66ebf75f66e42ed50a02e87b /contrib/libs
parentba11505688016a0e4d8b4f66d056f16ed993fffb (diff)
downloadydb-75745a5e674587c5c9092665fd9e9654184cceaa.tar.gz
Fix reimport for contrib/libs/cxxsupp/libcxxabi
Also: drop ubuntu-12 compatibility from `cxa_thread_atexit.cpp` (but retain musl-libc compatibility). This prevents `thread_local` variables from linking when compiling against `-DOS_SDK=ubuntu-12`. This should be fine though. commit_hash:13ac619c6bc58a3a520484c10b4d44b00f234460
Diffstat (limited to 'contrib/libs')
-rw-r--r--contrib/libs/cxxsupp/libcxxabi-parts/ya.make21
-rw-r--r--contrib/libs/cxxsupp/libcxxabi/.yandex_meta/__init__.py56
-rw-r--r--contrib/libs/cxxsupp/libcxxabi/ya.make16
3 files changed, 48 insertions, 45 deletions
diff --git a/contrib/libs/cxxsupp/libcxxabi-parts/ya.make b/contrib/libs/cxxsupp/libcxxabi-parts/ya.make
index ffcb60dd9b..ca2307a4a3 100644
--- a/contrib/libs/cxxsupp/libcxxabi-parts/ya.make
+++ b/contrib/libs/cxxsupp/libcxxabi-parts/ya.make
@@ -3,9 +3,7 @@ LIBRARY()
WITHOUT_LICENSE_TEXTS()
LICENSE(
- Apache-2.0
- WITH
- LLVM-exception
+ Apache-2.0 WITH LLVM-exception
)
VERSION(16.0.6)
@@ -24,11 +22,14 @@ NO_RUNTIME()
NO_UTIL()
-CFLAGS(-D_LIBCXXABI_BUILDING_LIBRARY)
+CFLAGS(
+ -D_LIBCPP_BUILDING_LIBRARY
+ -D_LIBCXXABI_BUILDING_LIBRARY
+)
IF (EXPORT_CMAKE)
# TODO(YMAKE-91) keep flags required for libc++ vendoring in a separate core.conf variable
- CXXFLAGS(GLOBAL -nostdinc++)
+ CXXFLAGS(GLOBAL -nostdinc++)
ENDIF()
SRCDIR(contrib/libs/cxxsupp/libcxxabi)
@@ -36,11 +37,13 @@ SRCDIR(contrib/libs/cxxsupp/libcxxabi)
SRCS(
src/abort_message.cpp
src/cxa_demangle.cpp
-)
-
-SRC_C_PIC(
src/cxa_thread_atexit.cpp
- -fno-lto
)
+IF (NOT MUSL)
+ CFLAGS(
+ -DHAVE___CXA_THREAD_ATEXIT_IMPL
+ )
+ENDIF()
+
END()
diff --git a/contrib/libs/cxxsupp/libcxxabi/.yandex_meta/__init__.py b/contrib/libs/cxxsupp/libcxxabi/.yandex_meta/__init__.py
index d3f63601e2..8f4b339576 100644
--- a/contrib/libs/cxxsupp/libcxxabi/.yandex_meta/__init__.py
+++ b/contrib/libs/cxxsupp/libcxxabi/.yandex_meta/__init__.py
@@ -5,9 +5,6 @@ from devtools.yamaker.project import CMakeNinjaNixProject
ATEXIT_SRC = """
-SRC_C_PIC(
- src/cxa_thread_atexit.cpp -fno-lto
-)
"""
@@ -40,37 +37,38 @@ def post_install(self):
# We link libpthread.so automatically depending on the target platform
libcxxabi.CFLAGS.remove("-D_LIBCXXABI_LINK_PTHREAD_LIB")
- # -DHAVE___CXA_THREAD_ATEXIT_IMPL MUST NOT BE SET
- # until we will start to compile against pure OS_SDK=ubuntu-14 by default
- libcxxabi.CFLAGS.remove("-DHAVE___CXA_THREAD_ATEXIT_IMPL")
-
- # Do not create loop from libcxx, libcxxrt and libcxxabi
libcxxabi.NO_UTIL = True
libcxxabi.NO_RUNTIME = True
- # disable lto to allow replacing __cxa_thread_atexit_impl in runtime
- libcxxabi.SRCS.remove("src/cxa_thread_atexit.cpp")
- libcxxabi.after("SRCS", ATEXIT_SRC)
+ # As of 1.2.3, musl libc does not provide __cxa_thread_atexit_impl.
+ libcxxabi.CFLAGS.remove("-DHAVE___CXA_THREAD_ATEXIT_IMPL")
+ libcxxabi.after(
+ "SRCS",
+ """
+ IF (NOT MUSL)
+ CFLAGS(
+ -DHAVE___CXA_THREAD_ATEXIT_IMPL
+ )
+ ENDIF()
+ """,
+ )
libcxxabi.after(
"SRCS",
- Switch(
- {
- "OS_EMSCRIPTEN AND NOT ARCH_WASM32": Linkable(
- CFLAGS=[
- "-D_LIBCPP_SAFE_STATIC=",
- "-D_LIBCXXABI_DTOR_FUNC=",
- "-D__USING_WASM_EXCEPTIONS__",
- ]
- ),
- "OS_EMSCRIPTEN AND ARCH_WASM32": Linkable(
- CFLAGS=[
- "-D_LIBCPP_SAFE_STATIC=",
- "-D_LIBCXXABI_DTOR_FUNC=",
- ]
- ),
- }
- ),
+ """
+ IF (OS_EMSCRIPTEN AND ARCH_WASM64)
+ CFLAGS(
+ -D_LIBCPP_SAFE_STATIC=
+ -D_LIBCXXABI_DTOR_FUNC=
+ -D__USING_WASM_EXCEPTIONS__
+ )
+ ELSEIF (OS_EMSCRIPTEN AND ARCH_WASM32)
+ CFLAGS(
+ -D_LIBCPP_SAFE_STATIC=
+ -D_LIBCXXABI_DTOR_FUNC=
+ )
+ ENDIF()
+ """,
)
libcxxabi.PEERDIR.add("library/cpp/sanitizer/include")
@@ -79,6 +77,7 @@ def post_install(self):
llvm_libcxxabi = CMakeNinjaNixProject(
owners=["g:cpp-committee", "g:cpp-contrib"],
arcdir="contrib/libs/cxxsupp/libcxxabi",
+ nixattr="llvmPackages_16.libcxxabi",
copy_sources=[
"include/__cxxabi_config.h",
"include/cxxabi.h",
@@ -86,6 +85,5 @@ llvm_libcxxabi = CMakeNinjaNixProject(
disable_includes=[
"aix_state_tab_eh.inc",
],
- nixattr=platform_macros.make_llvm_nixattr("libcxxabi"),
post_install=post_install,
)
diff --git a/contrib/libs/cxxsupp/libcxxabi/ya.make b/contrib/libs/cxxsupp/libcxxabi/ya.make
index c886b0d76d..38ce59fa41 100644
--- a/contrib/libs/cxxsupp/libcxxabi/ya.make
+++ b/contrib/libs/cxxsupp/libcxxabi/ya.make
@@ -47,6 +47,7 @@ SRCS(
src/cxa_guard.cpp
src/cxa_handlers.cpp
src/cxa_personality.cpp
+ src/cxa_thread_atexit.cpp
src/cxa_vector.cpp
src/cxa_virtual.cpp
src/fallback_malloc.cpp
@@ -57,21 +58,22 @@ SRCS(
src/stdlib_typeinfo.cpp
)
-SRC_C_PIC(
- src/cxa_thread_atexit.cpp
- -fno-lto
-)
+IF (NOT MUSL)
+ CFLAGS(
+ -DHAVE___CXA_THREAD_ATEXIT_IMPL
+ )
+ENDIF()
-IF (OS_EMSCRIPTEN AND ARCH_WASM32)
+IF (OS_EMSCRIPTEN AND ARCH_WASM64)
CFLAGS(
-D_LIBCPP_SAFE_STATIC=
-D_LIBCXXABI_DTOR_FUNC=
+ -D__USING_WASM_EXCEPTIONS__
)
-ELSEIF (OS_EMSCRIPTEN AND NOT ARCH_WASM32)
+ELSEIF (OS_EMSCRIPTEN AND ARCH_WASM32)
CFLAGS(
-D_LIBCPP_SAFE_STATIC=
-D_LIBCXXABI_DTOR_FUNC=
- -D__USING_WASM_EXCEPTIONS__
)
ENDIF()