%build
cd lib/Fuzzer
CXX=gcc ./build.sh
+# Build a dummy lib for sancov usage
+# TODO: remove the libsancov_cb hack once __sanitizer_cov_trace_pc stub is available in GCC
cd -
gcc -c sancov_cb.c -o sancov_cb.o
ar rcs libsancov_cb.a sancov_cb.o
%install
mkdir -p %{buildroot}%{_libdir}
cp lib/Fuzzer/libFuzzer.a %{buildroot}%{_libdir}
+# TODO: remove the libsancov_cb hack once __sanitizer_cov_trace_pc stub is available in GCC
cp libsancov_cb.a %{buildroot}%{_libdir}
mkdir -p %{buildroot}%{_prefix}/bin
cp %{SOURCE1} %{SOURCE2} %{buildroot}%{_prefix}/bin
%post -n fuzz-force-options
# Change mode to allow all users to run gcc-force/unforce-options
chmod a+w /usr/bin
+# TODO: remove the libsancov_cb hack once __sanitizer_cov_trace_pc stub is available in GCC
/usr/bin/gcc-force-options -fsanitize-coverage=trace-pc -fsanitize=address -fno-common -fno-omit-frame-pointer -U_FORTIFY_SOURCE -lsancov_cb
chmod a-w /usr/bin
%files -n fuzz-force-options
%{_prefix}/bin/gcc-force-options
%{_prefix}/bin/gcc-unforce-options
+# TODO: remove the libsancov_cb hack once __sanitizer_cov_trace_pc stub is available in GCC
%{_libdir}/libsancov_cb.a