Support *-build-env packages with no ld.so.preload
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 08:28:32 +0000 (11:28 +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 f423a45..a5572d3 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 2a542e3..30fc4fa 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 615a3e9..6e34677 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