Skip to content

Commit 1a36588

Browse files
authored
Merge pull request #856 from LebedevRI/oss-fuzz
oss-fuzz: more LTO?
2 parents 3295a6a + 703937d commit 1a36588

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

.ci/oss-fuzz.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@ RAWSPEED_BUILD="$WORK/rawspeed"
2525

2626
ln -f -s /usr/local/bin/lld /usr/bin/ld
2727

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+
2835
THINLTO_CACHE="$WORK/thinlto-cache"
2936
LDFLAGS="${LDFLAGS:-} -Wl,--thinlto-cache-dir=\"$THINLTO_CACHE\""
3037

@@ -38,6 +45,10 @@ LIBCXX_LLVM_SOURCE="$SRC/llvm-project-$LIBCXX_LLVM_VER.src"
3845

3946
LIBCXX_BUILD="$WORK/llvm-project-$LIBCXX_LLVM_VER.libcxx.build"
4047
cmake -S "$LIBCXX_LLVM_SOURCE/runtimes/" -B "$LIBCXX_BUILD" \
48+
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
49+
-DCMAKE_C_VISIBILITY_PRESET=hidden \
50+
-DCMAKE_CXX_VISIBILITY_PRESET=hidden \
51+
-DCMAKE_VISIBILITY_INLINES_HIDDEN=ON \
4152
-DCMAKE_BUILD_TYPE=Release \
4253
-DBUILD_SHARED_LIBS=OFF \
4354
-DLLVM_INCLUDE_TESTS=OFF \
@@ -62,6 +73,10 @@ patch $OPENMP_LLVM_SOURCE/openmp/runtime/src/kmp.h $RAWSPEED_SOURCE/.ci/openmp.p
6273

6374
OPENMP_BUILD="$WORK/llvm-project-$LIBOMP_LLVM_VER.omp.build"
6475
cmake -S "$OPENMP_LLVM_SOURCE/openmp/" -B "$OPENMP_BUILD" \
76+
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
77+
-DCMAKE_C_VISIBILITY_PRESET=hidden \
78+
-DCMAKE_CXX_VISIBILITY_PRESET=hidden \
79+
-DCMAKE_VISIBILITY_INLINES_HIDDEN=ON \
6580
-DCMAKE_BUILD_TYPE=Release \
6681
-DBUILD_SHARED_LIBS=OFF \
6782
-DLIBOMP_ENABLE_SHARED=OFF \

.github/workflows/CI-ossfuzz.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ on:
88
jobs:
99
linux:
1010
runs-on: ubuntu-latest
11-
timeout-minutes: 70
11+
timeout-minutes: 120
1212
steps:
1313
- name: (OSS-FUZZ) Building with ${{ inputs.sanitizer }} sanitizer
14-
timeout-minutes: 25
14+
timeout-minutes: 60
1515
id: build
1616
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
1717
with:

cmake/compiler-flags.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ if(CMAKE_INTERPROCEDURAL_OPTIMIZATION)
5454
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
5555
set(LIST )
5656
list(APPEND LIST -fforce-emit-vtables)
57-
list(APPEND LIST -fno-whole-program-vtables)
58-
list(APPEND LIST -fno-strict-vtable-pointers)
57+
# list(APPEND LIST -fwhole-program-vtables) # DOES NOT WORK WITH SANCOV!
58+
list(APPEND LIST -fstrict-vtable-pointers)
5959
add_compile_options("$<$<COMPILE_LANGUAGE:C,CXX>:${LIST}>")
6060
endif()
6161
endif()

0 commit comments

Comments
 (0)