lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

001-unix-configure-borrow-the-LFS-test-from-autotools.patch (2744B)


      1 From fc392c939b9a18959482f588aff0afc29dd6d30a Mon Sep 17 00:00:00 2001
      2 From: Romain Naour <romain.naour at openwide.fr>
      3 Date: Fri, 23 Jan 2015 22:20:18 +0100
      4 Subject: [PATCH 6/6] unix/configure: borrow the LFS test from autotools.
      5 
      6 Infozip's LFS check can't work for cross-compilation
      7 since it try to run a target's binary on the host system.
      8 
      9 Instead, use to LFS test used by autotools which is a
     10 compilation test.
     11 (see autotools/lib/autoconf/specific.m4)
     12 
     13 Reported-by: Richard Genoud <richard.genoud at gmail.com>
     14 Signed-off-by: Romain Naour <romain.naour at openwide.fr>
     15 ---
     16  configure |   46 +++++++++++++++-------------------------------
     17  1 file changed, 15 insertions(+), 31 deletions(-)
     18 
     19 diff --rupN a/unix/configure b/unix/configure
     20 --- a/unix/configure
     21 +++ b/unix/configure
     22 @@ -399,9 +399,8 @@ else
     23  fi
     24  
     25  
     26 -# Now we set the 64-bit file environment and check the size of off_t
     27 -# Added 11/4/2003 EG
     28 -# Revised 8/12/2004 EG
     29 +# LFS check borrowed from autotools sources
     30 +# lib/autoconf/specific.m4
     31  
     32  echo Check for Large File Support
     33  cat > conftest.c << _EOF_
     34 @@ -410,23 +409,19 @@ cat > conftest.c << _EOF_
     35  # define _FILE_OFFSET_BITS 64       /* select default interface as 64 bit */
     36  # define _LARGE_FILES        /* some OSes need this for 64-bit off_t */
     37  #include <sys/types.h>
     38 -#include <sys/stat.h>
     39 -#include <unistd.h>
     40 -#include <stdio.h>
     41 +
     42 + /* Check that off_t can represent 2**63 - 1 correctly.
     43 +    We can't simply define LARGE_OFF_T to be 9223372036854775807,
     44 +    since some C++ compilers masquerading as C compilers
     45 +    incorrectly reject 9223372036854775807.  */
     46 +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
     47 +  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
     48 +		       && LARGE_OFF_T % 2147483647 == 1)
     49 +		      ? 1 : -1];
     50 +
     51  int main()
     52  {
     53 -  off_t offset;
     54 -  struct stat s;
     55 -  /* see if have 64-bit off_t */
     56 -  if (sizeof(offset) < 8)
     57 -    return 1;
     58 -  printf("  off_t is %d bytes\n", sizeof(off_t));
     59 -  /* see if have 64-bit stat */
     60 -  if (sizeof(s.st_size) < 8) {
     61 -    printf("  s.st_size is %d bytes\n", sizeof(s.st_size));
     62 -    return 2;
     63 -  }
     64 -  return 3;
     65 +  return 0;
     66  }
     67  _EOF_
     68  # compile it
     69 @@ -434,19 +429,8 @@ $CC -o conftest conftest.c >/dev/null 2>
     70  if [ $? -ne 0 ]; then
     71    echo -- no Large File Support
     72  else
     73 -# run it
     74 -  ./conftest
     75 -  r=$?
     76 -  if [ $r -eq 1 ]; then
     77 -    echo -- no Large File Support - no 64-bit off_t
     78 -  elif [ $r -eq 2 ]; then
     79 -    echo -- no Large File Support - no 64-bit stat
     80 -  elif [ $r -eq 3 ]; then
     81 -    echo -- yes we have Large File Support!
     82 -    CFLAGS="${CFLAGS} -DLARGE_FILE_SUPPORT"
     83 -  else
     84 -    echo -- no Large File Support - conftest returned $r
     85 -  fi
     86 +  echo -- yes we have Large File Support!
     87 +  CFLAGS="${CFLAGS} -DLARGE_FILE_SUPPORT"
     88  fi
     89  
     90