%define lsan_force_options -fsanitize=leak -fno-omit-frame-pointer -Wp,-U_FORTIFY_SOURCE -Wl,--as-needed -ldl -lpthread
%endif
%define ubsan_force_options -fsanitize=undefined,bounds-strict,float-divide-by-zero,float-cast-overflow
-%define isan_force_options -fsanitize=unsigned-integer-overflow
%define tsan_force_options -fsanitize=thread -fno-omit-frame-pointer -Wp,-U_FORTIFY_SOURCE -Wl,--as-needed -ldl -lpthread
%define gcov_force_options -fprofile-arcs -ftest-coverage
%define asan_runtime_options halt_on_error=false:start_deactivated=true:print_cmdline=true:quarantine_size_mb=1:detect_leaks=0:full_address_space=true:handle_segv=0:log_path=/tmp/asan.log:log_exe_name=1:fast_unwind_on_fatal=1:allocator_may_return_null=1
# Remove additional macros from config
sed -e '\|^\# /etc/rpm/macros.ubsan$|,\|^\# /etc/rpm/macros.ubsan ends here|d' -i /usr/lib/rpm/tizen_macros
-%package -n isan-force-options
-Summary: Scripts to enable automatic package sanitization
-Group: System Environment
-Requires: gcc
-Requires: libubsan
-
-%description -n isan-force-options
-Scripts for ISan instrumentation
-
-%post -n isan-force-options
-# Change mode to allow all users to run gcc-force/unforce-options
-chmod a+w /usr/bin
-chmod a+w %{libsubdir}
-[ -d /emul/ ] && chmod a+w /emul/usr/bin/ && chmod a+w /emul/home/abuild/rpmbuild/BUILD/gcc-*/obj/gcc/ \
- && find -L /emul/usr/*/gcc -name 'collect2' | xargs dirname | xargs chmod a+w
-/usr/bin/gcc-force-options %isan_force_options
-# Add ISan-related macros
-cat >> /usr/lib/rpm/tizen_macros << EOF
-
-%%isan_force_options %{isan_force_options}
-%%gcc_unforce_options /usr/bin/gcc-unforce-options
-%%gcc_force_options /usr/bin/gcc-force-options
-%%gcc_force_default_options %%gcc_force_options %%isan_force_options
-EOF
-
-%preun -n isan-force-options
-# Restore read-only mode
-chmod a-w /usr/bin
-chmod a-w %{libsubdir}
-[ -d /emul/ ] && chmod a-w /emul/usr/bin/ && chmod a-w /emul/home/abuild/rpmbuild/BUILD/gcc-*/obj/gcc/ \
- && find -L /emul/usr/*/gcc -name 'collect2' | xargs dirname | xargs chmod a-w
-/usr/bin/gcc-unforce-options
-
%package -n ubsan-build-env
Summary: UBSan build environment
Group: System Environment
%{_prefix}/bin/gcc-force-options
%{_prefix}/bin/gcc-unforce-options
-%files -n isan-force-options
-%defattr(-,root,root,-)
-%{_prefix}/bin/gcc-force-options
-%{_prefix}/bin/gcc-unforce-options
-
%files -n gcov-force-options
%defattr(-,root,root,-)
%{_prefix}/bin/gcc-force-options