diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt index cb708baacd91d..843ccbd0ed92e 100644 --- a/libcxx/CMakeLists.txt +++ b/libcxx/CMakeLists.txt @@ -251,17 +251,18 @@ option(LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY # Generate and install a linker script inplace of libc++.so. The linker script # will link libc++ to the correct ABI library. This option is on by default -# on UNIX platforms other than Apple unless -# 'LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY' is on. This option is also -# disabled when the ABI library is not specified or is specified to be "none". -set(ENABLE_LINKER_SCRIPT_DEFAULT_VALUE OFF) -if (LLVM_HAVE_LINK_VERSION_SCRIPT AND NOT LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY - AND NOT LIBCXX_CXX_ABI STREQUAL "none" - AND Python3_EXECUTABLE - AND LIBCXX_ENABLE_SHARED) - set(ENABLE_LINKER_SCRIPT_DEFAULT_VALUE ON) +# on UNIX platforms other than Apple unless we statically link libc++abi +# inside libc++.so, we don't build libc++.so at all or we don't have any +# ABI library. +if (LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY + OR NOT LIBCXX_ENABLE_SHARED + OR LIBCXX_CXX_ABI STREQUAL "none") + set(ENABLE_LINKER_SCRIPT_DEFAULT_VALUE OFF) +elseif(UNIX AND NOT APPLE) + set(ENABLE_LINKER_SCRIPT_DEFAULT_VALUE ON) +else() + set(ENABLE_LINKER_SCRIPT_DEFAULT_VALUE OFF) endif() - option(LIBCXX_ENABLE_ABI_LINKER_SCRIPT "Use and install a linker script for the given ABI library" ${ENABLE_LINKER_SCRIPT_DEFAULT_VALUE})