Support *-build-env packages with no ld.so.preload 13/72513/1
authorSlava Barinov <v.barinov@samsung.com>
Fri, 29 Apr 2016 14:15:02 +0000 (17:15 +0300)
committerMaxim Ostapenko <m.ostapenko@samsung.com>
Wed, 1 Jun 2016 09:31:07 +0000 (12:31 +0300)
In environments where there is no existing ld.so.preload file the
post-install script from *-build-env packages fails on 'mv' command and
does not add libasan as first library which leads to build failure with
message "ASan runtime does not come first in initial library list"

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

index b637910..5c46e42 100644 (file)
@@ -18,7 +18,7 @@
 
 # Please submit bugfixes or comments via http://bugs.tizen.org/
 #
-# we use %%{?macro: ... } as it is more compact 
+# we use %%{?macro: ... } as it is more compact
 %if 0%{?run_tests}
 %define gcc_run_tests 1
 %endif
@@ -652,15 +652,15 @@ Asan build environment
 
 %post -n asan-build-env
 # Add /usr/lib/libasan.so to /etc/ld.so.preload
-mv -v /etc/ld.so.preload /etc/ld.so.preload.orig
-echo "/usr/lib/libasan.so" > /etc/ld.so.preload
-cat /etc/ld.so.preload.orig >> /etc/ld.so.preload
-rm -f /etc/ld.so.preload.orig
-echo "halt_on_error=false:start_deactivated=true:print_cmdline=true:quarantine_size_mb=1" > /ASAN_OPTIONS
+[ -f /etc/ld.so.preload ] && mv -v /etc/ld.so.preload /etc/ld.so.preload.orig
+echo "libasan.so" > /etc/ld.so.preload
+[ -f /etc/ld.so.preload.orig ] && cat /etc/ld.so.preload.orig >> /etc/ld.so.preload
+[ -f /etc/ld.so.preload.orig ] && rm -f /etc/ld.so.preload.orig
+echo "halt_on_error=false:start_deactivated=true:print_cmdline=true:quarantine_size_mb=1:detect_leaks=0" > /ASAN_OPTIONS
 
 %preun -n asan-build-env
 # Restore /etc/ld.so.preload
-mv -v /etc/ld.so.preload.orig /etc/ld.so.preload
+[ -f /etc/ld.so.preload.orig ] && mv -v /etc/ld.so.preload.orig /etc/ld.so.preload
 
 %package -n lsan-build-env
 Summary:    Lsan build environment
@@ -671,11 +671,11 @@ Requires:   liblsan
 Lsan build environment
 
 %post -n lsan-build-env
-# Add /usr/lib/liblsan.so to /etc/ld.so.preload
-mv -v /etc/ld.so.preload /etc/ld.so.preload.orig
-echo "/usr/lib/liblsan.so" > /etc/ld.so.preload
-cat /etc/ld.so.preload.orig >> /etc/ld.so.preload
-rm -f /etc/ld.so.preload.orig
+# Add /usr/lib64/liblsan.so to /etc/ld.so.preload
+[ -f /etc/ld.so.preload ] && mv -v /etc/ld.so.preload /etc/ld.so.preload.orig
+echo "%{libdir}/liblsan.so" > /etc/ld.so.preload
+[ -f /etc/ld.so.preload.orig ] && cat /etc/ld.so.preload.orig >> /etc/ld.so.preload
+[ -f /etc/ld.so.preload.orig ] && rm -f /etc/ld.so.preload.orig
 
 %preun -n lsan-build-env
 # Restore /etc/ld.so.preload
index 1b98e89..ef33265 100644 (file)
@@ -18,7 +18,7 @@
 
 # Please submit bugfixes or comments via http://bugs.tizen.org/
 #
-# we use %%{?macro: ... } as it is more compact 
+# we use %%{?macro: ... } as it is more compact
 %if 0%{?run_tests}
 %define gcc_run_tests 1
 %endif
@@ -652,15 +652,15 @@ Asan build environment
 
 %post -n asan-build-env
 # Add /usr/lib/libasan.so to /etc/ld.so.preload
-mv -v /etc/ld.so.preload /etc/ld.so.preload.orig
-echo "/usr/lib/libasan.so" > /etc/ld.so.preload
-cat /etc/ld.so.preload.orig >> /etc/ld.so.preload
-rm -f /etc/ld.so.preload.orig
-echo "halt_on_error=false:start_deactivated=true:print_cmdline=true:quarantine_size_mb=1" > /ASAN_OPTIONS
+[ -f /etc/ld.so.preload ] && mv -v /etc/ld.so.preload /etc/ld.so.preload.orig
+echo "libasan.so" > /etc/ld.so.preload
+[ -f /etc/ld.so.preload.orig ] && cat /etc/ld.so.preload.orig >> /etc/ld.so.preload
+[ -f /etc/ld.so.preload.orig ] && rm -f /etc/ld.so.preload.orig
+echo "halt_on_error=false:start_deactivated=true:print_cmdline=true:quarantine_size_mb=1:detect_leaks=0" > /ASAN_OPTIONS
 
 %preun -n asan-build-env
 # Restore /etc/ld.so.preload
-mv -v /etc/ld.so.preload.orig /etc/ld.so.preload
+[ -f /etc/ld.so.preload.orig ] && mv -v /etc/ld.so.preload.orig /etc/ld.so.preload
 
 %package -n lsan-build-env
 Summary:    Lsan build environment
@@ -671,11 +671,11 @@ Requires:   liblsan
 Lsan build environment
 
 %post -n lsan-build-env
-# Add /usr/lib/liblsan.so to /etc/ld.so.preload
-mv -v /etc/ld.so.preload /etc/ld.so.preload.orig
-echo "/usr/lib/liblsan.so" > /etc/ld.so.preload
-cat /etc/ld.so.preload.orig >> /etc/ld.so.preload
-rm -f /etc/ld.so.preload.orig
+# Add /usr/lib64/liblsan.so to /etc/ld.so.preload
+[ -f /etc/ld.so.preload ] && mv -v /etc/ld.so.preload /etc/ld.so.preload.orig
+echo "%{libdir}/liblsan.so" > /etc/ld.so.preload
+[ -f /etc/ld.so.preload.orig ] && cat /etc/ld.so.preload.orig >> /etc/ld.so.preload
+[ -f /etc/ld.so.preload.orig ] && rm -f /etc/ld.so.preload.orig
 
 %preun -n lsan-build-env
 # Restore /etc/ld.so.preload
index a48180c..79284e9 100644 (file)
@@ -15,7 +15,7 @@
 
 # Please submit bugfixes or comments via http://bugs.tizen.org/
 #
-# we use %%{?macro: ... } as it is more compact 
+# we use %%{?macro: ... } as it is more compact
 %if 0%{?run_tests}
 %define gcc_run_tests 1
 %endif
@@ -649,15 +649,15 @@ Asan build environment
 
 %post -n asan-build-env
 # Add /usr/lib/libasan.so to /etc/ld.so.preload
-mv -v /etc/ld.so.preload /etc/ld.so.preload.orig
-echo "/usr/lib/libasan.so" > /etc/ld.so.preload
-cat /etc/ld.so.preload.orig >> /etc/ld.so.preload
-rm -f /etc/ld.so.preload.orig
-echo "halt_on_error=false:start_deactivated=true:print_cmdline=true:quarantine_size_mb=1" > /ASAN_OPTIONS
+[ -f /etc/ld.so.preload ] && mv -v /etc/ld.so.preload /etc/ld.so.preload.orig
+echo "libasan.so" > /etc/ld.so.preload
+[ -f /etc/ld.so.preload.orig ] && cat /etc/ld.so.preload.orig >> /etc/ld.so.preload
+[ -f /etc/ld.so.preload.orig ] && rm -f /etc/ld.so.preload.orig
+echo "halt_on_error=false:start_deactivated=true:print_cmdline=true:quarantine_size_mb=1:detect_leaks=0" > /ASAN_OPTIONS
 
 %preun -n asan-build-env
 # Restore /etc/ld.so.preload
-mv -v /etc/ld.so.preload.orig /etc/ld.so.preload
+[ -f /etc/ld.so.preload.orig ] && mv -v /etc/ld.so.preload.orig /etc/ld.so.preload
 
 %package -n lsan-build-env
 Summary:    Lsan build environment
@@ -668,11 +668,11 @@ Requires:   liblsan
 Lsan build environment
 
 %post -n lsan-build-env
-# Add /usr/lib/liblsan.so to /etc/ld.so.preload
-mv -v /etc/ld.so.preload /etc/ld.so.preload.orig
-echo "/usr/lib/liblsan.so" > /etc/ld.so.preload
-cat /etc/ld.so.preload.orig >> /etc/ld.so.preload
-rm -f /etc/ld.so.preload.orig
+# Add /usr/lib64/liblsan.so to /etc/ld.so.preload
+[ -f /etc/ld.so.preload ] && mv -v /etc/ld.so.preload /etc/ld.so.preload.orig
+echo "%{libdir}/liblsan.so" > /etc/ld.so.preload
+[ -f /etc/ld.so.preload.orig ] && cat /etc/ld.so.preload.orig >> /etc/ld.so.preload
+[ -f /etc/ld.so.preload.orig ] && rm -f /etc/ld.so.preload.orig
 
 %preun -n lsan-build-env
 # Restore /etc/ld.so.preload