From: Eric Biggers Date: Thu, 22 Dec 2016 15:31:29 +0000 (-0600) Subject: Fix building xfsprogs on 32-bit platforms X-Git-Tag: v4.9.0-rc1~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5c0599b721d1d232d2e400f357abdf2736f24a97;p=thirdparty%2Fxfsprogs-dev.git Fix building xfsprogs on 32-bit platforms xfslibs now requires that its users enable transparent largefile support. This broke building xfsprogs on 32-bit Linux (with glibc) because _FILE_OFFSET_BITS=64 was not getting defined. Although the autoconf macro AC_SYS_LARGEFILE was intended to define it, this didn't work because AC_SYS_LARGEFILE will only define _FILE_OFFSET_BITS in a config header, which doesn't work for xfsprogs because not all .c files include platform_defs.h as their first include. Also, platform_defs.h.in is not generated by autoheader and didn't contain a template for _FILE_OFFSET_BITS. Therefore, to fix the problem remove the useless autoconf macros and instead add -D_FILE_OFFSET_BITS=64 to CFLAGS in builddefs.in. Use CFLAGS rather than PCFLAGS because this definition could be needed by platforms other than "linux", and it doesn't hurt to always define it. Signed-off-by: Eric Biggers Reviewed-by: Christoph Hellwig Reviewed-by: Felix Janda Signed-off-by: Eric Sandeen --- diff --git a/configure.ac b/configure.ac index b88ab7f16..ee918d131 100644 --- a/configure.ac +++ b/configure.ac @@ -107,9 +107,6 @@ AC_PACKAGE_UTILITIES(xfsprogs) AC_MULTILIB($enable_lib64) AC_RT($enable_librt) -AC_SYS_LARGEFILE -AC_NEED_LFS - AC_PACKAGE_NEED_UUID_H AC_PACKAGE_NEED_UUIDCOMPARE diff --git a/include/builddefs.in b/include/builddefs.in index aeb29059a..521907123 100644 --- a/include/builddefs.in +++ b/include/builddefs.in @@ -25,7 +25,7 @@ OPTIMIZER = @opt_build@ MALLOCLIB = @malloc_lib@ LOADERFLAGS = @LDFLAGS@ LTLDFLAGS = @LDFLAGS@ -CFLAGS = @CFLAGS@ +CFLAGS = @CFLAGS@ -D_FILE_OFFSET_BITS=64 LIBRT = @librt@ LIBUUID = @libuuid@ diff --git a/m4/package_libcdev.m4 b/m4/package_libcdev.m4 index e3c59d832..7d5a42d2a 100644 --- a/m4/package_libcdev.m4 +++ b/m4/package_libcdev.m4 @@ -257,22 +257,6 @@ AC_DEFUN([AC_HAVE_MREMAP], AC_SUBST(have_mremap) ]) -# -# Check if transparent LFS is enabled -# -AC_DEFUN([AC_NEED_LFS], - [ AC_MSG_CHECKING([whether large file support works]) - AC_TRY_COMPILE([ -#include - ], [ - int i[sizeof(off_t)-8]; - ], AC_MSG_RESULT(yes), - [AC_MSG_RESULT(no) - echo - echo 'FATAL ERROR: C library does not support transparent LFS.' - exit 1]) - ]) - # # Check if we need to override the system struct fsxattr with # the internal definition. This /only/ happens if the system