From fc392c939b9a18959482f588aff0afc29dd6d30a Mon Sep 17 00:00:00 2001
From: Romain Naour <romain.naour@openwide.fr>
Date: Fri, 23 Jan 2015 22:20:18 +0100
Subject: [PATCH] unix/configure: borrow the LFS test from autotools.

Infozip's LFS check can't work for cross-compilation
since it try to run a target's binary on the host system.

Instead, use to LFS test used by autotools which is a
compilation test.
(see autotools/lib/autoconf/specific.m4)

Reported-by: Richard Genoud <richard.genoud@gmail.com>
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
---
 unix/configure | 51 ++++++++++++++++++---------------------------------
 1 file changed, 18 insertions(+), 33 deletions(-)

diff --git a/unix/configure b/unix/configure
index 7bfc9eb..588f269 100644
--- a/unix/configure
+++ b/unix/configure
@@ -237,9 +237,8 @@ _EOF_
 $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
 [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_OFF_T"
 
-# Now we set the 64-bit file environment and check the size of off_t
-# Added 11/4/2003 EG
-# Revised 8/12/2004 EG
+# LFS check borrowed from autotools sources
+# lib/autoconf/specific.m4
 
 echo Check for Large File Support
 cat > conftest.c << _EOF_
@@ -247,24 +246,22 @@ cat > conftest.c << _EOF_
 # define _LARGEFILE64_SOURCE
 # define _FILE_OFFSET_BITS 64       /* select default interface as 64 bit */
 # define _LARGE_FILES        /* some OSes need this for 64-bit off_t */
+
 #include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <stdio.h>
-int main()
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
 {
-  off_t offset;
-  struct stat s;
-  /* see if have 64-bit off_t */
-  if (sizeof(offset) < 8)
-    return 1;
-  printf("  off_t is %d bytes\n", sizeof(off_t));
-  /* see if have 64-bit stat */
-  if (sizeof(s.st_size) < 8) {
-    printf("  s.st_size is %d bytes\n", sizeof(s.st_size));
-    return 2;
-  }
-  return 3;
+
+  ;
+  return 0;
 }
 _EOF_
 # compile it
@@ -272,22 +269,10 @@ $CC -o conftest conftest.c >/dev/null 2>/dev/null
 if [ $? -ne 0 ]; then
   echo -- no Large File Support
 else
-# run it
-  ./conftest
-  r=$?
-  if [ $r -eq 1 ]; then
-    echo -- no Large File Support - no 64-bit off_t
-  elif [ $r -eq 2 ]; then
-    echo -- no Large File Support - no 64-bit stat
-  elif [ $r -eq 3 ]; then
-    echo -- yes we have Large File Support!
-    CFLAGS="${CFLAGS} -DLARGE_FILE_SUPPORT"
-  else
-    echo -- no Large File Support - conftest returned $r
-  fi
+      echo -- yes we have Large File Support!
+      CFLAGS="${CFLAGS} -DLARGE_FILE_SUPPORT"
 fi
 
-
 # Check for wide char for Unicode support
 # Added 11/24/2005 EG
 
-- 
1.9.3

