AC_SUBST(DEPPROFILED_LIBBLKID)
AC_SUBST(BLKID_CMT)
dnl
+dnl handle --enable-subset
+dnl
+ALL_CMT=
+SUBSET_CMT=
+AC_ARG_ENABLE([subset],
+[ --enable-subset enable subset-only build],
+if test "$enableval" = "no"
+then
+ SUBSET_CMT=#
+ AC_MSG_RESULT([Disabling subset-only build])
+else
+ ALL_CMT=#
+ AC_MSG_RESULT([Enabling subset-only-build])
+fi
+,)
+AC_SUBST(ALL_CMT)
+AC_SUBST(SUBSET_CMT)
+dnl
dnl handle --disable-backtrace
dnl
AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
AC_PROG_MAKE_SET
CHECK_GNU_MAKE
AC_PATH_PROG(LN, ln, ln)
+AC_PROG_MKDIR_P
AC_PROG_LN_S
AC_PATH_PROG(MV, mv, mv)
AC_PATH_PROG(CP, cp, cp)
[#include <sys/types.h>
#include <sys/socket.h>])
dnl
-dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
-dnl the system-provided blkid library
+dnl If we are using the system-provided blkid library, check for
+dnl the functions added after migrating that library to util-linux
dnl
if test -n "$BLKID_CMT"; then
- AC_SEARCH_LIBS([blkid_probe_all], [blkid])
+ AC_CHECK_LIB(blkid, blkid_probe_get_topology,
+ AC_DEFINE(HAVE_BLKID_PROBE_GET_TOPOLOGY, 1,
+ [Define to 1 if blkid has blkid_probe_get_topology]))
+ AC_CHECK_LIB(blkid, blkid_probe_enable_partitions,
+ AC_DEFINE(HAVE_BLKID_PROBE_ENABLE_PARTITIONS, 1,
+ [Define to 1 if blkid has blkid_probe_enable_partitions]))
fi
dnl
if test -n "$DLOPEN_LIB" ; then
__secure_getenv
add_key
backtrace
- blkid_probe_get_topology
- blkid_probe_enable_partitions
chflags
dlopen
fadvise64
;;
esac
dnl
+dnl Check the available mount options
+dnl
+AX_CHECK_MOUNT_OPT(nosuid)
+AX_CHECK_MOUNT_OPT(nodev)
dnl Enable LTO for all packages
dnl
AC_ARG_ENABLE([lto],
[ --enable-lto enable link time optimization],,
-enable_lto=probe)
+enable_lto=no)
if test "$enable_lto" = "yes" || test "$enable_lto" = "probe"; then
AC_MSG_CHECKING([if C compiler supports LTO])
OLD_CFLAGS="$CFLAGS"
OLD_LDFLAGS="$LDFLAGS"
- LTO_FLAGS="-flto -ffat-lto-objects"
+ LTO_FLAGS="-g -flto -ffat-lto-objects"
CFLAGS="$CFLAGS $LTO_FLAGS"
LDFLAGS="$LDFLAGS $LTO_FLAGS"
AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
AC_MSG_ERROR([ADDRSAN not supported by compiler.])
fi
dnl
+dnl Enable THREADSAN for all packages
+dnl
+AC_ARG_ENABLE([threadsan],
+[ --enable-threadsan enable thread sanitizer],,
+enable_threadsan=no)
+if test "$enable_threadsan" = "yes" || test "$enable_threadsan" = "probe"; then
+ AC_MSG_CHECKING([if C compiler supports THREADSAN])
+ OLD_CFLAGS="$CFLAGS"
+ OLD_LDFLAGS="$LDFLAGS"
+ THREADSAN_FLAGS="-fsanitize=thread"
+ CFLAGS="$CFLAGS $THREADSAN_FLAGS"
+ LDFLAGS="$LDFLAGS $THREADSAN_FLAGS"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
+ [AC_MSG_RESULT([yes])]
+ [threadsan_cflags=$THREADSAN_FLAGS]
+ [threadsan_ldflags=$THREADSAN_FLAGS]
+ [have_threadsan=yes],
+ [AC_MSG_RESULT([no])])
+ CFLAGS="${OLD_CFLAGS}"
+ LDFLAGS="${OLD_LDFLAGS}"
+ AC_SUBST(have_threadsan)
+ AC_SUBST(threadsan_cflags)
+ AC_SUBST(threadsan_ldflags)
+fi
+if test "$enable_threadsan" = "yes" && test "$have_threadsan" != "yes"; then
+ AC_MSG_ERROR([THREADSAN not supported by compiler.])
+fi
+if test "$have_threadsan" = "yes" && test "$have_addrsan" = "yes"; then
+ AC_MSG_WARN([ADDRSAN and THREADSAN are not known to work together.])
+fi
+dnl
dnl OS-specific uncomment control
dnl
LINUX_CMT="#"
INCLUDES="$INCLUDES -D_REENTRANT"
fi
AC_SUBST(INCLUDES)
-AM_MKINSTALLDIRS
dnl
dnl Build CFLAGS
dnl
AS_IF([test "x${with_crond_dir}" = "xyes"],
[
AS_IF([test -d "/etc/cron.d"],
- [with_crond_dir="/etc/cron.d"])
+ [with_crond_dir="/etc/cron.d"],
+ [have_crond="no"; with_crond_dir=""])
])
AC_MSG_CHECKING([for system crontab dir])
crond_dir="${with_crond_dir}"
blkid_out_list="lib/blkid/Makefile lib/blkid/blkid.pc \
lib/blkid/blkid_types.h"
fi
-for i in MCONFIG Makefile e2fsprogs.spec \
+for i in MCONFIG Makefile \
util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \