diff options
author | robot-piglet <robot-piglet@yandex-team.com> | 2025-01-30 14:03:22 +0300 |
---|---|---|
committer | robot-piglet <robot-piglet@yandex-team.com> | 2025-01-30 14:47:17 +0300 |
commit | 8a69ffb9c2b26b2b29217ad7a0ff3adfd47a4ad5 (patch) | |
tree | 2b73c4ea4a73ff91b9550543a1927e63371c2635 | |
parent | 560f7b89f62d68ee0f5c2410a1e5690cd64d5a3f (diff) | |
download | ydb-8a69ffb9c2b26b2b29217ad7a0ff3adfd47a4ad5.tar.gz |
Intermediate changes
commit_hash:73cd3dcd29b75a576bd0654cdb9ae38f8cc33718
-rw-r--r-- | contrib/libs/cxxsupp/libcxx/.yandex_meta/build.ym | 56 | ||||
-rw-r--r-- | contrib/libs/cxxsupp/libcxx/ya.make | 52 |
2 files changed, 38 insertions, 70 deletions
diff --git a/contrib/libs/cxxsupp/libcxx/.yandex_meta/build.ym b/contrib/libs/cxxsupp/libcxx/.yandex_meta/build.ym index 1ee5328ff5..8a8868b875 100644 --- a/contrib/libs/cxxsupp/libcxx/.yandex_meta/build.ym +++ b/contrib/libs/cxxsupp/libcxx/.yandex_meta/build.ym @@ -103,17 +103,9 @@ ADDINCL( CXXFLAGS(-D_LIBCPP_BUILDING_LIBRARY) IF (OS_ANDROID) - DEFAULT(CXX_RT "default") - LDFLAGS(-lc++abi) - CFLAGS( - -DLIBCXX_BUILDING_LIBCXXABI - ) + SET(CXX_RT "libcxxabi_dynamic") ELSEIF (OS_IOS) - # Take cxxabi implementation from system. - LDFLAGS(-lc++abi) - CFLAGS( - -DLIBCXX_BUILDING_LIBCXXABI - ) + SET(CXX_RT "libcxxabi_dynamic") # Yet take builtins library from Arcadia PEERDIR( contrib/libs/cxxsupp/builtins @@ -121,15 +113,16 @@ ELSEIF (OS_IOS) ELSEIF (OS_LINUX OR OS_DARWIN) IF (ARCH_ARM7) # XXX: libcxxrt support for ARM is currently broken - DEFAULT(CXX_RT "glibcxx_static") + SET(CXX_RT "glibcxx_static") # ARM7 OS_SDK has old libstdc++ without aligned allocation support CFLAGS( GLOBAL -fno-aligned-new ) ELSE() - DEFAULT(CXX_RT "libcxxrt") + SET(CXX_RT "libcxxrt") ENDIF() ELSEIF (OS_WINDOWS) + SET(CXX_RT "msvcrt") SRCS( src/support/win32/locale_win32.cpp src/support/win32/support.cpp @@ -143,18 +136,13 @@ ELSEIF (OS_WINDOWS) ) ENDIF() ELSEIF (OS_EMSCRIPTEN) - DEFAULT(CXX_RT "libcxxabi") + SET(CXX_RT "libcxxabi") LDFLAGS( -Wl,-Bdynamic ) CXXFLAGS( -nostdinc++ ) -ELSE() - DEFAULT(CXX_RT "glibcxx_static") - CXXFLAGS( - -nostdinc++ - ) ENDIF() IF (CLANG) @@ -162,14 +150,11 @@ IF (CLANG) ENDIF() # The CXX_RT variable controls which C++ runtime is used. -# * libcxxrt - https://github.com/libcxxrt/libcxxrt library stored in Arcadia -# * glibcxx_static - GNU C++ Library runtime with static linkage -# * glibcxx_dynamic - GNU C++ Library runtime with dynamic linkage -# * default - default C++ runtime provided by the compiler driver -# -# All glibcxx* runtimes are taken from system/compiler SDK - -DEFAULT(CXX_RT "default") +# * libcxxabi - https://github.com/llvm/llvm-project/tree/main/libcxxabi from Arcadia +# * libcxxabi_dynamic - https://github.com/llvm/llvm-project/tree/main/libcxxabi from SDK, dynamically linked +# * libcxxrt - https://github.com/libcxxrt/libcxxrt from Arcadia (with some parts hijacked from libcxxabi) +# * glibcxx_static - https://github.com/gcc-mirror/gcc/tree/master/libstdc++-v3/libsupc++ from SDK, statically linked +# * msvcrt - Visual C++ runtime library from SDK, dynamically linked DISABLE(NEED_GLIBCXX_CXX17_SHIMS) @@ -201,14 +186,6 @@ ELSEIF (CXX_RT == "glibcxx_static") CXXFLAGS(-D__GLIBCXX__=1) ENABLE(NEED_GLIBCXX_CXX17_SHIMS) ENABLE(NEED_CXX_RT_ADDINCL) -ELSEIF (CXX_RT == "glibcxx_dynamic") - LDFLAGS( - -lgcc_s - -lstdc++ - ) - CXXFLAGS(-D__GLIBCXX__=1) - ENABLE(NEED_GLIBCXX_CXX17_SHIMS) - ENABLE(NEED_CXX_RT_ADDINCL) ELSEIF (CXX_RT == "libcxxabi") PEERDIR( contrib/libs/cxxsupp/builtins @@ -220,8 +197,15 @@ ELSEIF (CXX_RT == "libcxxabi") CFLAGS( -DLIBCXX_BUILDING_LIBCXXABI ) -ELSEIF (CXX_RT == "default") -# Do nothing +ELSEIF (CXX_RT == "libcxxabi_dynamic") + LDFLAGS( + -lc++abi + ) + CFLAGS( + -DLIBCXX_BUILDING_LIBCXXABI + ) +ELSEIF (CXX_RT == "msvcrt") + # Do nothing, proper runtime will be linked by the means /MT* flags in build/ymake.core.conf ELSE() MESSAGE(FATAL_ERROR "Unexpected CXX_RT value: \${CXX_RT}") ENDIF() diff --git a/contrib/libs/cxxsupp/libcxx/ya.make b/contrib/libs/cxxsupp/libcxx/ya.make index 785b2cf07f..4975b1573f 100644 --- a/contrib/libs/cxxsupp/libcxx/ya.make +++ b/contrib/libs/cxxsupp/libcxx/ya.make @@ -26,17 +26,9 @@ ADDINCL( CXXFLAGS(-D_LIBCPP_BUILDING_LIBRARY) IF (OS_ANDROID) - DEFAULT(CXX_RT "default") - LDFLAGS(-lc++abi) - CFLAGS( - -DLIBCXX_BUILDING_LIBCXXABI - ) + SET(CXX_RT "libcxxabi_dynamic") ELSEIF (OS_IOS) - # Take cxxabi implementation from system. - LDFLAGS(-lc++abi) - CFLAGS( - -DLIBCXX_BUILDING_LIBCXXABI - ) + SET(CXX_RT "libcxxabi_dynamic") # Yet take builtins library from Arcadia PEERDIR( contrib/libs/cxxsupp/builtins @@ -44,15 +36,16 @@ ELSEIF (OS_IOS) ELSEIF (OS_LINUX OR OS_DARWIN) IF (ARCH_ARM7) # XXX: libcxxrt support for ARM is currently broken - DEFAULT(CXX_RT "glibcxx_static") + SET(CXX_RT "glibcxx_static") # ARM7 OS_SDK has old libstdc++ without aligned allocation support CFLAGS( GLOBAL -fno-aligned-new ) ELSE() - DEFAULT(CXX_RT "libcxxrt") + SET(CXX_RT "libcxxrt") ENDIF() ELSEIF (OS_WINDOWS) + SET(CXX_RT "msvcrt") SRCS( src/support/win32/locale_win32.cpp src/support/win32/support.cpp @@ -66,12 +59,9 @@ ELSEIF (OS_WINDOWS) ) ENDIF() ELSEIF (OS_EMSCRIPTEN) - DEFAULT(CXX_RT "libcxxabi") + SET(CXX_RT "libcxxabi") LDFLAGS(-Wl,-Bdynamic) CXXFLAGS(-nostdinc++) -ELSE() - DEFAULT(CXX_RT "glibcxx_static") - CXXFLAGS(-nostdinc++) ENDIF() IF (CLANG) @@ -79,14 +69,11 @@ IF (CLANG) ENDIF() # The CXX_RT variable controls which C++ runtime is used. -# * libcxxrt - https://github.com/libcxxrt/libcxxrt library stored in Arcadia -# * glibcxx_static - GNU C++ Library runtime with static linkage -# * glibcxx_dynamic - GNU C++ Library runtime with dynamic linkage -# * default - default C++ runtime provided by the compiler driver -# -# All glibcxx* runtimes are taken from system/compiler SDK - -DEFAULT(CXX_RT "default") +# * libcxxabi - https://github.com/llvm/llvm-project/tree/main/libcxxabi from Arcadia +# * libcxxabi_dynamic - https://github.com/llvm/llvm-project/tree/main/libcxxabi from SDK, dynamically linked +# * libcxxrt - https://github.com/libcxxrt/libcxxrt from Arcadia (with some parts hijacked from libcxxabi) +# * glibcxx_static - https://github.com/gcc-mirror/gcc/tree/master/libstdc++-v3/libsupc++ from SDK, statically linked +# * msvcrt - Visual C++ runtime library from SDK, dynamically linked DISABLE(NEED_GLIBCXX_CXX17_SHIMS) @@ -118,14 +105,6 @@ ELSEIF (CXX_RT == "glibcxx_static") CXXFLAGS(-D__GLIBCXX__=1) ENABLE(NEED_GLIBCXX_CXX17_SHIMS) ENABLE(NEED_CXX_RT_ADDINCL) -ELSEIF (CXX_RT == "glibcxx_dynamic") - LDFLAGS( - -lgcc_s - -lstdc++ - ) - CXXFLAGS(-D__GLIBCXX__=1) - ENABLE(NEED_GLIBCXX_CXX17_SHIMS) - ENABLE(NEED_CXX_RT_ADDINCL) ELSEIF (CXX_RT == "libcxxabi") PEERDIR( contrib/libs/cxxsupp/builtins @@ -137,8 +116,13 @@ ELSEIF (CXX_RT == "libcxxabi") CFLAGS( -DLIBCXX_BUILDING_LIBCXXABI ) -ELSEIF (CXX_RT == "default") - # Do nothing +ELSEIF (CXX_RT == "libcxxabi_dynamic") + LDFLAGS(-lc++abi) + CFLAGS( + -DLIBCXX_BUILDING_LIBCXXABI + ) +ELSEIF (CXX_RT == "msvcrt") + # Do nothing, proper runtime will be linked by the means /MT* flags in build/ymake.core.conf ELSE() MESSAGE(FATAL_ERROR "Unexpected CXX_RT value: ${CXX_RT}") ENDIF() |