[AS_HELP_STRING([--with-crypto], [Support for UBIFS crypto features])],
[], [with_crypto="check"])
+AC_ARG_ENABLE([asan],
+ [AS_HELP_STRING([--enable-asan], [Support AddressSanitizer debug])],
+ [], [enable_asan="no"])
+
##### search for dependencies #####
need_clock_gettime="no"
[with_zlib="no"])])
], [])
+AC_ARG_VAR([ASAN_LIBS], [linker flags for lasan])
+AS_IF([test "x$enable_asan" = "xyes"], [
+ AC_CHECK_LIB([asan], [_init], [
+ ASAN_LIBS="-lasan -fsanitize=address -fsanitize-recover=address -g"], [
+ AC_MSG_ERROR([cannot find libasan])
+ ])
+])
+
if test "x$need_uuid" = "xyes"; then
PKG_CHECK_MODULES(UUID, [uuid], [],
[PKG_CHECK_MODULES_STATIC(UUID, [uuid], [], [uuid_missing="yes"])])
AM_CONDITIONAL([WITH_SELINUX], [test "x$with_selinux" = "xyes"])
AM_CONDITIONAL([WITH_CRYPTO], [test "x$with_crypto" = "xyes"])
AM_CONDITIONAL([WITH_UBIHEALTHD], [test "x$enable_ubihealthd" = "xyes"])
+AM_CONDITIONAL([WITH_ASAN], [test "x$enable_asan" = "xyes"])
AM_CONDITIONAL([BUILD_UBIFS], [test "x$with_ubifs" = "xyes"])
AM_CONDITIONAL([BUILD_JFFSX], [test "x$with_jffs" = "xyes"])
compiler: ${CC}
cflags: ${CFLAGS}
ldflags: ${LDFLAGS}
+ asan debug: ${enable_asan}
lzo support: ${with_lzo}
zlib support: ${with_zlib}
ubifs-utils/mkfs.ubifs/mkfs.ubifs.c
mkfs_ubifs_LDADD = libmtd.a libubi.a $(ZLIB_LIBS) $(LZO_LIBS) $(ZSTD_LIBS) $(UUID_LIBS) $(LIBSELINUX_LIBS) $(OPENSSL_LIBS) \
- $(DUMP_STACK_LD) -lm -lpthread
+ $(DUMP_STACK_LD) $(ASAN_LIBS) -lm -lpthread
mkfs_ubifs_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_CFLAGS) $(LZO_CFLAGS) $(ZSTD_CFLAGS) $(UUID_CFLAGS) $(LIBSELINUX_CFLAGS) \
-I$(top_srcdir)/ubi-utils/include -I$(top_srcdir)/ubifs-utils/common -I $(top_srcdir)/ubifs-utils/libubifs
ubifs-utils/fsck.ubifs/handle_disconnected.c
fsck_ubifs_LDADD = libmtd.a libubi.a $(ZLIB_LIBS) $(LZO_LIBS) $(ZSTD_LIBS) $(UUID_LIBS) $(LIBSELINUX_LIBS) $(OPENSSL_LIBS) \
- $(DUMP_STACK_LD) -lm -lpthread
+ $(DUMP_STACK_LD) $(ASAN_LIBS) -lm -lpthread
fsck_ubifs_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_CFLAGS) $(LZO_CFLAGS) $(ZSTD_CFLAGS) $(UUID_CFLAGS) $(LIBSELINUX_CFLAGS) \
-I$(top_srcdir)/ubi-utils/include -I$(top_srcdir)/ubifs-utils/common -I $(top_srcdir)/ubifs-utils/libubifs \
-I$(top_srcdir)/ubifs-utils/fsck.ubifs