summaryrefslogtreecommitdiffstats
path: root/c++/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'c++/configure.in')
-rw-r--r--c++/configure.in48
1 files changed, 48 insertions, 0 deletions
diff --git a/c++/configure.in b/c++/configure.in
index c46e53c..5c08201 100644
--- a/c++/configure.in
+++ b/c++/configure.in
@@ -281,6 +281,54 @@ else
fi
AC_SUBST(LT_STATIC_EXEC)
+case "$host_cpu-$host_vendor-$host_os" in
+ *linux*)
+ dnl ----------------------------------------------------------------------
+ dnl Enable large file support on linux? Store the result in the LINUX_LFS
+ dnl variable for posterity
+ AC_ARG_ENABLE(linux-lfs,
+ [ --enable-linux-lfs Enable support for large (64-bit) files on Linux.
+ [default=check]])
+
+ LINUX_LFS="no"
+ case "X-$enable_linux_lfs" in
+ X-yes)
+ LINUX_LFS=yes
+ ;;
+ X-no)
+ ;;
+ X-|*)
+ AC_CHECK_FUNCS(getdents64,
+ dnl Add the large file support flags to the
+ dnl CXXFLAGS macro if we're on a Linux system
+ dnl which austensibly supports LFS. (We think it
+ dnl does if it has the `getdents64' syscall).
+ LINUX_LFS=yes)
+ ;;
+ esac
+
+ AC_MSG_CHECKING(for large file support on linux mode)
+ if test "X$LINUX_LFS" = "Xyes"; then
+ AC_MSG_RESULT(enabled)
+
+ CXXFLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE $CXXFLAGS"
+ else
+ AC_MSG_RESULT(disabled)
+ fi
+
+ dnl Add POSIX support on Linux systems, so <features.h> defines
+ dnl __USE_POSIX, which is required to get the prototype for fdopen
+ dnl defined correctly in <stdio.h>
+ CXXFLAGS="-D_POSIX_SOURCE $CXXFLAGS"
+
+ dnl Also add BSD support on Linux systems, so <features.h> defines
+ dnl __USE_BSD, which is required to get the prototype for strdup
+ dnl defined correctly in <string.h> and snprintf & vsnprintf defined
+ dnl correctly in <stdio.h>
+ CXXFLAGS="-D_BSD_SOURCE $CXXFLAGS"
+ ;;
+esac
+
dnl ----------------------------------------------------------------------
dnl Checks for compiler characteristics.
dnl