Last active
May 21, 2021 13:26
-
-
Save blockspacer/c8ffdf460d962bdc99dccc847f39e3a6 to your computer and use it in GitHub Desktop.
Build llvm with sanitizers: First, build sanitized cxx cxxabi compiler-rt with LLVM_USE_SANITIZER. Next, build compiler-rt without LLVM_USE_SANITIZER but with COMPILER_RT_BUILD_SANITIZERS="ON"
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
export CC=clang | |
export CXX=clang++ | |
rm CMakeCache.txt ; cmake ../llvm -DCMAKE_BUILD_TYPE="Release" -DBUILD_SHARED_LIBS="ON" -DCONAN_CMAKE_POSITION_INDEPENDENT_CODE="ON" -DCMAKE_VERBOSE_MAKEFILE="ON" -DLLVM_ENABLE_PROJECTS="compiler-rt;libcxx;libcxxabi" -DLLVM_PARALLEL_COMPILE_JOBS="5" -DLLVM_COMPILER_JOBS="5" -DLLVM_PARALLEL_LINK_JOBS="1" -DLLVM_USE_SANITIZER="Address;Undefined" -DLLVM_ENABLE_LIBCXX="ON" -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD="OFF" -DLLVM_TOOL_OPENMP_BUILD="OFF" -DCLANG_ENABLE_ARCMT="OFF" -DCLANG_ENABLE_STATIC_ANALYZER="OFF" -DCLANG_ENABLE_FORMAT="OFF" -DCLANG_TOOL_CLANG_FORMAT_BUILD="OFF" -DCLANG_TOOL_CLANG_FUZZER_BUILD="OFF" -DLLVM_BUILD_INSTRUMENTED="OFF" -DLLVM_BUILD_LLVM_DYLIB="OFF" -DLLVM_LINK_LLVM_DYLIB="OFF" -DLLVM_ENABLE_LTO="OFF" -DLLVM_ENABLE_ZLIB="ON" -DLLVM_ENABLE_FFI="OFF" -DLLVM_BUILD_TOOLS="OFF" -DLLVM_INCLUDE_TOOLS="ON" -DLLVM_USE_OPROFILE="OFF" -DCOMPILER_RT_BUILD_SANITIZERS="ON" -DCOMPILER_RT_BUILD_BUILTINS="OFF" -DCOMPILER_RT_BUILD_XRAY="ON" -DCOMPILER_RT_BUILD_XRAY_NO_PREINIT="OFF" -DCOMPILER_RT_BUILD_PROFILE="ON" -DCOMPILER_RT_BUILD_LIBFUZZER="ON" -DCOMPILER_RT_BUILD_MEMPROF="ON" -DLLVM_ENABLE_BINDINGS="OFF" -DLLVM_INSTALL_BINUTILS_SYMLINKS="OFF" -DLLVM_INSTALL_CCTOOLS_SYMLINKS="OFF" -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_APPEND_VC_REV="ON" -DLLVM_ENABLE_EH="OFF" -DLLVM_BUILD_32_BITS="OFF" -DLLVM_ENABLE_EXPENSIVE_CHECKS="OFF" -DLLVM_ENABLE_IDE="OFF" -DLLVM_ENABLE_PIC="ON" -DCMAKE_POSITION_INDEPENDENT_CODE="ON" -DCOMPILER_RT_INCLUDE_TESTS="OFF" -DLLDB_INCLUDE_TESTS="OFF" -DCLANG_INCLUDE_TESTS="OFF" -DLIBCXXABI_INCLUDE_TESTS="OFF" -DLIBCXX_INCLUDE_TESTS="OFF" -DLLDB_ENABLE_PYTHON="OFF" -DLLDB_ENABLE_LIBEDIT="OFF" -DLLDB_ENABLE_CURSES="OFF" -DLLDB_ENABLE_LIBXML2="OFF" -DLLDB_ENABLE_LUA="OFF" -DLLDB_ENABLE_LZMA="OFF" -DLLVM_INCLUDE_TESTS="OFF" -DLLVM_BUILD_TESTS="OFF" -DBUILD_TESTS="OFF" -DLLVM_BUILD_EXAMPLES="OFF" -DLLVM_INCLUDE_EXAMPLES="OFF" -DLLVM_BUILD_BENCHMARKS="OFF" -DLLVM_INCLUDE_BENCHMARKS="OFF" -DLLVM_ENABLE_DOXYGEN="OFF" -DLLVM_ENABLE_DOXYGEN_QT_HELP="OFF" -DLLVM_DOXYGEN_SVG="OFF" -DLLVM_ENABLE_OCAMLDOC="OFF" -DLLVM_ENABLE_SPHINX="OFF" -DLLVM_ENABLE_RTTI="OFF" -DLLVM_ENABLE_WARNINGS="ON" -DCOMPILER_RT_SANITIZERS_TO_BUILD="asan;msan;tsan;safestack;cfi;esan" -DLLVM_OPTIMIZED_TABLEGEN="ON" -DLLVM_ENABLE_ASSERTIONS="OFF" | |
cmake --build . -- cxx cxxabi compiler-rt | |
# ok | |
nm lib/libc++.so.1 | grep san | |
# NOT FOUND! | |
find . -name libclang_rt.*so* | |
rm CMakeCache.txt ; cmake ../llvm -DCMAKE_BUILD_TYPE="Release" -DBUILD_SHARED_LIBS="ON" -DCONAN_CMAKE_POSITION_INDEPENDENT_CODE="ON" -DCMAKE_VERBOSE_MAKEFILE="ON" -DLLVM_ENABLE_PROJECTS="compiler-rt" -DLLVM_PARALLEL_COMPILE_JOBS="5" -DLLVM_COMPILER_JOBS="5" -DLLVM_PARALLEL_LINK_JOBS="1" -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD="OFF" -DLLVM_TOOL_OPENMP_BUILD="OFF" -DCLANG_ENABLE_ARCMT="OFF" -DCLANG_ENABLE_STATIC_ANALYZER="OFF" -DCLANG_ENABLE_FORMAT="OFF" -DCLANG_TOOL_CLANG_FORMAT_BUILD="OFF" -DCLANG_TOOL_CLANG_FUZZER_BUILD="OFF" -DCOMPILER_RT_BUILD_SANITIZERS="ON" -DCOMPILER_RT_BUILD_BUILTINS="ON" -DCOMPILER_RT_BUILD_XRAY="ON" -DCOMPILER_RT_BUILD_XRAY_NO_PREINIT="OFF" -DCOMPILER_RT_BUILD_PROFILE="ON" -DCOMPILER_RT_BUILD_LIBFUZZER="ON" -DCOMPILER_RT_BUILD_MEMPROF="ON" -DLLVM_ENABLE_BINDINGS="OFF" -DLLVM_INSTALL_BINUTILS_SYMLINKS="OFF" -DLLVM_INSTALL_CCTOOLS_SYMLINKS="OFF" -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_APPEND_VC_REV="ON" -DLLVM_ENABLE_EH="OFF" -DLLVM_BUILD_32_BITS="OFF" -DLLVM_ENABLE_EXPENSIVE_CHECKS="OFF" -DLLVM_ENABLE_IDE="OFF" -DLLVM_ENABLE_PIC="ON" -DCMAKE_POSITION_INDEPENDENT_CODE="ON" -DCOMPILER_RT_INCLUDE_TESTS="OFF" -DLLDB_INCLUDE_TESTS="OFF" -DCLANG_INCLUDE_TESTS="OFF" -DLIBCXXABI_INCLUDE_TESTS="OFF" -DLIBCXX_INCLUDE_TESTS="OFF" -DLLDB_ENABLE_PYTHON="OFF" -DLLDB_ENABLE_LIBEDIT="OFF" -DLLDB_ENABLE_CURSES="OFF" -DLLDB_ENABLE_LIBXML2="OFF" -DLLDB_ENABLE_LUA="OFF" -DLLDB_ENABLE_LZMA="OFF" -DLLVM_INCLUDE_TESTS="OFF" -DLLVM_BUILD_TESTS="OFF" -DBUILD_TESTS="OFF" -DLLVM_BUILD_EXAMPLES="OFF" -DLLVM_INCLUDE_EXAMPLES="OFF" -DLLVM_BUILD_BENCHMARKS="OFF" -DLLVM_INCLUDE_BENCHMARKS="OFF" -DLLVM_ENABLE_DOXYGEN="OFF" -DLLVM_ENABLE_DOXYGEN_QT_HELP="OFF" -DLLVM_DOXYGEN_SVG="OFF" -DLLVM_ENABLE_OCAMLDOC="OFF" -DLLVM_ENABLE_SPHINX="OFF" -DLLVM_ENABLE_RTTI="OFF" -DLLVM_ENABLE_WARNINGS="ON" -DCOMPILER_RT_SANITIZERS_TO_BUILD="asan;msan;tsan;safestack;cfi;esan" -DLLVM_OPTIMIZED_TABLEGEN="ON" -DLLVM_ENABLE_ASSERTIONS="OFF" | |
cmake --build . -- compiler-rt | |
# ok | |
find . -name libclang_rt.*so* | |
# ok | |
nm lib/libc++.so.1 | grep san | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment