@@ -37,6 +37,64 @@ LDFLAGS="${LDFLAGS:-} -Wl,--thinlto-cache-dir=\"$THINLTO_CACHE\""
3737
3838cd " $SRC "
3939
40+ OSSFUZZ_LLVM_VER=$( clang -dumpversion)
41+ OSSFUZZ_LLVM_VER_MAJOR=(${OSSFUZZ_LLVM_VER// ./ } )
42+ OSSFUZZ_LLVM_VER_MAJOR=${OSSFUZZ_LLVM_VER_MAJOR[0]}
43+
44+ wget -q https://github.com/llvm/llvm-project/releases/download/llvmorg-$OSSFUZZ_LLVM_VER /llvm-project-$OSSFUZZ_LLVM_VER .src.tar.xz
45+ tar -xf llvm-project-$OSSFUZZ_LLVM_VER .src.tar.xz llvm-project-$OSSFUZZ_LLVM_VER .src/{runtimes,cmake,llvm/cmake,libcxx,libcxxabi,compiler-rt}/
46+ COMPILERRT_LLVM_SOURCE=" $SRC /llvm-project-$OSSFUZZ_LLVM_VER .src"
47+
48+ COMPILERRT_BUILD=" $WORK /llvm-project-$OSSFUZZ_LLVM_VER .compiler-rt.build"
49+ cmake -S " $COMPILERRT_LLVM_SOURCE /runtimes/" -B " $COMPILERRT_BUILD " \
50+ -DCMAKE_C_FLAGS=" $CFLAGS -fno-sanitize=all" \
51+ -DCMAKE_CXX_FLAGS=" $CXXFLAGS -fno-sanitize=all" \
52+ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
53+ -DCMAKE_C_VISIBILITY_PRESET=hidden \
54+ -DCMAKE_CXX_VISIBILITY_PRESET=hidden \
55+ -DCMAKE_VISIBILITY_INLINES_HIDDEN=ON \
56+ -DCMAKE_BUILD_TYPE=Release \
57+ -DBUILD_SHARED_LIBS=OFF \
58+ -DLLVM_INCLUDE_TESTS=OFF \
59+ -DLIBCXX_INCLUDE_TESTS=OFF \
60+ -DLIBCXXABI_INCLUDE_TESTS=OFF \
61+ -DCOMPILER_RT_INCLUDE_TESTS=OFF \
62+ -DLLVM_ENABLE_RUNTIMES=" libcxx;libcxxabi;compiler-rt" \
63+ -DLIBCXX_ENABLE_SHARED=OFF \
64+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \
65+ -DLIBCXXABI_ENABLE_SHARED=OFF \
66+ -DLIBCXXABI_USE_LLVM_UNWINDER=OFF \
67+ -DLIBCXX_INCLUDE_BENCHMARKS=OFF \
68+ -DCOMPILER_RT_USE_LLVM_UNWINDER=OFF \
69+ -DCOMPILER_RT_CXX_LIBRARY=libcxx \
70+ -DCOMPILER_RT_STATIC_CXX_LIBRARY=ON \
71+ -DSANITIZER_USE_STATIC_CXX_ABI=ON \
72+ -DSANITIZER_CXX_ABI_LIBNAME=libc++ \
73+ -DSANITIZER_CXX_ABI_INTREE=ON \
74+ -DCOMPILER_RT_SANITIZERS_TO_BUILD=" asan;msan" \
75+ -DCOMPILER_RT_BUILD_PROFILE=OFF \
76+ -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF \
77+ -DCOMPILER_RT_BUILD_XRAY=OFF \
78+ -DCOMPILER_RT_BUILD_LIBFUZZER=OFF \
79+ -DCOMPILER_RT_BUILD_MEMPROF=OFF \
80+ -DCOMPILER_RT_BUILD_ORC=OFF
81+ cmake --build " $COMPILERRT_BUILD " -- -j$( nproc) compiler-rt
82+
83+ TMPPDIR=$( mktemp -d)
84+ mv /usr/local/lib/clang/$OSSFUZZ_LLVM_VER_MAJOR /lib/x86_64-unknown-linux-gnu/libclang_rt.fuzzer* $TMPPDIR /
85+
86+ rm -rf /usr/* /lib/clang/* /include/sanitizer
87+ rm -rf /usr/* /lib/clang/* /lib/*
88+
89+ ln -s $COMPILERRT_BUILD /compiler-rt/lib/linux /usr/local/lib/clang/$OSSFUZZ_LLVM_VER_MAJOR /lib/linux
90+ ln -s $COMPILERRT_BUILD /compiler-rt/lib/linux /usr/local/lib/clang/$OSSFUZZ_LLVM_VER_MAJOR /lib/x86_64-unknown-linux-gnu
91+
92+ mv $TMPPDIR /* $COMPILERRT_BUILD /compiler-rt/lib/linux
93+
94+ rm -rf $COMPILERRT_BUILD /compiler-rt/lib/linux/* .so
95+
96+ CXXFLAGS=" $CXXFLAGS -isystem $COMPILERRT_BUILD /compiler-rt/include"
97+
4098LIBCXX_LLVM_VER=" 19.1.7"
4199
42100wget -q https://github.com/llvm/llvm-project/releases/download/llvmorg-$LIBCXX_LLVM_VER /llvm-project-$LIBCXX_LLVM_VER .src.tar.xz
@@ -61,6 +119,10 @@ cmake -S "$LIBCXX_LLVM_SOURCE/runtimes/" -B "$LIBCXX_BUILD" \
61119 -DLIBCXXABI_ADDITIONAL_COMPILE_FLAGS=" -fno-sanitize=vptr"
62120cmake --build " $LIBCXX_BUILD " -- -j$( nproc) cxx cxxabi
63121
122+ rm -rf /usr/* /include/c++
123+ rm -rf /usr/* /lib/libc++*
124+ rm -rf /usr/* /lib/* /libc++*
125+
64126CXXFLAGS=" $CXXFLAGS -nostdinc++ -nostdlib++ -isystem $LIBCXX_BUILD /include -isystem $LIBCXX_BUILD /include/c++/v1 -L$LIBCXX_BUILD /lib -lc++ -lc++abi"
65127
66128LIBOMP_LLVM_VER=" 20.1.5"
0 commit comments