Last active
March 31, 2022 03:26
-
-
Save bryant/ae841554685d4c4dd3bf82d49156945d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Building just clang-9.0 for creduce. | |
| execute_process( | |
| COMMAND "grep" "^processor" "/proc/cpuinfo" | |
| COMMAND "wc" "-l" | |
| COMMAND "tr" "-d" "'\n'" | |
| OUTPUT_VARIABLE ncpu) | |
| message("Building with ${ncpu} cpus") | |
| set(LLVM_PARALLEL_COMPILE_JOBS ${ncpu} CACHE STRING "") | |
| set(LLVM_PARALLEL_LINK_JOBS ${ncpu} CACHE STRING "") | |
| set(LLVM_TARGETS_TO_BUILD "X86" CACHE STRING "") | |
| set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") | |
| #set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/usr" CACHE PATH "") | |
| set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "") | |
| set(CMAKE_BUILD_TYPE "Release" CACHE STRING "") | |
| set(CMAKE_CXX_COMPILER "clang++" CACHE PATH "") | |
| set(CMAKE_C_COMPILER "clang" CACHE PATH "") | |
| # for libcxx to be linked statically, the host clang must have been built with | |
| # LIBCXX_ENABLE_STATIC_ABI_LIBRARY (see below). otherwise, we would also need to | |
| # add -lc++abi. | |
| #set(CMAKE_EXE_LINKER "clang" CACHE STRING "") | |
| #set(CMAKE_EXE_LINKER_FLAGS "-static-libstdc++" CACHE STRING "") | |
| # direct invocation of lld needs to be done through ld.lld. | |
| set(CMAKE_LINKER "ld.lld" CACHE STRING "") | |
| set(LLVM_ENABLE_LLD ON CACHE BOOL "") | |
| set(CLANG_DEFAULT_LINKER "lld" CACHE BOOL "") | |
| set(CLANG_DEFAULT_CXX_STDLIB "libc++" CACHE STRING "") | |
| # Prevents an extra runtime dep on libc++abi in binaries that -lc++. | |
| set(LIBCXX_ENABLE_SHARED ON CACHE BOOL "") | |
| set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "") | |
| set(LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "") | |
| # disabled since libunwind doesn't yet fully replace libgcc | |
| set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "See below.") | |
| set(LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "Use compiler-rt instead of libgcc") | |
| set(LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "") | |
| set(LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "") | |
| # Setting this triggers a bug in LLVM's CMake. | |
| # set(LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "") | |
| set(LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "") | |
| set(HAVE_DLADDR OFF CACHE BOOL "Otherwise, libunwind.a will require libdl.") | |
| # disable specific tools that we don't need. | |
| set(CLANG_TOOL_ARCMT_TEST_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_C_ARCMT_TEST_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_C_INDEX_TEST_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_CLANG_FUNC_MAPPING_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_CLANG_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_CLANG_IMPORT_TEST_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_CLANG_OFFLOAD_BUNDLER_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_CLANG_REFACTOR_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_CLANG_RENAME_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_LIBCLANG_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOLS_EXTRA_INCLUDE_DOCS OFF CACHE BOOL "") | |
| set(LLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_BUGPOINT_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_BUGPOINT_PASSES_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_DSYMUTIL_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_AS_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_BCANALYZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_CAT_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_CFI_VERIFY_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_COV_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_C_TEST_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_CVTRES_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_DEMANGLE_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_DIFF_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_DWARFDUMP_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_DWP_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_EXTRACT_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_GO_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_ISEL_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_JITLISTENER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_MC_ASSEMBLE_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_MC_DISASSEMBLE_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_MODEXTRACT_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_MT_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_NM_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_OBJCOPY_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_OBJDUMP_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_OPT_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_OPT_REPORT_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_PDBUTIL_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_PROFDATA_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_RC_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_READOBJ_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_RTDYLD_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_SHLIB_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_SIZE_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_SPECIAL_CASE_LIST_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_SPLIT_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_STRESS_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_STRINGS_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_SYMBOLIZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_XRAY_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_MSBUILD_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_OBJ2YAML_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_VERIFY_USELISTORDER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_XCODE_TOOLCHAIN_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_YAML2OBJ_BUILD OFF CACHE BOOL "") | |
| # test targets depend on some of the above tools. | |
| set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") | |
| set(CLANG_INCLUDE_TESTS OFF CACHE BOOL "") | |
| # lldb. | |
| set(LLDB_RELOCATABLE_PYTHON ON CACHE BOOL "") | |
| # sanitizers have options now. | |
| set(SANITIZER_ALLOW_CXXABI ON CACHE BOOL "") | |
| # default choice on linux is libstdc++. | |
| set(SANITIZER_CXX_ABI "libc++" CACHE STRING "") | |
| # bootstrap. | |
| set(CLANG_BOOTSTRAP_CMAKE_ARGS | |
| -C ${CMAKE_CURRENT_LIST_FILE} | |
| CACHE STRING "") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| cmake_minimum_required(VERSION 3.4) | |
| execute_process( | |
| COMMAND "grep" "^processor" "/proc/cpuinfo" | |
| COMMAND "wc" "-l" | |
| COMMAND "tr" "-d" "'\n'" | |
| OUTPUT_VARIABLE ncpu | |
| ) | |
| set(GIT_ORIGIN "file://$ENV{HOME}/usr/git" CACHE STRING "") | |
| set(LLVM_ENABLE_PROJECTS "clang;mlir" CACHE STRING "") | |
| message("Building with ${ncpu} cpus") | |
| set(LLVM_PARALLEL_COMPILE_JOBS ${ncpu} CACHE STRING "") | |
| set(LLVM_PARALLEL_LINK_JOBS ${ncpu} CACHE STRING "") | |
| set(BUILD_SHARED_LIBS ON CACHE BOOL "") | |
| set(CMAKE_C_COMPILER "clang" CACHE PATH "") | |
| set(CMAKE_CXX_COMPILER "clang++" CACHE PATH "") | |
| set(LLVM_ENABLE_LLD ON CACHE PATH "") | |
| set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "") | |
| set(CMAKE_C_FLAGS "-O0 -ggnu-pubnames" CACHE STRING "") | |
| set(CMAKE_CXX_FLAGS "-O0 -ggnu-pubnames" CACHE STRING "") | |
| set(CMAKE_EXE_LINKER_FLAGS "-Xlinker --gdb-index" CACHE STRING "") | |
| set(CMAKE_SHARED_LINKER_FLAGS "-Xlinker --gdb-index" CACHE STRING "") | |
| set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/usr" CACHE PATH "") | |
| set(LLVM_TARGETS_TO_BUILD "X86" CACHE STRING "") | |
| set(LLVM_BUILD_RUNTIME OFF CACHE BOOL "") | |
| set(LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "") | |
| # set(LLVM_USE_SANITIZER "MemoryWithOrigins" CACHE STRING "") | |
| set(LLVM_OPTIMIZED_TABLEGEN ON CACHE BOOL "") | |
| # ignore tools/clang | |
| set(LLVM_TOOL_CLANG_BUILD OFF CACHE BOOL "") | |
| # Minimize third-party deps. | |
| set(LLVM_ENABLE_LIBXML2 OFF CACHE STRING "") | |
| set(LLVM_ENABLE_LIBEDIT OFF CACHE BOOL "") | |
| set(HAVE_SANITIZER_MSAN_INTERFACE_H 0 CACHE BOOL "") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| execute_process( | |
| COMMAND "grep" "^processor" "/proc/cpuinfo" | |
| COMMAND "wc" "-l" | |
| COMMAND "tr" "-d" "'\n'" | |
| OUTPUT_VARIABLE ncpu) | |
| message("Building with ${ncpu} cpus") | |
| set(LLVM_PARALLEL_COMPILE_JOBS ${ncpu} CACHE STRING "") | |
| set(LLVM_PARALLEL_LINK_JOBS ${ncpu} CACHE STRING "") | |
| set(LLVM_TARGETS_TO_BUILD "X86" CACHE STRING "") | |
| set(LLVM_ENABLE_PROJECTS "clang;libcxx;libcxxabi;libunwind;compiler-rt;lld;lldb" | |
| CACHE STRING "") | |
| #set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/usr" CACHE PATH "") | |
| set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "") | |
| set(CMAKE_BUILD_TYPE "Release" CACHE STRING "") | |
| set(CMAKE_CXX_COMPILER "clang++" CACHE PATH "") | |
| set(CMAKE_C_COMPILER "clang" CACHE PATH "") | |
| # for libcxx to be linked statically, the host clang must have been built with | |
| # LIBCXX_ENABLE_STATIC_ABI_LIBRARY (see below). otherwise, we would also need to | |
| # add -lc++abi. | |
| #set(CMAKE_EXE_LINKER "clang" CACHE STRING "") | |
| #set(CMAKE_EXE_LINKER_FLAGS "-static-libstdc++" CACHE STRING "") | |
| # direct invocation of lld needs to be done through ld.lld. | |
| set(CMAKE_LINKER "ld.lld" CACHE STRING "") | |
| set(LLVM_ENABLE_LLD ON CACHE BOOL "") | |
| set(CLANG_DEFAULT_LINKER "lld" CACHE BOOL "") | |
| set(CLANG_DEFAULT_CXX_STDLIB "libc++" CACHE STRING "") | |
| # Prevents an extra runtime dep on libc++abi in binaries that -lc++. | |
| set(LIBCXX_ENABLE_SHARED ON CACHE BOOL "") | |
| set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "") | |
| set(LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "") | |
| # disabled since libunwind doesn't yet fully replace libgcc | |
| set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "See below.") | |
| set(LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "Use compiler-rt instead of libgcc") | |
| set(LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "") | |
| set(LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "") | |
| # Setting this triggers a bug in LLVM's CMake. | |
| # set(LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "") | |
| set(LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "") | |
| set(HAVE_DLADDR OFF CACHE BOOL "Otherwise, libunwind.a will require libdl.") | |
| # disable specific tools that we don't need. | |
| set(CLANG_TOOL_ARCMT_TEST_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_C_ARCMT_TEST_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_C_INDEX_TEST_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_CLANG_FUNC_MAPPING_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_CLANG_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_CLANG_IMPORT_TEST_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_CLANG_OFFLOAD_BUNDLER_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_CLANG_REFACTOR_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_CLANG_RENAME_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOL_LIBCLANG_BUILD OFF CACHE BOOL "") | |
| set(CLANG_TOOLS_EXTRA_INCLUDE_DOCS OFF CACHE BOOL "") | |
| set(LLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_BUGPOINT_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_BUGPOINT_PASSES_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_DSYMUTIL_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_AS_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_BCANALYZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_CAT_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_CFI_VERIFY_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_COV_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_C_TEST_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_CVTRES_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_DEMANGLE_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_DIFF_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_DWARFDUMP_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_DWP_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_EXTRACT_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_GO_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_ISEL_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_JITLISTENER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_MC_ASSEMBLE_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_MC_DISASSEMBLE_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_MODEXTRACT_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_MT_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_NM_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_OBJCOPY_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_OBJDUMP_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_OPT_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_OPT_REPORT_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_PDBUTIL_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_PROFDATA_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_RC_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_READOBJ_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_RTDYLD_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_SHLIB_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_SIZE_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_SPECIAL_CASE_LIST_FUZZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_SPLIT_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_STRESS_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_STRINGS_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_SYMBOLIZER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_LLVM_XRAY_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_MSBUILD_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_OBJ2YAML_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_VERIFY_USELISTORDER_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_XCODE_TOOLCHAIN_BUILD OFF CACHE BOOL "") | |
| set(LLVM_TOOL_YAML2OBJ_BUILD OFF CACHE BOOL "") | |
| # test targets depend on some of the above tools. | |
| set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") | |
| set(CLANG_INCLUDE_TESTS OFF CACHE BOOL "") | |
| # lldb. | |
| set(LLDB_RELOCATABLE_PYTHON ON CACHE BOOL "") | |
| # sanitizers have options now. | |
| set(SANITIZER_ALLOW_CXXABI ON CACHE BOOL "") | |
| # default choice on linux is libstdc++. | |
| set(SANITIZER_CXX_ABI "libc++" CACHE STRING "") | |
| # bootstrap. | |
| set(CLANG_BOOTSTRAP_CMAKE_ARGS | |
| -C ${CMAKE_CURRENT_LIST_FILE} | |
| CACHE STRING "") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment