Add %restore_fcommon RPM macro 58/85458/4
authorSlava Barinov <v.barinov@samsung.com>
Thu, 25 Aug 2016 07:31:51 +0000 (10:31 +0300)
committerSlava Barinov <v.barinov@samsung.com>
Fri, 26 Aug 2016 11:03:37 +0000 (14:03 +0300)
The macro is needed to restore the -fcommon flag switched off by default
in asan-force-options package. The flag is needed for some OpenSource
packages' build.

Change-Id: I0484893f3a681d2fa841ed23b46f02b930a186b9
Signed-off-by: Slava Barinov <v.barinov@samsung.com>
packaging/gcc-aarch64.spec
packaging/gcc-armv7l.spec
packaging/linaro-gcc.spec

index d3750f6..089859a 100644 (file)
@@ -591,7 +591,7 @@ A foreign function interface is the popular name for the interface that allows c
 %package -n asan-force-options
 Summary:    Scripts to enable automatic package sanitization
 Group:      System Environment
-Requires:   gcc
+Requires:   gcc rpm
 Requires:   libasan
 
 %description -n asan-force-options
@@ -600,13 +600,21 @@ Scripts for ASan instrumentation
 %post -n asan-force-options
 # Change mode to allow all users to run gcc-force/unforce-options
 chmod a+w /usr/bin
-[ -d /emul/ ] && chmod a+w /emul/usr/bin/
+[ -d /emul/ ] && chmod a+w /emul/usr/bin/ && chmod a+w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-force-options -fsanitize-recover=address -fsanitize=address -fno-common -fno-omit-frame-pointer -U_FORTIFY_SOURCE
+# Add restore_fcommon macro
+cat >> /usr/lib/rpm/tizen_macros << EOF
+
+%restore_fcommon \\
+  /usr/bin/gcc-unforce-options \\
+  /usr/bin/gcc-force-options -fsanitize-recover=address -fsanitize=address -fcommon -fno-omit-frame-pointer -U_FORTIFY_SOURCE
+
+EOF
 
 %preun -n asan-force-options
 # Restore read-only mode
 chmod a-w /usr/bin
-[ -d /emul/ ] && chmod a-w /emul/usr/bin/
+[ -d /emul/ ] && chmod a-w /emul/usr/bin/ && chmod a-w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-unforce-options
 
 %package -n ubsan-force-options
@@ -621,13 +629,13 @@ Scripts for UBSan instrumentation
 %post -n ubsan-force-options
 # Change mode to allow all users to run gcc-force/unforce-options
 chmod a+w /usr/bin
-[ -d /emul/ ] && chmod a+w /emul/usr/bin/
+[ -d /emul/ ] && chmod a+w /emul/usr/bin/ && chmod a+w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-force-options -fsanitize=undefined,bounds-strict,float-divide-by-zero,float-cast-overflow
 
 %preun -n ubsan-force-options
 # Restore read-only mode
 chmod a-w /usr/bin
-[ -d /emul/ ] && chmod a-w /emul/usr/bin/
+[ -d /emul/ ] && chmod a-w /emul/usr/bin/ && chmod a-w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-unforce-options
 
 %package -n lsan-force-options
@@ -642,13 +650,13 @@ Scripts for LSan instrumentation
 %post -n lsan-force-options
 # Change mode to allow all users to run gcc-force/unforce-options
 chmod a+w /usr/bin
-[ -d /emul/ ] && chmod a+w /emul/usr/bin/
+[ -d /emul/ ] && chmod a+w /emul/usr/bin/ && chmod a+w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-force-options -fsanitize=leak
 
 %preun -n lsan-force-options
 # Restore read-only mode
 chmod a-w /usr/bin
-[ -d /emul/ ] && chmod a-w /emul/usr/bin/
+[ -d /emul/ ] && chmod a-w /emul/usr/bin/ && chmod a-w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-unforce-options
 
 %package -n asan-build-env
index 772c62e..58f7895 100644 (file)
@@ -591,7 +591,7 @@ A foreign function interface is the popular name for the interface that allows c
 %package -n asan-force-options
 Summary:    Scripts to enable automatic package sanitization
 Group:      System Environment
-Requires:   gcc
+Requires:   gcc rpm
 Requires:   libasan
 
 %description -n asan-force-options
@@ -600,13 +600,21 @@ Scripts for ASan instrumentation
 %post -n asan-force-options
 # Change mode to allow all users to run gcc-force/unforce-options
 chmod a+w /usr/bin
-[ -d /emul/ ] && chmod a+w /emul/usr/bin/
+[ -d /emul/ ] && chmod a+w /emul/usr/bin/ && chmod a+w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-force-options -fsanitize-recover=address -fsanitize=address -fno-common -fno-omit-frame-pointer -U_FORTIFY_SOURCE
+# Add restore_fcommon macro
+cat >> /usr/lib/rpm/tizen_macros << EOF
+
+%restore_fcommon \\
+  /usr/bin/gcc-unforce-options \\
+  /usr/bin/gcc-force-options -fsanitize-recover=address -fsanitize=address -fcommon -fno-omit-frame-pointer -U_FORTIFY_SOURCE
+
+EOF
 
 %preun -n asan-force-options
 # Restore read-only mode
 chmod a-w /usr/bin
-[ -d /emul/ ] && chmod a-w /emul/usr/bin/
+[ -d /emul/ ] && chmod a-w /emul/usr/bin/ && chmod a-w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-unforce-options
 
 %package -n ubsan-force-options
@@ -621,13 +629,13 @@ Scripts for UBSan instrumentation
 %post -n ubsan-force-options
 # Change mode to allow all users to run gcc-force/unforce-options
 chmod a+w /usr/bin
-[ -d /emul/ ] && chmod a+w /emul/usr/bin/
+[ -d /emul/ ] && chmod a+w /emul/usr/bin/ && chmod a+w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-force-options -fsanitize=undefined,bounds-strict,float-divide-by-zero,float-cast-overflow
 
 %preun -n ubsan-force-options
 # Restore read-only mode
 chmod a-w /usr/bin
-[ -d /emul/ ] && chmod a-w /emul/usr/bin/
+[ -d /emul/ ] && chmod a-w /emul/usr/bin/ && chmod a-w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-unforce-options
 
 %package -n lsan-force-options
@@ -642,13 +650,13 @@ Scripts for LSan instrumentation
 %post -n lsan-force-options
 # Change mode to allow all users to run gcc-force/unforce-options
 chmod a+w /usr/bin
-[ -d /emul/ ] && chmod a+w /emul/usr/bin/
+[ -d /emul/ ] && chmod a+w /emul/usr/bin/ && chmod a+w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-force-options -fsanitize=leak
 
 %preun -n lsan-force-options
 # Restore read-only mode
 chmod a-w /usr/bin
-[ -d /emul/ ] && chmod a-w /emul/usr/bin/
+[ -d /emul/ ] && chmod a-w /emul/usr/bin/ && chmod a-w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-unforce-options
 
 %package -n asan-build-env
index fe7bc17..20b6785 100644 (file)
@@ -588,7 +588,7 @@ A foreign function interface is the popular name for the interface that allows c
 %package -n asan-force-options
 Summary:    Scripts to enable automatic package sanitization
 Group:      System Environment
-Requires:   gcc
+Requires:   gcc rpm
 Requires:   libasan
 
 %description -n asan-force-options
@@ -597,13 +597,21 @@ Scripts for ASan instrumentation
 %post -n asan-force-options
 # Change mode to allow all users to run gcc-force/unforce-options
 chmod a+w /usr/bin
-[ -d /emul/ ] && chmod a+w /emul/usr/bin/
+[ -d /emul/ ] && chmod a+w /emul/usr/bin/ && chmod a+w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-force-options -fsanitize-recover=address -fsanitize=address -fno-common -fno-omit-frame-pointer -U_FORTIFY_SOURCE
+# Add restore_fcommon macro
+cat >> /usr/lib/rpm/tizen_macros << EOF
+
+%restore_fcommon \\
+  /usr/bin/gcc-unforce-options \\
+  /usr/bin/gcc-force-options -fsanitize-recover=address -fsanitize=address -fcommon -fno-omit-frame-pointer -U_FORTIFY_SOURCE
+
+EOF
 
 %preun -n asan-force-options
 # Restore read-only mode
 chmod a-w /usr/bin
-[ -d /emul/ ] && chmod a-w /emul/usr/bin/
+[ -d /emul/ ] && chmod a-w /emul/usr/bin/ && chmod a-w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-unforce-options
 
 %package -n ubsan-force-options
@@ -618,13 +626,13 @@ Scripts for UBSan instrumentation
 %post -n ubsan-force-options
 # Change mode to allow all users to run gcc-force/unforce-options
 chmod a+w /usr/bin
-[ -d /emul/ ] && chmod a+w /emul/usr/bin/
+[ -d /emul/ ] && chmod a+w /emul/usr/bin/ && chmod a+w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-force-options -fsanitize=undefined,bounds-strict,float-divide-by-zero,float-cast-overflow
 
 %preun -n ubsan-force-options
 # Restore read-only mode
 chmod a-w /usr/bin
-[ -d /emul/ ] && chmod a-w /emul/usr/bin/
+[ -d /emul/ ] && chmod a-w /emul/usr/bin/ && chmod a-w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-unforce-options
 
 %package -n lsan-force-options
@@ -639,13 +647,13 @@ Scripts for LSan instrumentation
 %post -n lsan-force-options
 # Change mode to allow all users to run gcc-force/unforce-options
 chmod a+w /usr/bin
-[ -d /emul/ ] && chmod a+w /emul/usr/bin/
+[ -d /emul/ ] && chmod a+w /emul/usr/bin/ && chmod a+w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-force-options -fsanitize=leak
 
 %preun -n lsan-force-options
 # Restore read-only mode
 chmod a-w /usr/bin
-[ -d /emul/ ] && chmod a-w /emul/usr/bin/
+[ -d /emul/ ] && chmod a-w /emul/usr/bin/ && chmod a-w /emul/home/abuild/rpmbuild/BUILD/gcc-4.9.2/obj/gcc/
 /usr/bin/gcc-unforce-options
 
 %package -n asan-build-env