@@ -20,93 +20,17 @@ set -ex
2020apt-get install -y ninja-build
2121export CMAKE_GENERATOR=Ninja
2222
23- RAWSPEED_SOURCE=" $SRC /librawspeed/"
24- RAWSPEED_BUILD=" $WORK /rawspeed"
25-
2623ln -f -s /usr/local/bin/lld /usr/bin/ld
2724
28- CFLAGS=" $CFLAGS -flto=thin"
29- CXXFLAGS=" $CXXFLAGS -flto=thin"
30-
31- CXXFLAGS=" $CXXFLAGS -fforce-emit-vtables"
32- # CXXFLAGS="$CXXFLAGS -fwhole-program-vtables" # DOES NOT WORK WITH SANCOV!
33- CXXFLAGS=" $CXXFLAGS -fstrict-vtable-pointers"
34-
35- THINLTO_CACHE=" $WORK /thinlto-cache"
36- LDFLAGS=" ${LDFLAGS:- } -Wl,--thinlto-cache-dir=\" $THINLTO_CACHE \" "
37-
3825cd " $SRC "
3926
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"
27+ LLVM_VER=" 18.1.8"
4728
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-
98- LIBCXX_LLVM_VER=" 19.1.7"
99-
100- wget -q https://github.com/llvm/llvm-project/releases/download/llvmorg-$LIBCXX_LLVM_VER /llvm-project-$LIBCXX_LLVM_VER .src.tar.xz
101- tar -xf llvm-project-$LIBCXX_LLVM_VER .src.tar.xz llvm-project-$LIBCXX_LLVM_VER .src/{runtimes,cmake,llvm/cmake,libcxx,libcxxabi}/
102- LIBCXX_LLVM_SOURCE=" $SRC /llvm-project-$LIBCXX_LLVM_VER .src"
103-
104- LIBCXX_BUILD=" $WORK /llvm-project-$LIBCXX_LLVM_VER .libcxx.build"
105- cmake -S " $LIBCXX_LLVM_SOURCE /runtimes/" -B " $LIBCXX_BUILD " \
106- -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
107- -DCMAKE_C_VISIBILITY_PRESET=hidden \
108- -DCMAKE_CXX_VISIBILITY_PRESET=hidden \
109- -DCMAKE_VISIBILITY_INLINES_HIDDEN=ON \
29+ wget -q https://github.com/llvm/llvm-project/releases/download/llvmorg-$LLVM_VER /llvm-project-$LLVM_VER .src.tar.xz
30+ tar -xf llvm-project-$LLVM_VER .src.tar.xz llvm-project-$LLVM_VER .src/{runtimes,cmake,llvm/cmake,libcxx,libcxxabi}/
31+ LIBCXX_BUILD=" $SRC /llvm-project-$LLVM_VER .build"
32+ mkdir " $LIBCXX_BUILD "
33+ cmake -S llvm-project-$LLVM_VER .src/runtimes/ -B " $LIBCXX_BUILD " \
11034 -DCMAKE_BUILD_TYPE=Release \
11135 -DBUILD_SHARED_LIBS=OFF \
11236 -DLLVM_INCLUDE_TESTS=OFF \
@@ -119,51 +43,33 @@ cmake -S "$LIBCXX_LLVM_SOURCE/runtimes/" -B "$LIBCXX_BUILD" \
11943 -DLIBCXXABI_ADDITIONAL_COMPILE_FLAGS=" -fno-sanitize=vptr"
12044cmake --build " $LIBCXX_BUILD " -- -j$( nproc) cxx cxxabi
12145
122- rm -rf /usr/* /include/c++
123- rm -rf /usr/* /lib/libc++*
124- rm -rf /usr/* /lib/* /libc++*
125-
12646CXXFLAGS=" $CXXFLAGS -nostdinc++ -nostdlib++ -isystem $LIBCXX_BUILD /include -isystem $LIBCXX_BUILD /include/c++/v1 -L$LIBCXX_BUILD /lib -lc++ -lc++abi"
12747
128- LIBOMP_LLVM_VER=" 20.1.5"
129-
130- wget -q https://github.com/llvm/llvm-project/releases/download/llvmorg-$LIBOMP_LLVM_VER /llvm-project-$LIBOMP_LLVM_VER .src.tar.xz
131- tar -xf llvm-project-$LIBOMP_LLVM_VER .src.tar.xz llvm-project-$LIBOMP_LLVM_VER .src/{runtimes,cmake,llvm/cmake,openmp}/
132- OPENMP_LLVM_SOURCE=" $SRC /llvm-project-$LIBOMP_LLVM_VER .src"
133-
134- patch $OPENMP_LLVM_SOURCE /openmp/runtime/src/kmp.h $RAWSPEED_SOURCE /.ci/openmp.patch
135-
136- OPENMP_BUILD=" $WORK /llvm-project-$LIBOMP_LLVM_VER .omp.build"
137- cmake -S " $OPENMP_LLVM_SOURCE /openmp/" -B " $OPENMP_BUILD " \
138- -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
139- -DCMAKE_C_VISIBILITY_PRESET=hidden \
140- -DCMAKE_CXX_VISIBILITY_PRESET=hidden \
141- -DCMAKE_VISIBILITY_INLINES_HIDDEN=ON \
142- -DCMAKE_BUILD_TYPE=Release \
143- -DBUILD_SHARED_LIBS=OFF \
144- -DLIBOMP_ENABLE_SHARED=OFF \
145- -DOPENMP_ENABLE_LIBOMPTARGET=OFF \
146- -DLIBOMP_CXXFLAGS=" -fno-sanitize=undefined,integer"
147- cmake --build " $OPENMP_BUILD " -- -j$( nproc) omp
148-
149- CXXFLAGS=" $CXXFLAGS -isystem $OPENMP_BUILD /runtime/src -L$OPENMP_BUILD /runtime/src"
150-
15148if [[ $SANITIZER = * undefined* ]]; then
15249 CFLAGS=" $CFLAGS -fsanitize=unsigned-integer-overflow -fno-sanitize-recover=unsigned-integer-overflow"
15350 CXXFLAGS=" $CXXFLAGS -fsanitize=unsigned-integer-overflow -fno-sanitize-recover=unsigned-integer-overflow"
15451fi
15552
156- cmake -S " $RAWSPEED_SOURCE " -B " $RAWSPEED_BUILD " \
157- -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
158- -DBINARY_PACKAGE_BUILD=ON -DWITH_OPENMP=ON \
53+ WITH_OPENMP=ON
54+ if [[ $SANITIZER = * memory* ]]; then
55+ WITH_OPENMP=OFF
56+ fi
57+
58+ cd " $WORK "
59+ mkdir build
60+ cd build
61+
62+ cmake \
63+ -DBINARY_PACKAGE_BUILD=ON -DWITH_OPENMP=$WITH_OPENMP \
64+ -DUSE_BUNDLED_LLVMOPENMP=ON -DALLOW_DOWNLOADING_LLVMOPENMP=ON \
15965 -DWITH_PUGIXML=OFF -DUSE_XMLLINT=OFF -DWITH_JPEG=OFF -DWITH_ZLIB=OFF \
16066 -DBUILD_TESTING=OFF -DBUILD_TOOLS=OFF -DBUILD_BENCHMARKING=OFF \
16167 -DCMAKE_BUILD_TYPE=FUZZ -DBUILD_FUZZERS=ON \
16268 -DLIB_FUZZING_ENGINE:STRING=" $LIB_FUZZING_ENGINE " \
163- -DCMAKE_INSTALL_PREFIX:PATH=" $OUT " -DCMAKE_INSTALL_BINDIR:PATH=" $OUT "
69+ -DCMAKE_INSTALL_PREFIX:PATH=" $OUT " -DCMAKE_INSTALL_BINDIR:PATH=" $OUT " \
70+ " $SRC /librawspeed/"
16471
165- cmake --build " $RAWSPEED_BUILD " -- -j$( nproc) all && cmake --build " $RAWSPEED_BUILD " -- -j$( nproc) install
72+ cmake --build . -- -j$( nproc) all && cmake --build . -- -j$( nproc) install
16673
167- du -hcs " $SRC " /* \
168- " $WORK " /* \
169- " $OUT "
74+ du -hcs .
75+ du -hcs " $OUT "
0 commit comments