# SYNOPSIS
#
# AMANDA_SETUP_LFS
#
# OVERVIEW
#
# Set up for large file suport on this system. Besides adding compiler flags,
# defines NEED_RESETOFS if the tape device's offset must be reset before it reaches
# 2GB (a Linux kernel bug in systems without LFS support).
#
AC_DEFUN([AMANDA_SETUP_LFS],
[
AC_REQUIRE([AMANDA_PROG_GETCONF])
AC_REQUIRE([AC_SYS_LARGEFILE])
# we use 'getconf', if it exists, to get the relevant
# compiler flags.
GETCONF_LFS="LFS"
case "$host" in
*-hp-*) GETCONF_LFS="XBS5_ILP32_OFFBIG" ;;
*-ibm-aix*) GETCONF_LFS="XBS5_ILP32_OFFBIG" ;;
esac
# Checks for compilers, typedefs, structures, and compiler characteristics.
# Check for large file compilation environment.
NEED_RESETOFS=yes
AC_CACHE_CHECK([for large file compilation CFLAGS],
amanda_cv_LFS_CFLAGS,
[
amanda_cv_LFS_CFLAGS=
if test "$GETCONF"; then
if $GETCONF ${GETCONF_LFS}_CFLAGS >/dev/null 2>&1; then
amanda_cv_LFS_CFLAGS=`$GETCONF ${GETCONF_LFS}_CFLAGS 2>/dev/null`
NEED_RESETOFS=no
fi
fi
]
)
AMANDA_ADD_CFLAGS([$amanda_cv_LFS_CFLAGS])
AC_CACHE_CHECK(
[for large file compilation LDFLAGS],
amanda_cv_LFS_LDFLAGS,
[
amanda_cv_LFS_LDFLAGS=
if test "$GETCONF"; then
if $GETCONF ${GETCONF_LFS}_LDFLAGS >/dev/null 2>&1; then
amanda_cv_LFS_LDFLAGS=`$GETCONF ${GETCONF_LFS}_LDFLAGS 2>/dev/null`
NEED_RESETOFS=no
fi
fi
]
)
AMANDA_ADD_LDFLAGS([$amanda_cv_LFS_LDFLAGS])
AC_CACHE_CHECK(
[for large file compilation LIBS],
amanda_cv_LFS_LIBS,
[
amanda_cv_LFS_LIBS=
if test "$GETCONF"; then
if $GETCONF ${GETCONF_LFS}_LIBS >/dev/null 2>&1; then
amanda_cv_LFS_LIBS=`$GETCONF ${GETCONF_LFS}_LIBS 2>/dev/null`
NEED_RESETOFS=no
fi
fi
]
)
AMANDA_ADD_LIBS([$amanda_cv_LFS_LIBS])
if test x"$NEED_RESETOFS" = x"yes"; then
AC_DEFINE(NEED_RESETOFS,1,
[Define if we have to reset tape offsets when reaching 2GB. ])
fi
])