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")
%define ARCH_BIT 32
%endif
+%if 0%{?asan}
+ %define ASAN_BUILD 1
+%else
+ %define ASAN_BUILD 0
+%endif
+
%build
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}
%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
--- /dev/null
+# ---- 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
+"