Skip to content

Commit 3295a6a

Browse files
authored
Merge pull request #642 from LebedevRI/oss-fuzz-lto
oss-fuzz: enable LTO
2 parents 58fe0dd + beabbb7 commit 3295a6a

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

.ci/oss-fuzz.sh

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

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

28+
THINLTO_CACHE="$WORK/thinlto-cache"
29+
LDFLAGS="${LDFLAGS:-} -Wl,--thinlto-cache-dir=\"$THINLTO_CACHE\""
30+
2831
cd "$SRC"
2932

3033
LIBCXX_LLVM_VER="19.1.7"
@@ -74,6 +77,7 @@ if [[ $SANITIZER = *undefined* ]]; then
7477
fi
7578

7679
cmake -S "$RAWSPEED_SOURCE" -B "$RAWSPEED_BUILD" \
80+
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
7781
-DBINARY_PACKAGE_BUILD=ON -DWITH_OPENMP=ON \
7882
-DWITH_PUGIXML=OFF -DUSE_XMLLINT=OFF -DWITH_JPEG=OFF -DWITH_ZLIB=OFF \
7983
-DBUILD_TESTING=OFF -DBUILD_TOOLS=OFF -DBUILD_BENCHMARKING=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: 60
11+
timeout-minutes: 70
1212
steps:
1313
- name: (OSS-FUZZ) Building with ${{ inputs.sanitizer }} sanitizer
14-
timeout-minutes: 15
14+
timeout-minutes: 25
1515
id: build
1616
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
1717
with:

cmake/compiler-flags.cmake

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,20 @@ SET(CMAKE_MODULE_LINKER_FLAGS
5050
"${CMAKE_MODULE_LINKER_FLAGS} ${linkerflags}"
5151
)
5252

53+
if(CMAKE_INTERPROCEDURAL_OPTIMIZATION)
54+
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
55+
set(LIST )
56+
list(APPEND LIST -fforce-emit-vtables)
57+
list(APPEND LIST -fno-whole-program-vtables)
58+
list(APPEND LIST -fno-strict-vtable-pointers)
59+
add_compile_options("$<$<COMPILE_LANGUAGE:C,CXX>:${LIST}>")
60+
endif()
61+
endif()
62+
5363
if(RAWSPEED_ENABLE_LTO)
5464
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
5565
include(llvm-toolchain)
56-
set(lto_compile "-flto=thin -fforce-emit-vtables -fwhole-program-vtables -fstrict-vtable-pointers")
66+
set(lto_compile "-flto=thin")
5767
set(lto_link "-flto=thin -fuse-ld=\"${LLVMLLD_EXECUTABLE}\" ${LLVMLLD_INCREMENTAL_LDFLAGS}")
5868
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
5969
include(gcc-toolchain)

0 commit comments

Comments
 (0)