llvm.org GIT mirror llvm / 246ebb9
[CMake] Use __libc_start_main rather than fopen when checking for C library The check_library_exists CMake uses a custom symbol definition. This is a problem when checking for C library symbols because Clang recognizes many of them as builtins, and returns the -Wbuiltin-requires-header (or -Wincompatible-library-redeclaration) error. When building with -Werror which is the default, this causes the check_library_exists check fail making the build think that C library isn't available. To avoid this issue, we should use a symbol that isn't recognized by Clang and wouldn't cause the same issue. __libc_start_main seems like reasonable choice that fits the bill. Differential Revision: https://reviews.llvm.org/D57142 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352341 91177308-0d34-0410-b5e6-96231b3b80d8 Petr Hosek 7 months ago
1 changed file(s) with 1 addition(s) and 1 deletion(s). Raw diff Collapse all Expand all
9797 include(CheckLibraryExists)
9898 include(CheckCCompilerFlag)
9999
100 check_library_exists(c fopen "" LLVM_HAS_C_LIB)
100 check_library_exists(c __libc_start_main "" LLVM_HAS_C_LIB)
101101 check_c_compiler_flag(-nodefaultlibs LLVM_HAS_NODEFAULTLIBS_FLAG)
102102 if(LLVM_HAS_NODEFAULTLIBS_FLAG)
103103 set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nodefaultlibs")