| awk '{print $3}' | tr \" " " | awk '{print $1}'`
DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \
| tr \" " "`
-E2FSPROGS_DAY=`echo $DATE | awk -F- '{print $1}'`
+E2FSPROGS_DAY=$(echo $DATE | awk -F- '{print $1}' | sed -e '/^[[1-9]]$/s/^/0/')
MONTH=`echo $DATE | awk -F- '{print $2}'`
YEAR=`echo $DATE | awk -F- '{print $3}'`
case $E2FSPROGS_VERSION in
*-WIP|pre-*)
- E2FSPROGS_PKGVER="$base_ver~WIP-$E2FSPROGS_YEAR-$MONTH_NUM-$E2FSPROGS_DAY"
+ E2FSPROGS_PKGVER="$base_ver~WIP.$date_spec"
;;
*)
E2FSPROGS_PKGVER="$base_ver"
dnl Check to see if libdl exists for the sake of dlopen
dnl
DLOPEN_LIB=''
-AC_CHECK_LIB(dl, dlopen,
-[DLOPEN_LIB=-ldl
-AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if dlopen/libdl exists])])
+AC_CHECK_LIB(dl, dlopen,DLOPEN_LIB=-ldl)
AC_SUBST(DLOPEN_LIB)
dnl
AC_ARG_WITH([cc],
AC_MSG_RESULT([Enabling gcov support])
fi
)
-
+dnl
+dnl handle --enable-hardening
+dnl
+CFLAGS_SHLIB="${CFLAGS_SHLIB:-$CFLAGS}"
+CFLAGS_STLIB="${CFLAGS_STLIB:-$CFLAGS}"
+LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS}
+LDFLAGS_STATIC=${LDFLAGS_STATIC:-$LDFLAGS}
+AC_ARG_ENABLE([hardening],
+[ --enable-hardening build for coverage testing using gcov],
+if test "$enableval" = "yes"
+then
+ HARDEN_CFLAGS="-D_FORTIFY_SOURCE=2 -fstack-protector-strong"
+ HARDEN_LDFLAGS=["-Wl,-z,relro -Wl,-z,now"]
+ CFLAGS="$CFLAGS $HARDEN_CFLAGS -fPIE"
+ CFLAGS_SHLIB="$CFLAGS_SHLIB $HARDEN_CFLAGS"
+ CFLAGS_STLIB="$CFLAGS_STLIB $HARDEN_CFLAGS -fPIE"
+ LDFLAGS="$LDFLAGS $HARDEN_LDFLAGS -fPIE -pie"
+ LDFLAGS_STATIC="$LDFLAGS_STATIC $HARDEN_LDFLAGS"
+ LDFLAGS_SHLIB="$LDFLAGS_SHLIB $HARDEN_LDFLAGS"
+ AC_MSG_RESULT([Enabling hardening support])
+fi
+)
dnl
dnl Substitute library extensions
dnl
AC_SUBST(DEPPROFILED_LIBBLKID)
AC_SUBST(BLKID_CMT)
dnl
-dnl handle --enable-quota
-dnl
-QUOTA_MAN_COMMENT='.\"'
-QUOTA_CMT=
-AC_SUBST(QUOTA_MAN_COMMENT)
-PKG_PROG_PKG_CONFIG
-AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
-AC_ARG_ENABLE([quota],
-[ --disable-quota disable quota support],
-if test "$enableval" = "no"
-then
- QUOTA_CMT=#
- AC_MSG_RESULT([Disabling quota support])
-else
- QUOTA_CMT=
- AC_DEFINE(CONFIG_QUOTA, 1)
- AC_MSG_RESULT([Enabling quota support])
- QUOTA_MAN_COMMENT=""
-fi
-,
-QUOTA_CMT=
-QUOTA_MAN_COMMENT=""
-AC_DEFINE(CONFIG_QUOTA, 1)
-AC_MSG_RESULT([Enabling quota support by default])
-)
-dnl
-dnl Define stuff expected for quota library
-dnl
-LIBQUOTA='$(LIB)/libquota'$LIB_EXT
-DEPLIBQUOTA=$LIBQUOTA
-STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
-DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
-PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
-DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
-AC_SUBST(LIBQUOTA)
-AC_SUBST(DEPLIBQUOTA)
-AC_SUBST(STATIC_LIBQUOTA)
-AC_SUBST(DEPSTATIC_LIBQUOTA)
-AC_SUBST(PROFILED_LIBQUOTA)
-AC_SUBST(DEPPROFILED_LIBQUOTA)
-AC_SUBST(QUOTA_CMT)
-dnl
dnl handle --disable-backtrace
dnl
AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
AC_DEFINE(CONFIG_MMP, 1)
)
dnl
+dnl handle --disable-tdb
+dnl
+AH_TEMPLATE([CONFIG_TDB], [Define to 1 to enable tdb support])
+AC_ARG_ENABLE([tdb],
+[ --disable-tdb disable tdb support],
+if test "$enableval" = "no"
+then
+ AC_MSG_RESULT([Disabling tdb support])
+ TDB_CMT="#"
+ TDB_MAN_COMMENT='.\"'
+else
+ AC_MSG_RESULT([Enabling tdb support])
+ AC_DEFINE(CONFIG_TDB, 1)
+ TDB_CMT=""
+ TDB_MAN_COMMENT=""
+fi
+,
+AC_MSG_RESULT([Enabling mmp support by default])
+AC_DEFINE(CONFIG_TDB, 1)
+TDB_CMT=""
+TDB_MAN_COMMENT=""
+)
+AC_SUBST(TDB_CMT)
+AC_SUBST(TDB_MAN_COMMENT)
+dnl
dnl handle --disable-bmap-stats
dnl
AH_TEMPLATE([ENABLE_BMAP_STATS], [Define to 1 to enable bitmap stats.])
linux/fd.h
linux/major.h
linux/loop.h
+ linux/types.h
net/if_dl.h
netinet/in.h
sys/acl.h
AC_CHECK_SIZEOF(long)
AC_CHECK_SIZEOF(long long)
AC_CHECK_SIZEOF(off_t)
+AC_CHECK_SIZEOF(time_t)
SIZEOF_SHORT=$ac_cv_sizeof_short
SIZEOF_INT=$ac_cv_sizeof_int
SIZEOF_LONG=$ac_cv_sizeof_long
SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
SIZEOF_OFF_T=$ac_cv_sizeof_off_t
+SIZEOF_TIME_T=$ac_cv_sizeof_time_t
AC_SUBST(SIZEOF_SHORT)
AC_SUBST(SIZEOF_INT)
AC_SUBST(SIZEOF_LONG)
AC_SUBST(SIZEOF_LONG_LONG)
AC_SUBST(SIZEOF_OFF_T)
+AC_SUBST(SIZEOF_TIME_T)
AC_C_BIGENDIAN
if test $cross_compiling = no; then
BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
AC_SEARCH_LIBS([blkid_probe_all], [blkid])
fi
dnl
+if test -n "$DLOPEN_LIB" ; then
+ ac_cv_func_dlopen=yes
+fi
AC_CHECK_FUNCS(m4_flatten([
__secure_getenv
add_key
blkid_probe_get_topology
blkid_probe_enable_partitions
chflags
+ dlopen
fadvise64
fallocate
fallocate64
fchown
+ fcntl
fdatasync
fstat64
+ fsync
ftruncate64
futimes
getcwd
dnl
AC_CHECK_LIB(magic, magic_file, [MAGIC_LIB=-lmagic
AC_CHECK_HEADERS([magic.h])])
-if test "$ac_cv_lib_dl_dlopen" = yes ; then
+if test "$ac_cv_func_dlopen" = yes ; then
MAGIC_LIB=$DLOPEN_LIB
fi
AC_SUBST(MAGIC_LIB)
dnl
+dnl Check to see if librt is required for clock_gettime() (glibc < 2.17)
+dnl
+AC_CHECK_LIB(rt, clock_gettime, [CLOCK_GETTIME_LIB=-lrt])
+AC_SUBST(CLOCK_GETTIME_LIB)
+dnl
dnl Check to see if the FUSE library is -lfuse or -losxfuse
dnl
FUSE_CMT=
dnl
AC_MSG_CHECKING([whether we can link with -static])
AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
-[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
+[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS_STATIC -static"
AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
LDFLAGS=$SAVE_LDFLAGS])
;;
esac
AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
-LDFLAG_STATIC=
if test $ac_cv_e2fsprogs_use_static = yes; then
- LDFLAG_STATIC=-static
+ LDFLAGS_STATIC="$LDFLAGS_STATIC -static"
fi
-AC_SUBST(LDFLAG_STATIC)
+AC_SUBST(LDFLAGS_STATIC)
dnl
dnl Work around mysterious Darwin / GNU libintl problem
dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
;;
esac
dnl
-dnl Make the ss and et directories work correctly.
-dnl
-SS_DIR=`cd ${srcdir}/lib/ss; pwd`
-ET_DIR=`cd ${srcdir}/lib/et; pwd`
-AC_SUBST(SS_DIR)
-AC_SUBST(ET_DIR)
-dnl
dnl Only try to run the test suite if we're not cross compiling.
dnl
if test "$cross_compiling" = yes ; then
AC_SUBST(BUILD_CFLAGS)
AC_SUBST(BUILD_LDFLAGS)
dnl
+dnl Define CFLAGS and LDFLAGS for shared libraries
+dnl
+CFLAGS_SHLIB=${CFLAGS_SHLIB:-$CFLAGS}
+CFLAGS_STLIB=${CFLAGS_STLIB:-$CFLAGS}
+LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS}
+AC_SUBST(CFLAGS_SHLIB)
+AC_SUBST(CFLAGS_STLIB)
+AC_SUBST(LDFLAGS_SHLIB)
+dnl
dnl Make our output files, being sure that we create the some miscellaneous
dnl directories
dnl
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 \
- $uuid_out_list $blkid_out_list lib/quota/Makefile \
+ $uuid_out_list $blkid_out_list lib/support/Makefile \
lib/ss/ss.pc lib/et/com_err.pc lib/e2p/e2p.pc lib/ext2fs/ext2fs.pc \
misc/Makefile ext2ed/Makefile e2fsck/Makefile \
debugfs/Makefile tests/Makefile tests/progs/Makefile \