From 26b48e00e944c1f23dc3e34fa06db89763d916df Mon Sep 17 00:00:00 2001 From: Ivan Baravy Date: Mon, 25 Sep 2017 20:24:53 +0300 Subject: [PATCH] Add ISan related options and isan-force-options package Change-Id: Ibb835c856939f953e03b2f687417a861d9d9c3a7 Signed-off-by: Ivan Baravy Signed-off-by: Dongkyun, Son --- packaging/gcc-contrib.spec | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/packaging/gcc-contrib.spec b/packaging/gcc-contrib.spec index 087da06..c24b556 100644 --- a/packaging/gcc-contrib.spec +++ b/packaging/gcc-contrib.spec @@ -40,6 +40,7 @@ %define asan_force_options -fsanitize-recover=address -fsanitize=address -fno-omit-frame-pointer -Wp,-U_FORTIFY_SOURCE -Wl,--as-needed -ldl -lpthread %define ubsan_force_options -fsanitize=undefined,bounds-strict,float-divide-by-zero,float-cast-overflow %define lsan_force_options -fsanitize=leak -marm -Wa,-mimplicit-it=arm -fno-omit-frame-pointer -Wp,-U_FORTIFY_SOURCE -Wl,--as-needed -ldl -lpthread +%define isan_force_options -fsanitize=unsigned-integer-overflow %define asan_runtime_options halt_on_error=false:start_deactivated=true:print_cmdline=true:quarantine_size_mb=1:detect_leaks=0:log_path=/tmp/asan.log:log_exe_name=1 %define ubsan_runtime_options print_cmdline=true:log_path=/tmp/ubsan.log @@ -144,6 +145,39 @@ chmod a-w %{libsubdir} && find -L /emul/usr/*/gcc -name 'collect2' | xargs dirname | xargs chmod a-w /usr/bin/gcc-unforce-options +%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 @@ -322,6 +356,11 @@ install -m 0755 %{SOURCE23} %{buildroot}/%{_rpmconfigdir}/tizen/ %{_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 + %ifarch %lsan_arch %files -n lsan-force-options #%manifest gcc-contrib.manifest -- 2.7.4