[ASan] Do not run post-script multiple times 01/313301/1 tizen_base_asan accepted/tizen/base/asan/20240624.084613
authorSlava Barinov <v.barinov@samsung.com>
Mon, 11 Sep 2023 09:17:05 +0000 (12:17 +0300)
committerJaehoon Chung <jh80.chung@samsung.com>
Mon, 24 Jun 2024 00:56:17 +0000 (09:56 +0900)
If the environment tries to run the post-script multiple times, the prevention
mechanism is needed

Signed-off-by: Slava Barinov <v.barinov@samsung.com>
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
[cherry picked from commit 607003abeac6199bf24ea193bfcbe38e91cc999f]

Change-Id: Ia5cf3fd4bd1fd782d64efa0eb8e6b14473dd84ff

packaging/gcc-contrib.spec

index 79262e5a8e269f7598b73240e1824c02d5224cb4..cebd733a11b20779248e8dce6d8a7f1e1b53342d 100644 (file)
@@ -379,6 +379,9 @@ Requires:   libasan
 Asan build environment
 
 %post -n asan-build-env
+# Check if the package is already installed
+[ -f /etc/ld.so.preload.orig ] && echo "The package is installed, keeping preload as is" && exit 0
+[ -f /etc/ld.so.preload ] && grep -q 'libasan.so' /etc/ld.so.preload && echo "libasan.so is already preloaded" && exit 0
 # Add /usr/lib/libasan.so to /etc/ld.so.preload
 [ -f /etc/ld.so.preload ] && mv -v /etc/ld.so.preload /etc/ld.so.preload.orig
 echo "libasan.so" > /etc/ld.so.preload
@@ -391,6 +394,8 @@ echo "libcrypt-2.30.so" >> /etc/ld.so.preload
 %preun -n asan-build-env
 # Restore /etc/ld.so.preload
 [ -f /etc/ld.so.preload.orig ] && mv -v /etc/ld.so.preload.orig /etc/ld.so.preload
+# And remove our libs even if there was no backup
+sed -e '/libasan.so/d' -i /etc/ld.so.preload
 
 %package -n hwasan-build-env
 Summary:    HWAsan build environment