For asan environment, copy with asan-runtime-env and libasan 02/277002/1 accepted/tizen/unified/20220701.055250 submit/tizen/20220630.103030
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Tue, 28 Jun 2022 08:13:46 +0000 (17:13 +0900)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Wed, 29 Jun 2022 04:46:46 +0000 (13:46 +0900)
When asan build case, asan-runtime-env and libasan package files
are required to run. For the asan environment, copy the files to
initrd-recovery dir.

Change-Id: I998c1683b430f822677b54e7c6aeeec2fff34257
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
CMakeLists.txt
packaging/initrd-recovery.spec
src/initrd-recovery/00-asan-prepare.list.in [new file with mode: 0644]

index d4c35e7cf13ffad14241080daf259677c8004480..632d8b2b49b009563fe064b5e315c37f0acaea64 100644 (file)
@@ -23,6 +23,15 @@ INSTALL(FILES ${INITRD_RECOVERY_SRC_DIR}/00-64bit-prepare.list DESTINATION ${INI
 
 ENDIF()
 
+IF("${ASAN_BUILD}" STREQUAL "1")
+
+CONFIGURE_FILE(${INITRD_RECOVERY_SRC_DIR}/00-asan-prepare.list.in
+               ${INITRD_RECOVERY_SRC_DIR}/00-asan-prepare.list
+               @ONLY)
+INSTALL(FILES ${INITRD_RECOVERY_SRC_DIR}/00-asan-prepare.list DESTINATION ${INITRD_RECOVERY_INSTALL_DROPIN_DIR})
+
+ENDIF()
+
 # Minireboot
 SET(MINIREBOOT_BINARY_NAME "minireboot")
 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -fPIE")
index add54a8f0185c73b26af925ecf79cf640b02235e..23eefc500611a255afdf4263486af7e516ebd306 100644 (file)
@@ -36,6 +36,12 @@ A reboot helper to use reboot parameter by inform partition
        %define ARCH_BIT 32
 %endif
 
+%if 0%{?asan}
+       %define ASAN_BUILD 1
+%else
+       %define ASAN_BUILD 0
+%endif
+
 %build
 cp %{SOURCE1001} .
 
@@ -44,6 +50,8 @@ cp %{SOURCE1001} .
                -DINITRD_RECOVERY_LIBEXEC_DIR=%{initrd_recovery_libexec_dir} \
                -DINITRD_RECOVERY_INSTALL_DROPIN_DIR=%{initrd_recovery_install_dropin_dir} \
                -DINITRD_RECOVERY_SRC_DIR=src/initrd-recovery \
+               -DASAN_BUILD=%{ASAN_BUILD} \
+               -DINITRD_LIB_DIR=%{_libdir} \
                -DMINIREBOOT_SRC_DIR=src/minireboot
 
 make %{?_smp_mflags}
@@ -72,6 +80,9 @@ rm -rf %{_libdir}/initrd-recovery
 %ifarch aarch64 x86-64
 %{initrd_recovery_install_dropin_dir}/00-64bit-prepare.list
 %endif
+%if 0%{?asan}
+%{initrd_recovery_install_dropin_dir}/00-asan-prepare.list
+%endif
 %attr(0775,root,root)%{initrd_recovery_libexec_dir}/init
 %attr(0775,root,root)%{initrd_recovery_libexec_dir}/mkinitrd-recovery.sh
 %attr(0775,root,root)%{initrd_recovery_libexec_dir}/minireboot
diff --git a/src/initrd-recovery/00-asan-prepare.list.in b/src/initrd-recovery/00-asan-prepare.list.in
new file mode 100644 (file)
index 0000000..6d7ada7
--- /dev/null
@@ -0,0 +1,12 @@
+# ---- Target contents ----------------------------------------------------- #
+
+WITHLIBS="
+@INITRD_LIB_DIR@/libcrypt-2.30.so
+@INITRD_LIB_DIR@/libasan.so
+@INITRD_LIB_DIR@/libasansi.so
+"
+
+VERBATIMS="
+/etc/ld.so.preload
+/ASAN_OPTIONS
+"