Revert "[runtimes] Probe for -nostdlib++ and -nostdinc++ with the C compiler" (#113653)
Reverts llvm/llvm-project#108357 Breaks https://lab.llvm.org/buildbot/#/builders/164/builds/3908 and similar bots
This commit is contained in:
parent
d0c81509ff
commit
240e478068
@ -38,13 +38,9 @@ check_cxx_compiler_flag(-nolibc CXX_SUPPORTS_NOLIBC_FLAG)
|
|||||||
# required during compilation (which has the -nostdlib++ or -nodefaultlibs). libc is
|
# required during compilation (which has the -nostdlib++ or -nodefaultlibs). libc is
|
||||||
# required for the link to go through. We remove sanitizers from the
|
# required for the link to go through. We remove sanitizers from the
|
||||||
# configuration checks to avoid spurious link errors.
|
# configuration checks to avoid spurious link errors.
|
||||||
#
|
|
||||||
# Adding flags to CMAKE_REQUIRED_FLAGS will include the flags both when testing
|
|
||||||
# compilation of C and C++. Therefore test to make sure that the flags are
|
|
||||||
# supported by the C compiler driver, before deciding to include them.
|
|
||||||
|
|
||||||
check_c_compiler_flag(-nostdlib++ C_SUPPORTS_NOSTDLIBXX_FLAG)
|
check_cxx_compiler_flag(-nostdlib++ CXX_SUPPORTS_NOSTDLIBXX_FLAG)
|
||||||
if (C_SUPPORTS_NOSTDLIBXX_FLAG)
|
if (CXX_SUPPORTS_NOSTDLIBXX_FLAG)
|
||||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nostdlib++")
|
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nostdlib++")
|
||||||
else()
|
else()
|
||||||
check_c_compiler_flag(-nodefaultlibs C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
check_c_compiler_flag(-nodefaultlibs C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
||||||
@ -55,7 +51,7 @@ endif()
|
|||||||
|
|
||||||
# Only link against compiler-rt manually if we use -nodefaultlibs, since
|
# Only link against compiler-rt manually if we use -nodefaultlibs, since
|
||||||
# otherwise the compiler will do the right thing on its own.
|
# otherwise the compiler will do the right thing on its own.
|
||||||
if (NOT C_SUPPORTS_NOSTDLIBXX_FLAG AND C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
if (NOT CXX_SUPPORTS_NOSTDLIBXX_FLAG AND C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
||||||
if (LIBCXX_USE_COMPILER_RT)
|
if (LIBCXX_USE_COMPILER_RT)
|
||||||
include(HandleCompilerRT)
|
include(HandleCompilerRT)
|
||||||
find_compiler_rt_library(builtins LIBCXX_BUILTINS_LIBRARY
|
find_compiler_rt_library(builtins LIBCXX_BUILTINS_LIBRARY
|
||||||
@ -85,7 +81,7 @@ if (NOT C_SUPPORTS_NOSTDLIBXX_FLAG AND C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (C_SUPPORTS_NOSTDLIBXX_FLAG OR C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
if (CXX_SUPPORTS_NOSTDLIBXX_FLAG OR C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
||||||
if (CMAKE_C_FLAGS MATCHES -fsanitize OR CMAKE_CXX_FLAGS MATCHES -fsanitize)
|
if (CMAKE_C_FLAGS MATCHES -fsanitize OR CMAKE_CXX_FLAGS MATCHES -fsanitize)
|
||||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -fno-sanitize=all")
|
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -fno-sanitize=all")
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -22,13 +22,9 @@ endif ()
|
|||||||
# required during compilation (which has the -nodefaultlibs). libc is
|
# required during compilation (which has the -nodefaultlibs). libc is
|
||||||
# required for the link to go through. We remove sanitizers from the
|
# required for the link to go through. We remove sanitizers from the
|
||||||
# configuration checks to avoid spurious link errors.
|
# configuration checks to avoid spurious link errors.
|
||||||
#
|
|
||||||
# Adding flags to CMAKE_REQUIRED_FLAGS will include the flags both when testing
|
|
||||||
# compilation of C and C++. Therefore test to make sure that the flags are
|
|
||||||
# supported by the C compiler driver, before deciding to include them.
|
|
||||||
|
|
||||||
check_c_compiler_flag(-nostdlib++ C_SUPPORTS_NOSTDLIBXX_FLAG)
|
check_cxx_compiler_flag(-nostdlib++ CXX_SUPPORTS_NOSTDLIBXX_FLAG)
|
||||||
if (C_SUPPORTS_NOSTDLIBXX_FLAG)
|
if (CXX_SUPPORTS_NOSTDLIBXX_FLAG)
|
||||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nostdlib++")
|
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nostdlib++")
|
||||||
else()
|
else()
|
||||||
check_c_compiler_flag(-nodefaultlibs C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
check_c_compiler_flag(-nodefaultlibs C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
||||||
@ -39,7 +35,7 @@ endif()
|
|||||||
|
|
||||||
# Only link against compiler-rt manually if we use -nodefaultlibs, since
|
# Only link against compiler-rt manually if we use -nodefaultlibs, since
|
||||||
# otherwise the compiler will do the right thing on its own.
|
# otherwise the compiler will do the right thing on its own.
|
||||||
if (NOT C_SUPPORTS_NOSTDLIBXX_FLAG AND C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
if (NOT CXX_SUPPORTS_NOSTDLIBXX_FLAG AND C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
||||||
if (LIBCXXABI_HAS_C_LIB)
|
if (LIBCXXABI_HAS_C_LIB)
|
||||||
list(APPEND CMAKE_REQUIRED_LIBRARIES c)
|
list(APPEND CMAKE_REQUIRED_LIBRARIES c)
|
||||||
endif ()
|
endif ()
|
||||||
@ -75,7 +71,7 @@ if (NOT C_SUPPORTS_NOSTDLIBXX_FLAG AND C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (C_SUPPORTS_NOSTDLIBXX_FLAG OR C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
if (CXX_SUPPORTS_NOSTDLIBXX_FLAG OR C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
||||||
if (CMAKE_C_FLAGS MATCHES -fsanitize OR CMAKE_CXX_FLAGS MATCHES -fsanitize)
|
if (CMAKE_C_FLAGS MATCHES -fsanitize OR CMAKE_CXX_FLAGS MATCHES -fsanitize)
|
||||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -fno-sanitize=all")
|
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -fno-sanitize=all")
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -91,7 +91,7 @@ if (ANDROID AND ANDROID_PLATFORM_LEVEL LESS 21)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Setup flags.
|
# Setup flags.
|
||||||
if (C_SUPPORTS_NOSTDLIBXX_FLAG)
|
if (CXX_SUPPORTS_NOSTDLIBXX_FLAG)
|
||||||
add_link_flags_if_supported(-nostdlib++)
|
add_link_flags_if_supported(-nostdlib++)
|
||||||
else()
|
else()
|
||||||
add_link_flags_if_supported(-nodefaultlibs)
|
add_link_flags_if_supported(-nodefaultlibs)
|
||||||
@ -167,7 +167,7 @@ if (LIBCXXABI_USE_LLVM_UNWINDER)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
target_link_libraries(cxxabi_shared_objects PRIVATE cxx-headers ${LIBCXXABI_LIBRARIES})
|
target_link_libraries(cxxabi_shared_objects PRIVATE cxx-headers ${LIBCXXABI_LIBRARIES})
|
||||||
if (NOT C_SUPPORTS_NOSTDLIBXX_FLAG)
|
if (NOT CXX_SUPPORTS_NOSTDLIBXX_FLAG)
|
||||||
target_link_libraries(cxxabi_shared_objects PRIVATE ${LIBCXXABI_BUILTINS_LIBRARY})
|
target_link_libraries(cxxabi_shared_objects PRIVATE ${LIBCXXABI_BUILTINS_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
target_link_libraries(cxxabi_shared_objects PUBLIC cxxabi-headers)
|
target_link_libraries(cxxabi_shared_objects PUBLIC cxxabi-headers)
|
||||||
|
@ -34,13 +34,9 @@ endif()
|
|||||||
# required during compilation (which has the -nostdlib++ or -nodefaultlibs). libc is
|
# required during compilation (which has the -nostdlib++ or -nodefaultlibs). libc is
|
||||||
# required for the link to go through. We remove sanitizers from the
|
# required for the link to go through. We remove sanitizers from the
|
||||||
# configuration checks to avoid spurious link errors.
|
# configuration checks to avoid spurious link errors.
|
||||||
#
|
|
||||||
# Adding flags to CMAKE_REQUIRED_FLAGS will include the flags both when testing
|
|
||||||
# compilation of C and C++. Therefore test to make sure that the flags are
|
|
||||||
# supported by the C compiler driver, before deciding to include them.
|
|
||||||
|
|
||||||
llvm_check_compiler_linker_flag(C "-nostdlib++" C_SUPPORTS_NOSTDLIBXX_FLAG)
|
llvm_check_compiler_linker_flag(CXX "-nostdlib++" CXX_SUPPORTS_NOSTDLIBXX_FLAG)
|
||||||
if (C_SUPPORTS_NOSTDLIBXX_FLAG)
|
if (CXX_SUPPORTS_NOSTDLIBXX_FLAG)
|
||||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nostdlib++")
|
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nostdlib++")
|
||||||
else()
|
else()
|
||||||
llvm_check_compiler_linker_flag(C "-nodefaultlibs" C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
llvm_check_compiler_linker_flag(C "-nodefaultlibs" C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
||||||
@ -51,7 +47,7 @@ endif()
|
|||||||
|
|
||||||
# Only link against compiler-rt manually if we use -nodefaultlibs, since
|
# Only link against compiler-rt manually if we use -nodefaultlibs, since
|
||||||
# otherwise the compiler will do the right thing on its own.
|
# otherwise the compiler will do the right thing on its own.
|
||||||
if (NOT C_SUPPORTS_NOSTDLIBXX_FLAG AND C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
if (NOT CXX_SUPPORTS_NOSTDLIBXX_FLAG AND C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
||||||
if (LIBUNWIND_HAS_C_LIB)
|
if (LIBUNWIND_HAS_C_LIB)
|
||||||
list(APPEND CMAKE_REQUIRED_LIBRARIES c)
|
list(APPEND CMAKE_REQUIRED_LIBRARIES c)
|
||||||
endif ()
|
endif ()
|
||||||
@ -86,7 +82,7 @@ if (NOT C_SUPPORTS_NOSTDLIBXX_FLAG AND C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (C_SUPPORTS_NOSTDLIBXX_FLAG OR C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
if (CXX_SUPPORTS_NOSTDLIBXX_FLAG OR C_SUPPORTS_NODEFAULTLIBS_FLAG)
|
||||||
if (CMAKE_C_FLAGS MATCHES -fsanitize OR CMAKE_CXX_FLAGS MATCHES -fsanitize)
|
if (CMAKE_C_FLAGS MATCHES -fsanitize OR CMAKE_CXX_FLAGS MATCHES -fsanitize)
|
||||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -fno-sanitize=all")
|
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -fno-sanitize=all")
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -66,7 +66,7 @@ set(LIBUNWIND_SOURCES
|
|||||||
${LIBUNWIND_ASM_SOURCES})
|
${LIBUNWIND_ASM_SOURCES})
|
||||||
|
|
||||||
# Generate library list.
|
# Generate library list.
|
||||||
if (C_SUPPORTS_NOSTDLIBXX_FLAG)
|
if (CXX_SUPPORTS_NOSTDLIBXX_FLAG)
|
||||||
add_link_flags_if_supported(-nostdlib++)
|
add_link_flags_if_supported(-nostdlib++)
|
||||||
else()
|
else()
|
||||||
if (LIBUNWIND_USE_COMPILER_RT)
|
if (LIBUNWIND_USE_COMPILER_RT)
|
||||||
|
@ -143,16 +143,12 @@ endif()
|
|||||||
# Check for -nostdlib++ first; if there's no C++ standard library yet,
|
# Check for -nostdlib++ first; if there's no C++ standard library yet,
|
||||||
# all check_cxx_compiler_flag commands will fail until we add -nostdlib++
|
# all check_cxx_compiler_flag commands will fail until we add -nostdlib++
|
||||||
# (or -nodefaultlibs).
|
# (or -nodefaultlibs).
|
||||||
#
|
llvm_check_compiler_linker_flag(CXX "-nostdlib++" CXX_SUPPORTS_NOSTDLIBXX_FLAG)
|
||||||
# Adding flags to CMAKE_REQUIRED_FLAGS will include the flags both when testing
|
if (CXX_SUPPORTS_NOSTDLIBXX_FLAG)
|
||||||
# compilation of C and C++. Therefore test to make sure that the flags are
|
|
||||||
# supported by the C compiler driver, before deciding to include them.
|
|
||||||
llvm_check_compiler_linker_flag(C "-nostdlib++" C_SUPPORTS_NOSTDLIBXX_FLAG)
|
|
||||||
if (C_SUPPORTS_NOSTDLIBXX_FLAG)
|
|
||||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nostdlib++")
|
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nostdlib++")
|
||||||
endif()
|
endif()
|
||||||
check_c_compiler_flag(-nostdinc++ C_SUPPORTS_NOSTDINCXX_FLAG)
|
check_cxx_compiler_flag(-nostdinc++ CXX_SUPPORTS_NOSTDINCXX_FLAG)
|
||||||
if (C_SUPPORTS_NOSTDINCXX_FLAG)
|
if (CXX_SUPPORTS_NOSTDINCXX_FLAG)
|
||||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nostdinc++")
|
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nostdinc++")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user