1818mkdir -p $WORK /boringssl
1919cd $WORK /boringssl
2020
21+ CXXFLAGS_LIBSTDCXX=$( echo " $CXXFLAGS " | sed ' s/-stdlib=libc++//g' )
22+ CXXFLAGS_LIBSTDCXX=" $CXXFLAGS_LIBSTDCXX -stdlib=libstdc++ -DBORINGSSL_UNSAFE_FUZZER_MODE"
23+ CXXFLAGS_LIBCXX=" $CXXFLAGS -stdlib=libc++ -DBORINGSSL_UNSAFE_FUZZER_MODE"
2124CFLAGS=" $CFLAGS -DBORINGSSL_UNSAFE_FUZZER_MODE"
22- CXXFLAGS=" $CXXFLAGS -DBORINGSSL_UNSAFE_FUZZER_MODE"
2325
2426CMAKE_DEFINES=" -DBORINGSSL_ALLOW_CXX_RUNTIME=1"
2527if [[ $CFLAGS = * sanitize= memory* ]]
2830fi
2931
3032cmake -GNinja -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX \
31- -DCMAKE_C_FLAGS=" $CFLAGS " -DCMAKE_CXX_FLAGS=" $CXXFLAGS " \
33+ -DCMAKE_C_FLAGS=" $CFLAGS " -DCMAKE_CXX_FLAGS=" $CXXFLAGS_LIBSTDCXX " \
3234 $CMAKE_DEFINES $SRC /boringssl/
3335ninja
3436
@@ -39,10 +41,10 @@ find . -name "*.a"
3941for F in $fuzzerFiles ; do
4042 fuzzerName=$( basename $F .cc)
4143 echo " Building fuzzer $fuzzerName "
42- $CXX $CXXFLAGS \
44+ $CXX $CXXFLAGS_LIBSTDCXX \
4345 -D_BORINGSSL_LIBPKI_ -std=c++1z \
4446 -o $OUT /${fuzzerName} $LIB_FUZZING_ENGINE $F \
45- -I $SRC /boringssl/include ./libpki.a ./libssl.a ./libcrypto.a
47+ -I $SRC /boringssl/include ./libpki.a ./libssl.a ./libcrypto.a -lstdc++
4648
4749 if [ -d " $SRC /boringssl/fuzz/${fuzzerName} _corpus" ]; then
4850 zip -j $OUT /${fuzzerName} _seed_corpus.zip $SRC /boringssl/fuzz/${fuzzerName} _corpus/*
@@ -61,14 +63,15 @@ if [[ $CFLAGS != *sanitize=memory* ]]; then
6163 fuzzerName=$( echo ${F#* _} )
6264 fuzzerName=$( basename $fuzzerName .cc)
6365 echo " Building fuzzer $fuzzerName "
64- $CXX $CXXFLAGS -I genfiles -I . -I $SRC /libprotobuf-mutator/ -I $SRC /LPM/external.protobuf/include -I include $LIB_FUZZING_ENGINE \
66+ $CXX $CXXFLAGS_LIBCXX -I genfiles -I . -I $SRC /libprotobuf-mutator/ -I $SRC /LPM/external.protobuf/include -I include $LIB_FUZZING_ENGINE \
6567 -DNDEBUG \
6668 -I $SRC /boringssl/include \
6769 $F genfiles/asn1_pdu.pb.cc $SRC /asn1_pdu_to_der.cc $SRC /common.cc \
6870 ./libssl.a ./libcrypto.a \
6971 $SRC /LPM/src/libfuzzer/libprotobuf-mutator-libfuzzer.a \
7072 $SRC /LPM/src/libprotobuf-mutator.a \
7173 -Wl,--start-group $SRC /LPM/external.protobuf/lib/lib* .a -Wl,--end-group \
74+ -lc++ \
7275 -o $OUT /" ${fuzzerName} _lpm"
7376 done
7477fi
0 commit comments