xref: /aosp_15_r20/external/perfetto/infra/oss-fuzz/build_fuzzers (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
1*6dbdd20aSAndroid Build Coastguard Worker#!/bin/bash
2*6dbdd20aSAndroid Build Coastguard Worker
3*6dbdd20aSAndroid Build Coastguard Workerset -euo pipefail
4*6dbdd20aSAndroid Build Coastguard Worker
5*6dbdd20aSAndroid Build Coastguard Worker$SRC/perfetto/tools/install-build-deps
6*6dbdd20aSAndroid Build Coastguard Worker
7*6dbdd20aSAndroid Build Coastguard Workermkdir -p $WORK/build
8*6dbdd20aSAndroid Build Coastguard Worker
9*6dbdd20aSAndroid Build Coastguard Worker# sanitize=vptr needs RTTI, which we do not compile with.
10*6dbdd20aSAndroid Build Coastguard WorkerCXXFLAGS="$CXXFLAGS -fno-sanitize=vptr"
11*6dbdd20aSAndroid Build Coastguard Worker
12*6dbdd20aSAndroid Build Coastguard WorkerGN_ARGS="is_clang=true is_debug=false is_fuzzer=true use_libfuzzer=false \
13*6dbdd20aSAndroid Build Coastguard Workerlink_fuzzer=\"-lFuzzingEngine\" is_hermetic_clang=false \
14*6dbdd20aSAndroid Build Coastguard Workeruse_custom_libcxx=false is_cross_compiling=true \
15*6dbdd20aSAndroid Build Coastguard Workerextra_target_cflags=\"$CFLAGS -Wno-implicit-int-float-conversion\" \
16*6dbdd20aSAndroid Build Coastguard Workerextra_target_cxxflags=\"$CXXFLAGS\" extra_target_ldflags=\"$CXXFLAGS\" \
17*6dbdd20aSAndroid Build Coastguard Workeris_system_compiler=true cc=\"$CC\" cxx=\"$CXX\" linker=\"gold\""
18*6dbdd20aSAndroid Build Coastguard Worker
19*6dbdd20aSAndroid Build Coastguard Workerif [ "$SANITIZER" = "address" ]; then
20*6dbdd20aSAndroid Build Coastguard Worker  GN_ARGS="$GN_ARGS is_asan=true";
21*6dbdd20aSAndroid Build Coastguard Workerfi;
22*6dbdd20aSAndroid Build Coastguard Worker
23*6dbdd20aSAndroid Build Coastguard WorkerOUTDIR=$WORK/build
24*6dbdd20aSAndroid Build Coastguard Worker$SRC/perfetto/tools/gn gen "$OUTDIR" --args="${GN_ARGS}" --check
25*6dbdd20aSAndroid Build Coastguard Worker
26*6dbdd20aSAndroid Build Coastguard Worker$SRC/perfetto/tools/ninja -C $WORK/build fuzzers -v
27*6dbdd20aSAndroid Build Coastguard Workercp $WORK/build/*fuzzer $OUT
28*6dbdd20aSAndroid Build Coastguard Workermkdir -p $OUT/src/traced/probes/ftrace/test/data
29*6dbdd20aSAndroid Build Coastguard Workercp -a $SRC/perfetto/src/traced/probes/ftrace/test/data/synthetic \
30*6dbdd20aSAndroid Build Coastguard Worker  $OUT/src/traced/probes/ftrace/test/data
31*6dbdd20aSAndroid Build Coastguard Worker
32*6dbdd20aSAndroid Build Coastguard Workerif [ "$SANITIZER" = "undefined" ]; then
33*6dbdd20aSAndroid Build Coastguard Worker  rm $OUT/trace_processor_fuzzer
34*6dbdd20aSAndroid Build Coastguard Workerfi;
35