aboutsummaryrefslogtreecommitdiff
path: root/projects/oak/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'projects/oak/build.sh')
-rwxr-xr-xprojects/oak/build.sh64
1 files changed, 12 insertions, 52 deletions
diff --git a/projects/oak/build.sh b/projects/oak/build.sh
index 2e46c774f..8a2720852 100755
--- a/projects/oak/build.sh
+++ b/projects/oak/build.sh
@@ -15,62 +15,22 @@
#
################################################################################
-# Mostly copied from
-# https://github.com/google/oss-fuzz/blob/7f8013db108e62727fba1c3cbcccac07d543682b/projects/grpc/build.sh
+cd oak_functions/loader/
-# Copy $CFLAGS and $CXXFLAGS into Bazel command-line flags, for both
-# compilation and linking.
-#
-# Some flags, such as `-stdlib=libc++`, generate warnings if used on a C source
-# file. Since the build runs with `-Werror` this will cause it to break, so we
-# use `--conlyopt` and `--cxxopt` instead of `--copt`.
-readonly EXTRA_BAZEL_FLAGS="$(
-for f in ${CFLAGS}; do
- echo "--conlyopt=${f}" "--linkopt=${f}"
-done
-for f in ${CXXFLAGS}; do
- echo "--cxxopt=${f}" "--linkopt=${f}"
-done
-if [ "${SANITIZER}" = "undefined" ]
+if [ "$SANITIZER" = "coverage" ]
then
- # Bazel uses clang to link binary, which does not link clang_rt ubsan library for C++ automatically.
- # See issue: https://github.com/bazelbuild/bazel/issues/8777
- echo "--linkopt=$(find $(llvm-config --libdir) -name libclang_rt.ubsan_standalone_cxx-x86_64.a | head -1)"
+ export RUSTFLAGS="$RUSTFLAGS -C debug-assertions=no"
+ chmod +x $SRC/rustc.py
+ export RUSTC="$SRC/rustc.py"
fi
-)"
-# Temporary hack, see https://github.com/google/oss-fuzz/issues/383
-readonly NO_VPTR='--copt=-fno-sanitize=vptr --linkopt=-fno-sanitize=vptr'
+cargo fuzz build --release
-readonly FUZZER_TARGETS=()
-readonly ENABLED=false
-
-if [ "$ENABLED" = true ]; then
- bazel build \
- --client_env=CC=${CC} \
- --client_env=CXX=${CXX} \
- --dynamic_mode=off \
- --spawn_strategy=standalone \
- --genrule_strategy=standalone \
- ${NO_VPTR} \
- --strip=never \
- --linkopt=-lc++ \
- --linkopt=-pthread \
- --cxxopt=-std=c++11 \
- --copt=${LIB_FUZZING_ENGINE} \
- --linkopt=${LIB_FUZZING_ENGINE} \
- --remote_cache=https://storage.googleapis.com/oak-bazel-cache \
- --remote_upload_local_results=false \
- ${EXTRA_BAZEL_FLAGS} \
- ${FUZZER_TARGETS[@]}
+FUZZ_TARGET_OUTPUT_DIR=fuzz/target/x86_64-unknown-linux-gnu/release
+for f in fuzz/fuzz_targets/*.rs
+do
+ FUZZ_TARGET_NAME=$(basename ${f%.*})
+ cp $FUZZ_TARGET_OUTPUT_DIR/$FUZZ_TARGET_NAME $OUT/
+done
- for target in ${FUZZER_TARGETS}; do
- # Replace : with /.
- fuzzer_name="${target/:/\/}"
- cp "./bazel-bin/${fuzzer_name}" "${OUT}/"
- done
- # Cleanup bazel- symlinks to avoid oss-fuzz trying to copy out of the build
- # cache.
- rm -f ./bazel-*
-fi