diff options
author | thegeorg <thegeorg@yandex-team.com> | 2025-01-14 19:49:39 +0300 |
---|---|---|
committer | thegeorg <thegeorg@yandex-team.com> | 2025-01-14 20:22:34 +0300 |
commit | 75745a5e674587c5c9092665fd9e9654184cceaa (patch) | |
tree | 3027d4310abc743c66ebf75f66e42ed50a02e87b /contrib | |
parent | ba11505688016a0e4d8b4f66d056f16ed993fffb (diff) | |
download | ydb-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')
-rw-r--r-- | contrib/libs/cxxsupp/libcxxabi-parts/ya.make | 21 | ||||
-rw-r--r-- | contrib/libs/cxxsupp/libcxxabi/.yandex_meta/__init__.py | 56 | ||||
-rw-r--r-- | contrib/libs/cxxsupp/libcxxabi/ya.make | 16 |
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() |