e190683
--- ./configure.orig	2014-10-28 12:00:00.000000000 -0600
e190683
+++ ./configure	2014-10-28 12:00:00.000000000 -0600
Jerry James b08b3a4
@@ -769,6 +769,7 @@ enable_static
Jerry James b08b3a4
 enable_pic
Jerry James b08b3a4
 enable_oldgmp
Jerry James b08b3a4
 enable_dynsysgmp
Jerry James b08b3a4
+enable_largefile
Jerry James b08b3a4
 with_x
Jerry James b08b3a4
 enable_readline
Jerry James b08b3a4
 enable_ansi
Jerry James b08b3a4
@@ -1440,6 +1441,7 @@ debug safecdr code
Jerry James e1ab74d
 
Jerry James b08b3a4
  --enable-dynsysgmp will link against the system libgmp3 overriding certain functions with patched versions from the local source
Jerry James e1ab74d
 
Jerry James b08b3a4
+  --disable-largefile     omit support for large files
Jerry James b08b3a4
 --enable-readline    enables command line completion via the readline library
Jerry James b08b3a4
 --enable-ansi builds a large gcl aiming for ansi compliance,
Jerry James b08b3a4
 		    --disable-ansi builds the smaller traditional CLtL1 image
Jerry James b08b3a4
@@ -5157,6 +5159,205 @@ ac_link='$CC -o conftest$ac_exeext $CFLA
Jerry James b08b3a4
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
Jerry James b08b3a4
 
Jerry James b08b3a4
 
Jerry James b08b3a4
+# Check whether --enable-largefile was given.
Jerry James b08b3a4
+if test "${enable_largefile+set}" = set; then :
Jerry James b08b3a4
+  enableval=$enable_largefile;
Jerry James b08b3a4
+fi
Jerry James b08b3a4
+
Jerry James b08b3a4
+if test "$enable_largefile" != no; then
Jerry James b08b3a4
+
Jerry James b08b3a4
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
Jerry James b08b3a4
+$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
Jerry James b08b3a4
+if ${ac_cv_sys_largefile_CC+:} false; then :
Jerry James b08b3a4
+  $as_echo_n "(cached) " >&6
Jerry James b08b3a4
+else
Jerry James b08b3a4
+  ac_cv_sys_largefile_CC=no
Jerry James b08b3a4
+     if test "$GCC" != yes; then
Jerry James b08b3a4
+       ac_save_CC=$CC
Jerry James b08b3a4
+       while :; do
Jerry James b08b3a4
+	 # IRIX 6.2 and later do not support large files by default,
Jerry James b08b3a4
+	 # so use the C compiler's -n32 option if that helps.
Jerry James b08b3a4
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Jerry James b08b3a4
+/* end confdefs.h.  */
Jerry James b08b3a4
+#include <sys/types.h>
Jerry James b08b3a4
+ /* Check that off_t can represent 2**63 - 1 correctly.
Jerry James b08b3a4
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
Jerry James b08b3a4
+    since some C++ compilers masquerading as C compilers
Jerry James b08b3a4
+    incorrectly reject 9223372036854775807.  */
Jerry James b08b3a4
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
Jerry James b08b3a4
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
Jerry James b08b3a4
+		       && LARGE_OFF_T % 2147483647 == 1)
Jerry James b08b3a4
+		      ? 1 : -1];
Jerry James b08b3a4
+int
Jerry James b08b3a4
+main ()
Jerry James b08b3a4
+{
Jerry James b08b3a4
+
Jerry James b08b3a4
+  ;
Jerry James b08b3a4
+  return 0;
Jerry James b08b3a4
+}
Jerry James b08b3a4
+_ACEOF
Jerry James b08b3a4
+	 if ac_fn_c_try_compile "$LINENO"; then :
Jerry James b08b3a4
+  break
Jerry James b08b3a4
+fi
Jerry James b08b3a4
+rm -f core conftest.err conftest.$ac_objext
Jerry James b08b3a4
+	 CC="$CC -n32"
Jerry James b08b3a4
+	 if ac_fn_c_try_compile "$LINENO"; then :
Jerry James b08b3a4
+  ac_cv_sys_largefile_CC=' -n32'; break
Jerry James b08b3a4
+fi
Jerry James b08b3a4
+rm -f core conftest.err conftest.$ac_objext
Jerry James b08b3a4
+	 break
Jerry James b08b3a4
+       done
Jerry James b08b3a4
+       CC=$ac_save_CC
Jerry James b08b3a4
+       rm -f conftest.$ac_ext
Jerry James b08b3a4
+    fi
Jerry James b08b3a4
+fi
Jerry James b08b3a4
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
Jerry James b08b3a4
+$as_echo "$ac_cv_sys_largefile_CC" >&6; }
Jerry James b08b3a4
+  if test "$ac_cv_sys_largefile_CC" != no; then
Jerry James b08b3a4
+    CC=$CC$ac_cv_sys_largefile_CC
Jerry James b08b3a4
+  fi
Jerry James b08b3a4
+
Jerry James b08b3a4
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
Jerry James b08b3a4
+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
Jerry James b08b3a4
+if ${ac_cv_sys_file_offset_bits+:} false; then :
Jerry James b08b3a4
+  $as_echo_n "(cached) " >&6
Jerry James b08b3a4
+else
Jerry James b08b3a4
+  while :; do
Jerry James b08b3a4
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Jerry James b08b3a4
+/* end confdefs.h.  */
Jerry James b08b3a4
+#include <sys/types.h>
Jerry James b08b3a4
+ /* Check that off_t can represent 2**63 - 1 correctly.
Jerry James b08b3a4
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
Jerry James b08b3a4
+    since some C++ compilers masquerading as C compilers
Jerry James b08b3a4
+    incorrectly reject 9223372036854775807.  */
Jerry James b08b3a4
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
Jerry James b08b3a4
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
Jerry James b08b3a4
+		       && LARGE_OFF_T % 2147483647 == 1)
Jerry James b08b3a4
+		      ? 1 : -1];
Jerry James b08b3a4
+int
Jerry James b08b3a4
+main ()
Jerry James b08b3a4
+{
Jerry James b08b3a4
+
Jerry James b08b3a4
+  ;
Jerry James b08b3a4
+  return 0;
Jerry James b08b3a4
+}
Jerry James b08b3a4
+_ACEOF
Jerry James b08b3a4
+if ac_fn_c_try_compile "$LINENO"; then :
Jerry James b08b3a4
+  ac_cv_sys_file_offset_bits=no; break
Jerry James b08b3a4
+fi
Jerry James b08b3a4
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
Jerry James b08b3a4
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Jerry James b08b3a4
+/* end confdefs.h.  */
Jerry James b08b3a4
+#define _FILE_OFFSET_BITS 64
Jerry James b08b3a4
+#include <sys/types.h>
Jerry James b08b3a4
+ /* Check that off_t can represent 2**63 - 1 correctly.
Jerry James b08b3a4
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
Jerry James b08b3a4
+    since some C++ compilers masquerading as C compilers
Jerry James b08b3a4
+    incorrectly reject 9223372036854775807.  */
Jerry James b08b3a4
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
Jerry James b08b3a4
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
Jerry James b08b3a4
+		       && LARGE_OFF_T % 2147483647 == 1)
Jerry James b08b3a4
+		      ? 1 : -1];
Jerry James b08b3a4
+int
Jerry James b08b3a4
+main ()
Jerry James b08b3a4
+{
Jerry James b08b3a4
+
Jerry James b08b3a4
+  ;
Jerry James b08b3a4
+  return 0;
Jerry James b08b3a4
+}
Jerry James b08b3a4
+_ACEOF
Jerry James b08b3a4
+if ac_fn_c_try_compile "$LINENO"; then :
Jerry James b08b3a4
+  ac_cv_sys_file_offset_bits=64; break
Jerry James b08b3a4
+fi
Jerry James b08b3a4
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
Jerry James b08b3a4
+  ac_cv_sys_file_offset_bits=unknown
Jerry James b08b3a4
+  break
Jerry James b08b3a4
+done
Jerry James b08b3a4
+fi
Jerry James b08b3a4
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
Jerry James b08b3a4
+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
Jerry James b08b3a4
+case $ac_cv_sys_file_offset_bits in #(
Jerry James b08b3a4
+  no | unknown) ;;
Jerry James b08b3a4
+  *)
Jerry James b08b3a4
+cat >>confdefs.h <<_ACEOF
Jerry James b08b3a4
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
Jerry James b08b3a4
+_ACEOF
Jerry James b08b3a4
+;;
Jerry James b08b3a4
+esac
Jerry James b08b3a4
+rm -rf conftest*
Jerry James b08b3a4
+  if test $ac_cv_sys_file_offset_bits = unknown; then
Jerry James b08b3a4
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
Jerry James b08b3a4
+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
Jerry James b08b3a4
+if ${ac_cv_sys_large_files+:} false; then :
Jerry James b08b3a4
+  $as_echo_n "(cached) " >&6
Jerry James b08b3a4
+else
Jerry James b08b3a4
+  while :; do
Jerry James b08b3a4
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Jerry James b08b3a4
+/* end confdefs.h.  */
Jerry James b08b3a4
+#include <sys/types.h>
Jerry James b08b3a4
+ /* Check that off_t can represent 2**63 - 1 correctly.
Jerry James b08b3a4
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
Jerry James b08b3a4
+    since some C++ compilers masquerading as C compilers
Jerry James b08b3a4
+    incorrectly reject 9223372036854775807.  */
Jerry James b08b3a4
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
Jerry James b08b3a4
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
Jerry James b08b3a4
+		       && LARGE_OFF_T % 2147483647 == 1)
Jerry James b08b3a4
+		      ? 1 : -1];
Jerry James b08b3a4
+int
Jerry James b08b3a4
+main ()
Jerry James b08b3a4
+{
Jerry James b08b3a4
+
Jerry James b08b3a4
+  ;
Jerry James b08b3a4
+  return 0;
Jerry James b08b3a4
+}
Jerry James b08b3a4
+_ACEOF
Jerry James b08b3a4
+if ac_fn_c_try_compile "$LINENO"; then :
Jerry James b08b3a4
+  ac_cv_sys_large_files=no; break
Jerry James b08b3a4
+fi
Jerry James b08b3a4
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
Jerry James b08b3a4
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Jerry James b08b3a4
+/* end confdefs.h.  */
Jerry James b08b3a4
+#define _LARGE_FILES 1
Jerry James b08b3a4
+#include <sys/types.h>
Jerry James b08b3a4
+ /* Check that off_t can represent 2**63 - 1 correctly.
Jerry James b08b3a4
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
Jerry James b08b3a4
+    since some C++ compilers masquerading as C compilers
Jerry James b08b3a4
+    incorrectly reject 9223372036854775807.  */
Jerry James b08b3a4
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
Jerry James b08b3a4
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
Jerry James b08b3a4
+		       && LARGE_OFF_T % 2147483647 == 1)
Jerry James b08b3a4
+		      ? 1 : -1];
Jerry James b08b3a4
+int
Jerry James b08b3a4
+main ()
Jerry James b08b3a4
+{
Jerry James b08b3a4
+
Jerry James b08b3a4
+  ;
Jerry James b08b3a4
+  return 0;
Jerry James b08b3a4
+}
Jerry James b08b3a4
+_ACEOF
Jerry James b08b3a4
+if ac_fn_c_try_compile "$LINENO"; then :
Jerry James b08b3a4
+  ac_cv_sys_large_files=1; break
Jerry James b08b3a4
+fi
Jerry James b08b3a4
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
Jerry James b08b3a4
+  ac_cv_sys_large_files=unknown
Jerry James b08b3a4
+  break
Jerry James b08b3a4
+done
Jerry James b08b3a4
+fi
Jerry James b08b3a4
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
Jerry James b08b3a4
+$as_echo "$ac_cv_sys_large_files" >&6; }
Jerry James b08b3a4
+case $ac_cv_sys_large_files in #(
Jerry James b08b3a4
+  no | unknown) ;;
Jerry James b08b3a4
+  *)
Jerry James b08b3a4
+cat >>confdefs.h <<_ACEOF
Jerry James b08b3a4
+#define _LARGE_FILES $ac_cv_sys_large_files
Jerry James b08b3a4
+_ACEOF
Jerry James b08b3a4
+;;
Jerry James b08b3a4
+esac
Jerry James b08b3a4
+rm -rf conftest*
Jerry James b08b3a4
+  fi
Jerry James b08b3a4
+
Jerry James b08b3a4
+
Jerry James b08b3a4
+fi
Jerry James b08b3a4
 
Jerry James b08b3a4
 
Jerry James b08b3a4
 # can only test for numbers -- CM
e190683
--- ./configure.in.orig	2014-10-28 12:00:00.000000000 -0600
e190683
+++ ./configure.in	2014-10-28 12:00:00.000000000 -0600
e190683
@@ -472,7 +472,7 @@ AC_USE_SYSTEM_EXTENSIONS
e190683
 AC_PROG_CC
e190683
 AC_PROG_CPP
e190683
 AC_SUBST(CC)
e190683
-
e190683
+AC_SYS_LARGEFILE
e190683
 
e190683
 # can only test for numbers -- CM
e190683
 # if test "${GCC}" -eq "yes" ; then
e190683
--- ./h/linux.h.orig	2014-10-23 15:29:00.000000000 -0600
e190683
+++ ./h/linux.h	2014-10-28 12:00:00.000000000 -0600
Jerry James e1ab74d
@@ -12,13 +12,13 @@
Jerry James e1ab74d
 #include <link.h>
Jerry James e1ab74d
 #define SEEK_TO_END_OFILE(fp)\
Jerry James e1ab74d
   do { \
Jerry James e1ab74d
-	long offset = 0, endofelf; int j; \
Jerry James e1ab74d
+	off_t offset = 0, endofelf; int j; \
Jerry James e1ab74d
 	ElfW(Ehdr) eheader; ElfW(Shdr) shdr; \
Jerry James e1ab74d
-        fseek(fp, 0, SEEK_SET); \
Jerry James e1ab74d
+        fseeko(fp, 0, SEEK_SET); \
Jerry James e078710
         massert(1==fread(&eheader, sizeof(eheader), 1, fp));	      \
Jerry James e1ab74d
   /* in case the headers themselves come AFTER the actual sections */ \
Jerry James e1ab74d
 	endofelf=offset = eheader.e_shoff+ eheader.e_shentsize *eheader.e_shnum;\
Jerry James e1ab74d
-        fseek(fp, eheader.e_shoff, SEEK_SET); \
Jerry James e1ab74d
+        fseeko(fp, eheader.e_shoff, SEEK_SET); \
Jerry James e1ab74d
 	if ( eheader.e_shentsize != sizeof(ElfW(Shdr)) ) \
Jerry James e1ab74d
 	  { FEerror("Bad ELF section header size",0); } \
Jerry James e1ab74d
         for ( j = 0; j < eheader.e_shnum; j++ ) \
Jerry James e1ab74d
@@ -26,7 +26,7 @@
Jerry James e1ab74d
             if ( (shdr.sh_offset > offset) && (shdr.sh_type != SHT_NOBITS) ) \
Jerry James e1ab74d
 	      { offset = shdr.sh_offset; endofelf = offset+shdr.sh_size; } \
Jerry James e1ab74d
 	  } \
Jerry James e1ab74d
-	if ( fseek(fp, endofelf, SEEK_SET) ) \
Jerry James e1ab74d
+	if ( fseeko(fp, endofelf, SEEK_SET) ) \
Jerry James e1ab74d
 	    FEerror("Bad ELF file",0); \
Jerry James e1ab74d
       } while(0)
Jerry James e1ab74d
 
e190683
--- ./h/mp.h.orig	2014-10-23 15:29:00.000000000 -0600
e190683
+++ ./h/mp.h	2014-10-28 12:00:00.000000000 -0600
Jerry James e078710
@@ -33,6 +33,22 @@ typedef struct
Jerry James e1ab74d
             
Jerry James e1ab74d
 #define SI_TO_MP(x, temp) (mpz_set_si(MP(temp),(x)), MP(temp))
Jerry James e1ab74d
             
Jerry James e1ab74d
+#define C_INT_TO_OBJ(x) ({					\
Jerry James e1ab74d
+  object temp = big_fixnum1;					\
Jerry James e078710
+  if (x >= MOST_NEGATIVE_FIX && x <= MOST_POSITIVE_FIX)	\
Jerry James e1ab74d
+    temp = make_fixnum(x);					\
Jerry James e1ab74d
+  else if (sizeof(x) <= sizeof(long))				\
Jerry James e1ab74d
+    mpz_set_si(MP(big_fixnum1), x);				\
Jerry James e1ab74d
+  else if (x < 0) {						\
Jerry James e1ab74d
+    __typeof__(x) y = -x;					\
Jerry James e1ab74d
+    mpz_import(MP(big_fixnum2), 1U, 1, sizeof(x), 0, 0U, &y);	\
Jerry James e1ab74d
+    mpz_neg(MP(big_fixnum1), MP(big_fixnum2));			\
Jerry James e1ab74d
+  } else {							\
Jerry James e1ab74d
+    __typeof__(x) y = x;					\
Jerry James e1ab74d
+    mpz_import(MP(big_fixnum1), 1U, 1, sizeof(x), 0, 0U, &y);	\
Jerry James e1ab74d
+  }								\
Jerry James e1ab74d
+  temp;							\
Jerry James e1ab74d
+})
Jerry James e1ab74d
 
Jerry James e1ab74d
 #define INTEGER_TO_MP(x, temp ) \
Jerry James e1ab74d
   (type_of(x) == t_bignum ? MP(x) : SI_TO_MP(fix(x), temp))
Jerry James e078710
@@ -108,6 +124,20 @@ GEN subss();
Jerry James e1ab74d
 
Jerry James e1ab74d
 #define SI_TO_MP(x,ignore) stoi(x)
Jerry James e1ab74d
 
Jerry James e1ab74d
+#define C_INT_TO_OBJ(x) ({					\
Jerry James e1ab74d
+  object temp = big_fixnum1;					\
Jerry James e078710
+  if (x >= MOST_NEGATIVE_FIX && x <= MOST_POSITIVE_FIX)	\
Jerry James e1ab74d
+    temp = make_fixnum(x);					\
Jerry James e1ab74d
+  else if (sizeof(x) <= sizeof(long))				\
Jerry James e1ab74d
+    MP(big_fixnum1) = stoi(x);					\
Jerry James e1ab74d
+  else if (x < 0) {						\
Jerry James e1ab74d
+    __typeof__(x) y = -x;					\
Jerry James e1ab74d
+    MP(big_fixnum1) = uutoineg((y) >> (sizeof(ulong) * 8), (y) & (ulong)-1); \
Jerry James e1ab74d
+  } else							\
Jerry James e1ab74d
+    MP(big_fixnum1) = uutoi((x) >> (sizeof(ulong) * 8), (x) & (ulong)-1); \
Jerry James e1ab74d
+  temp;							\
Jerry James e1ab74d
+})
Jerry James b08b3a4
+
Jerry James b08b3a4
 #define INT_FLAG 0x1010000
Jerry James b08b3a4
 
Jerry James b08b3a4
 #define MP_ALLOCATED(x) (x)->big.big_length
e190683
--- ./h/protoize.h.orig	2014-10-23 15:29:00.000000000 -0600
e190683
+++ ./h/protoize.h	2014-10-28 12:00:00.000000000 -0600
Jerry James b08b3a4
@@ -512,7 +512,7 @@ typedef void (*funcvoid)(void);
Jerry James b08b3a4
 /* unixfsys.c:329:OF */ extern bool file_exists (object file); /* (file) object file; */
Jerry James b08b3a4
 /* unixfsys.c:359:OF */ extern FILE *backup_fopen (char *filename, char *option); /* (filename, option) char *filename; char *option; */
Jerry James b08b3a4
 /* unixfsys.c:359:OF */ extern FILE *fopen_not_dir (char *filename, char *option); /* (filename, option) char *filename; char *option; */
Jerry James b08b3a4
-/* unixfsys.c:372:OF */ extern int file_len (FILE *fp); /* (fp) FILE *fp; */
Jerry James b08b3a4
+/* unixfsys.c:372:OF */ extern off_t file_len (FILE *fp); /* (fp) FILE *fp; */
Jerry James b08b3a4
 /* unixfsys.c:382:OF */ extern object truename (object); /* () */
Jerry James b08b3a4
 /* unixfsys.c:382:OF */ extern void Ltruename (void); /* () */
Jerry James b08b3a4
 /* unixfsys.c:418:OF */ extern object fSsetenv (object variable, object value); /* (variable, value) object variable; object value; */
Jerry James b08b3a4
@@ -738,11 +738,11 @@ edit_double(int, double, int *, char *,
Jerry James b08b3a4
 void
Jerry James b08b3a4
 sethash(object,object,object);
Jerry James b08b3a4
 
Jerry James b08b3a4
-int
Jerry James b08b3a4
+off_t
Jerry James b08b3a4
 file_position(object);
Jerry James b08b3a4
 
Jerry James b08b3a4
 int
Jerry James b08b3a4
-file_position_set(object, int);
Jerry James b08b3a4
+file_position_set(object, off_t);
Jerry James b08b3a4
 
Jerry James b08b3a4
 void
Jerry James b08b3a4
 princ_str(char *s, object);
e190683
--- ./o/fasdump.c.orig	2014-10-23 15:29:00.000000000 -0600
e190683
+++ ./o/fasdump.c	2014-10-28 12:00:00.000000000 -0600
Jerry James b08b3a4
@@ -23,6 +23,7 @@
Jerry James b08b3a4
 #ifndef FAT_STRING
Jerry James b08b3a4
 #include "include.h"
Jerry James e1ab74d
 #endif
Jerry James b08b3a4
+#include "num_include.h"
Jerry James e1ab74d
 
Jerry James b08b3a4
 static void
Jerry James b08b3a4
 clrhash(object);
Jerry James b08b3a4
@@ -608,7 +609,7 @@ DEFUN_NEW("OPEN-FASD",object,fSopen_fasd
Jerry James b08b3a4
     fd->eof=eof;
Jerry James b08b3a4
     fd->index=small_fixnum(0);
Jerry James b08b3a4
     fd->package=symbol_value(sLApackageA);
Jerry James b08b3a4
-    fd->filepos = make_fixnum(file_position(stream));
Jerry James b08b3a4
+    fd->filepos = C_INT_TO_OBJ(file_position(stream));
Jerry James b08b3a4
     
Jerry James b08b3a4
     SETUP_FASD_IN(fd);
Jerry James b08b3a4
     if (direction==sKoutput){
Jerry James b08b3a4
@@ -649,7 +650,7 @@ DEFUN_NEW("CLOSE-FASD",object,fSclose_fa
Jerry James b08b3a4
        {clrhash(fd->table);
Jerry James b08b3a4
 	SETUP_FASD_IN(fd);
Jerry James b08b3a4
 	PUT_OP(d_end_of_file);
Jerry James b08b3a4
-	{int i = file_position(fd->stream);
Jerry James b08b3a4
+	{off_t i = file_position(fd->stream);
Jerry James b08b3a4
 	 if(type_of(fd->filepos) == t_fixnum)
Jerry James b08b3a4
 	  { file_position_set(fd->stream,fix(fd->filepos) +2);
Jerry James b08b3a4
 	    /* record the length of array needed to read the indices */
e190683
--- ./o/file.d.orig	2014-10-23 15:29:00.000000000 -0600
e190683
+++ ./o/file.d	2014-10-28 12:00:00.000000000 -0600
Jerry James e078710
@@ -37,6 +37,7 @@ Foundation, 675 Mass Ave, Cambridge, MA
Jerry James e078710
 
Jerry James e078710
 #define IN_FILE
Jerry James e078710
 #include "include.h"
Jerry James e078710
+#include "num_include.h"
Jerry James e078710
 
Jerry James e078710
 #ifdef HAVE_READLINE
Jerry James b08b3a4
 #define kclgetc(FP)		rl_getc_em(((FILE *)FP))
Jerry James b08b3a4
@@ -394,7 +395,7 @@ object if_exists, if_does_not_exist;
Jerry James e1ab74d
 				  FEerror("Cannot write pipe output to temporary file",0);
Jerry James e1ab74d
 			      if (pclose(pp)<0)
Jerry James e1ab74d
 				FEerror("Cannot close zcat pipe",0);
Jerry James e1ab74d
-			      if (fseek(fp,0,SEEK_SET))
Jerry James e1ab74d
+			      if (fseeko(fp,0,SEEK_SET))
Jerry James e1ab74d
 				FEerror("Cannot rewind temporary file\n",0); 
Jerry James e1ab74d
 			      goto AGAIN;
Jerry James e1ab74d
 			    }
e190683
@@ -1308,7 +1309,7 @@ BEGIN:
Jerry James e1ab74d
 	}
Jerry James e1ab74d
 }
Jerry James e1ab74d
 
Jerry James e1ab74d
-int
Jerry James e1ab74d
+off_t
Jerry James e1ab74d
 file_position(strm)
Jerry James e1ab74d
 object strm;
Jerry James e1ab74d
 {
e190683
@@ -1320,7 +1321,7 @@ BEGIN:
Jerry James e1ab74d
 		/*  return(strm->sm.sm_int0);  */
Jerry James e1ab74d
 		if (strm->sm.sm_fp == NULL)
Jerry James e1ab74d
 			closed_stream(strm);
Jerry James e1ab74d
-		return(ftell(strm->sm.sm_fp));
Jerry James e1ab74d
+		return(ftello(strm->sm.sm_fp));
Jerry James e1ab74d
 	case smm_socket:
Jerry James e1ab74d
 	   return -1;
Jerry James e1ab74d
 	  
e190683
@@ -1351,7 +1352,7 @@ BEGIN:
Jerry James e1ab74d
 int
Jerry James e1ab74d
 file_position_set(strm, disp)
Jerry James e1ab74d
 object strm;
Jerry James e1ab74d
-int disp;
Jerry James e1ab74d
+off_t disp;
Jerry James e1ab74d
 {
Jerry James e1ab74d
 BEGIN:
Jerry James e1ab74d
 	switch (strm->sm.sm_mode) {
e190683
@@ -1361,7 +1362,7 @@ BEGIN:
Jerry James e1ab74d
 	case smm_output:
Jerry James e1ab74d
 	case smm_io:
Jerry James e1ab74d
 
Jerry James e1ab74d
-		if (fseek(strm->sm.sm_fp, disp, 0) < 0)
Jerry James e1ab74d
+		if (fseeko(strm->sm.sm_fp, disp, 0) < 0)
Jerry James e1ab74d
 			return(-1);
Jerry James e1ab74d
 		/* strm->sm.sm_int0 = disp; */
Jerry James e1ab74d
 		return(0);
e190683
@@ -1397,7 +1398,7 @@ BEGIN:
Jerry James e1ab74d
 	}
Jerry James e1ab74d
 }
Jerry James e1ab74d
 
Jerry James e1ab74d
-static int
Jerry James e1ab74d
+static off_t
Jerry James e1ab74d
 file_length(strm)
Jerry James e1ab74d
 object strm;
Jerry James e1ab74d
 {
e190683
@@ -1763,14 +1764,14 @@ LFD(Lstream_element_type)()
Jerry James e1ab74d
 @)
Jerry James e1ab74d
 
Jerry James e1ab74d
 @(defun file_position (file_stream &o position)
Jerry James e1ab74d
-	int i=0;
Jerry James e1ab74d
+	off_t i=0;
Jerry James e1ab74d
 @
Jerry James e1ab74d
 	check_type_stream(&file_stream);
Jerry James e1ab74d
 	if (position == Cnil) {
Jerry James e1ab74d
 		i = file_position(file_stream);
Jerry James e1ab74d
 		if (i < 0)
Jerry James e1ab74d
 			@(return Cnil)
Jerry James e1ab74d
-		@(return `make_fixnum(i)`)
Jerry James e1ab74d
+		@(return `C_INT_TO_OBJ(i)`)
Jerry James e1ab74d
 	} else {
Jerry James e1ab74d
 		if (position == sKstart)
Jerry James e1ab74d
 			i = 0;
e190683
@@ -1797,7 +1798,7 @@ LFD(Lfile_length)()
Jerry James e1ab74d
 	if (i < 0)
Jerry James e1ab74d
 		vs_base[0] = Cnil;
Jerry James e1ab74d
 	else
Jerry James e1ab74d
-		vs_base[0] = make_fixnum(i);
Jerry James e1ab74d
+		vs_base[0] = C_INT_TO_OBJ(i);
Jerry James e1ab74d
 }
Jerry James e1ab74d
 
Jerry James e1ab74d
 object sSAload_pathnameA;
e190683
@@ -2704,22 +2705,22 @@ read_fasl_data(const char *str) {
Jerry James e1ab74d
 #ifdef BSD
Jerry James e1ab74d
 	fp = faslfile->sm.sm_fp;
Jerry James e1ab74d
 	fread(&header, sizeof(header), 1, fp);
Jerry James e1ab74d
-	fseek(fp,
Jerry James e1ab74d
+	fseeko(fp,
Jerry James e1ab74d
 	      header.a_text+header.a_data+
Jerry James e1ab74d
 	      header.a_syms+header.a_trsize+header.a_drsize,
Jerry James e1ab74d
 	      1);
Jerry James e1ab74d
 	fread(&i, sizeof(i), 1, fp);
Jerry James e1ab74d
-	fseek(fp, i - sizeof(i), 1);
Jerry James e1ab74d
+	fseeko(fp, i - sizeof(i), 1);
Jerry James e1ab74d
 #endif
Jerry James e1ab74d
 
Jerry James e1ab74d
 #ifdef HAVE_FILEHDR
Jerry James e1ab74d
 	fp = faslfile->sm.sm_fp;
Jerry James e1ab74d
 	fread(&fileheader, sizeof(fileheader), 1, fp);
Jerry James e1ab74d
-	fseek(fp,
Jerry James e1ab74d
+	fseeko(fp,
Jerry James e1ab74d
 	      fileheader.f_symptr+fileheader.f_nsyms*SYMESZ,
Jerry James e1ab74d
 	      0);
Jerry James e1ab74d
 	fread(&i, sizeof(i), 1, fp);
Jerry James e1ab74d
-	fseek(fp, i - sizeof(i), 1);
Jerry James e1ab74d
+	fseeko(fp, i - sizeof(i), 1);
Jerry James e1ab74d
 	while ((i = getc(fp)) == 0)
Jerry James e1ab74d
 		;
Jerry James e1ab74d
 	ungetc(i, fp);
e190683
@@ -2728,7 +2729,7 @@ read_fasl_data(const char *str) {
Jerry James e1ab74d
 #ifdef E15
Jerry James e1ab74d
 	fp = faslfile->sm.sm_fp;
Jerry James e1ab74d
 	fread(&header, sizeof(header), 1, fp);
Jerry James e1ab74d
-	fseek(fp,
Jerry James e1ab74d
+	fseeko(fp,
Jerry James e1ab74d
 	      header.a_text+header.a_data+
Jerry James e1ab74d
 	      header.a_syms+header.a_trsize+header.a_drsize,
Jerry James e1ab74d
 	      1);
e190683
--- ./o/sfasl.c.orig	2014-10-23 15:29:00.000000000 -0600
e190683
+++ ./o/sfasl.c	2014-10-28 12:00:00.000000000 -0600
Jerry James b08b3a4
@@ -148,7 +148,7 @@ void set_symbol_address ( struct syment
Jerry James b08b3a4
 int
Jerry James b08b3a4
 fasload(faslfile)
Jerry James b08b3a4
 object faslfile;
Jerry James b08b3a4
-{       long fasl_vector_start;
Jerry James b08b3a4
+{       off_t fasl_vector_start;
Jerry James b08b3a4
 	struct filehdr fileheader;
Jerry James b08b3a4
 	struct sfasl_info sfasl_info_buf;
Jerry James b08b3a4
 #ifdef COFF
Jerry James b08b3a4
@@ -210,7 +210,7 @@ object faslfile;
Jerry James b08b3a4
 	symbol_table =
Jerry James b08b3a4
 	  (struct syment *) OUR_ALLOCA(sizeof(struct syment)*
Jerry James b08b3a4
 					(unsigned int)nsyms);
Jerry James b08b3a4
-	fseek(fp,(int)( N_SYMOFF(fileheader)),  0);
Jerry James b08b3a4
+	fseeko(fp,(off_t)( N_SYMOFF(fileheader)),  0);
Jerry James b08b3a4
 	{
Jerry James b08b3a4
 	for (i = 0;  i < nsyms;  i++)
Jerry James b08b3a4
 	  { fread((char *)&symbol_table[i], SYMESZ, 1, fp);
Jerry James b08b3a4
@@ -221,7 +221,7 @@ object faslfile;
Jerry James b08b3a4
 	    symbol_table[i].n_un.n_strx = string_size;
Jerry James b08b3a4
 	    dprintf(string_size %d, string_size);
Jerry James b08b3a4
 	    string_size += symbol_table[i].n_length + 1;
Jerry James b08b3a4
-	    fseek(fp,(int)symbol_table[i].n_length,1);
Jerry James b08b3a4
+	    fseeko(fp,(off_t)symbol_table[i].n_length,1);
Jerry James b08b3a4
 #endif
Jerry James b08b3a4
 	  }
Jerry James b08b3a4
        }
Jerry James b08b3a4
@@ -238,13 +238,13 @@ my_string_table=READ_IN_STRING_TABLE(fp,
Jerry James b08b3a4
 
Jerry James b08b3a4
 #else  
Jerry James b08b3a4
 #ifdef MUST_SEEK_TO_STROFF
Jerry James b08b3a4
-  fseek(fp,N_STROFF(fileheader),0);
Jerry James b08b3a4
+  fseeko(fp,N_STROFF(fileheader),0);
Jerry James b08b3a4
 #endif	
Jerry James b08b3a4
   {int ii=0;
Jerry James b08b3a4
 	if (!fread((char *)&ii,sizeof(int),1,fp))
Jerry James b08b3a4
           {FEerror("The string table of this file did not have any length",0,
Jerry James b08b3a4
 		   0);}
Jerry James b08b3a4
-	    fseek(fp,-4,1);
Jerry James b08b3a4
+	    fseeko(fp,-4,1);
Jerry James b08b3a4
 	    /* at present the string table is located just after the symbols */
Jerry James b08b3a4
 	    my_string_table=OUR_ALLOCA((unsigned int)ii);
Jerry James b08b3a4
 	    dprintf( string table leng = %d, ii);
Jerry James b08b3a4
@@ -261,7 +261,7 @@ SEEK_TO_END_OFILE(fp);
Jerry James b08b3a4
 	ungetc(i, fp);
Jerry James b08b3a4
 #endif
Jerry James b08b3a4
 	
Jerry James b08b3a4
-	fasl_vector_start=ftell(fp);
Jerry James b08b3a4
+	fasl_vector_start=ftello(fp);
Jerry James b08b3a4
 
Jerry James b08b3a4
    if (!((c_table.ptable) && *(c_table.ptable)))
Jerry James b08b3a4
      build_symbol_table();
Jerry James b08b3a4
@@ -293,7 +293,7 @@ SEEK_TO_END_OFILE(fp);
Jerry James b08b3a4
 #endif
Jerry James b08b3a4
 
Jerry James b08b3a4
 	dprintf( code size %d , datasize+textsize+bsssize + extra_bss);
Jerry James b08b3a4
-	if (fseek(fp,N_TXTOFF(fileheader) ,0) < 0)
Jerry James b08b3a4
+	if (fseeko(fp,N_TXTOFF(fileheader) ,0) < 0)
Jerry James b08b3a4
 		FEerror("file seek error",0,0);
Jerry James b08b3a4
 	SAFE_FREAD(the_start, textsize + datasize, 1, fp);
Jerry James b08b3a4
 	dprintf(read into memory text +data %d bytes, textsize + datasize);
Jerry James b08b3a4
@@ -307,7 +307,7 @@ SEEK_TO_END_OFILE(fp);
Jerry James b08b3a4
   {int j=0;
Jerry James b08b3a4
      for(j=1; j< BSS_NSCN ; j++)
Jerry James b08b3a4
        { dprintf( relocating section %d \n,j);
Jerry James b08b3a4
-	if (section[j].s_nreloc) fseek(fp,section[j].s_relptr,0);
Jerry James b08b3a4
+	if (section[j].s_nreloc) fseeko(fp,section[j].s_relptr,0);
Jerry James b08b3a4
         for(i=0; i < section[j].s_nreloc; i++)
Jerry James b08b3a4
 	  { struct syment *sym;
Jerry James b08b3a4
 	    fread(&relocation_info, RELSZ, 1, fp);
Jerry James b08b3a4
@@ -326,7 +326,7 @@ SEEK_TO_END_OFILE(fp);
Jerry James b08b3a4
   {int j=0;
Jerry James b08b3a4
      for(j=1; j< BSS_NSCN ; j++)
Jerry James b08b3a4
        { dprintf( relocating section %d \n,j);
Jerry James b08b3a4
-	if (section[j].s_nreloc) fseek(fp,section[j].s_relptr,0);
Jerry James b08b3a4
+	if (section[j].s_nreloc) fseeko(fp,section[j].s_relptr,0);
Jerry James b08b3a4
 #ifdef ADJUST_RELOC_START
Jerry James b08b3a4
 ADJUST_RELOC_START(j)
Jerry James b08b3a4
 #endif  
Jerry James b08b3a4
@@ -338,7 +338,7 @@ ADJUST_RELOC_START(j)
Jerry James b08b3a4
         }};
Jerry James b08b3a4
 #endif
Jerry James b08b3a4
 #ifdef BSD
Jerry James b08b3a4
-	 fseek(fp,N_RELOFF(fileheader),0);
Jerry James b08b3a4
+	 fseeko(fp,N_RELOFF(fileheader),0);
Jerry James b08b3a4
 	{int nrel = (fileheader.a_trsize/sizeof(struct reloc));
Jerry James b08b3a4
 	 for (i=0; i < nrel; i++)
Jerry James b08b3a4
 	   {fread((char *)&relocation_info, sizeof(struct reloc),
Jerry James b08b3a4
@@ -348,7 +348,7 @@ ADJUST_RELOC_START(j)
Jerry James b08b3a4
 		}
Jerry James b08b3a4
 	}
Jerry James b08b3a4
 #ifdef N_DRELOFF
Jerry James b08b3a4
-	 fseek (fp, N_DRELOFF(fileheader), 0);
Jerry James b08b3a4
+	 fseeko (fp, N_DRELOFF(fileheader), 0);
Jerry James b08b3a4
 #endif
Jerry James b08b3a4
 	 {int nrel = (fileheader.a_drsize/sizeof(struct reloc));
Jerry James b08b3a4
 	  the_start += fileheader.a_text;
Jerry James b08b3a4
@@ -369,7 +369,7 @@ ADJUST_RELOC_START(j)
Jerry James b08b3a4
        dprintf( datasize is %x,datasize);
Jerry James b08b3a4
 
Jerry James b08b3a4
 /* read in the fasl vector */
Jerry James b08b3a4
-	fseek(fp,fasl_vector_start,0);
Jerry James b08b3a4
+	fseeko(fp,fasl_vector_start,0);
Jerry James b08b3a4
         if (feof(fp))
Jerry James b08b3a4
 	  {data=0;}
Jerry James b08b3a4
          else{
e190683
--- ./o/unexelf.c.orig	2014-10-23 15:29:00.000000000 -0600
e190683
+++ ./o/unexelf.c	2014-10-28 12:00:00.000000000 -0600
Jerry James e1ab74d
@@ -634,7 +634,8 @@ find_section (char *name, char *section_
Jerry James e1ab74d
 static void
Jerry James e1ab74d
 unexec (char *new_name, char *old_name, unsigned int data_start, unsigned int bss_start, unsigned int entry_address)
Jerry James e1ab74d
 {
Jerry James e1ab74d
-  int new_file, old_file, new_file_size;
Jerry James e1ab74d
+  int new_file, old_file;
Jerry James e1ab74d
+  off_t new_file_size;
Jerry James e1ab74d
 
Jerry James e1ab74d
   /* Pointers to the base of the image of the two files. */
Jerry James e1ab74d
   caddr_t old_base, new_base;
Jerry James e1ab74d
@@ -664,7 +665,7 @@ unexec (char *new_name, char *old_name,
Jerry James e1ab74d
   int old_data_index, new_data2_index;
Jerry James e1ab74d
   int old_mdebug_index;
Jerry James e1ab74d
   struct stat stat_buf;
Jerry James e1ab74d
-  int old_file_size;
Jerry James e1ab74d
+  size_t old_file_size;
Jerry James e1ab74d
 
Jerry James e1ab74d
   /* Open the old file, allocate a buffer of the right size, and read
Jerry James e1ab74d
      in the file contents.  */
Jerry James e078710
@@ -687,7 +688,7 @@ unexec (char *new_name, char *old_name,
Jerry James e1ab74d
      we'd dump our temporary buffers with Emacs, and we'd have to be
Jerry James e1ab74d
      extra careful to use the correct value of sbrk(0) after
Jerry James e1ab74d
      allocating all buffers in the code below, which we aren't.  */
Jerry James e1ab74d
-  old_file_size = stat_buf.st_size;
Jerry James e1ab74d
+  old_file_size = (size_t) stat_buf.st_size;
Jerry James e078710
   old_base = mmap (NULL, old_file_size, PROT_READ,MAP_SHARED, old_file, 0);
Jerry James e1ab74d
   if (old_base == MAP_FAILED)
Jerry James e1ab74d
     fatal ("Can't allocate buffer for %s\n", old_name);
Jerry James b08b3a4
@@ -780,7 +781,7 @@ unexec (char *new_name, char *old_name,
Jerry James e1ab74d
   if (ftruncate (new_file, new_file_size))
Jerry James e1ab74d
     fatal ("Can't ftruncate (%s): errno %d\n", new_name, errno);
Jerry James e1ab74d
 
Jerry James e078710
-  new_base = mmap (NULL, new_file_size, PROT_READ | PROT_WRITE,MAP_SHARED, new_file, 0);
Jerry James e078710
+  new_base = mmap (NULL, (size_t) new_file_size, PROT_READ | PROT_WRITE,MAP_SHARED, new_file, 0);
Jerry James e1ab74d
   if (new_base == MAP_FAILED)
Jerry James e1ab74d
     fatal ("Can't allocate buffer for %s\n", old_name);
Jerry James e1ab74d
 
Jerry James b08b3a4
@@ -1216,7 +1217,7 @@ unexec (char *new_name, char *old_name,
Jerry James e078710
   /* 	   new_file_size, new_base, errno); */
Jerry James e1ab74d
 
Jerry James e1ab74d
   munmap (old_base, old_file_size);
Jerry James e1ab74d
-  munmap (new_base, new_file_size);
Jerry James e1ab74d
+  munmap (new_base, (size_t) new_file_size);
Jerry James e1ab74d
 
Jerry James e1ab74d
   /* Close the files and make the new file executable.  */
Jerry James e1ab74d
 
e190683
--- ./o/unixfasl.c.orig	2014-10-23 15:29:00.000000000 -0600
e190683
+++ ./o/unixfasl.c	2014-10-28 12:00:00.000000000 -0600
Jerry James b08b3a4
@@ -90,8 +90,8 @@ object faslfile;
Jerry James b08b3a4
 #ifdef ATT
Jerry James b08b3a4
 	struct filehdr fileheader;
Jerry James b08b3a4
 	struct scnhdr sectionheader;
Jerry James b08b3a4
-	int textsize, datasize, bsssize;
Jerry James b08b3a4
-	int textstart;
Jerry James b08b3a4
+	off_t textsize, datasize, bsssize;
Jerry James b08b3a4
+	off_t textstart;
Jerry James e078710
 #endif
Jerry James e078710
 
Jerry James b08b3a4
 #ifdef E15
Jerry James b08b3a4
@@ -129,7 +129,7 @@ object faslfile;
Jerry James b08b3a4
 #ifdef ATT
Jerry James b08b3a4
 	fread(&fileheader, sizeof(fileheader), 1, fp);
Jerry James b08b3a4
 #ifdef S3000
Jerry James b08b3a4
-        if(fileheader.f_opthdr != 0) fseek(fp,fileheader.f_opthdr,1);
Jerry James b08b3a4
+        if(fileheader.f_opthdr != 0) fseeko(fp,fileheader.f_opthdr,1);
Jerry James b08b3a4
 #endif
Jerry James b08b3a4
 	fread(&sectionheader, sizeof(sectionheader), 1, fp);
Jerry James b08b3a4
 	textsize = sectionheader.s_size;
Jerry James b08b3a4
@@ -162,27 +162,27 @@ object faslfile;
Jerry James b08b3a4
 SEEK_TO_END_OFILE(fp);
Jerry James b08b3a4
 #else
Jerry James b08b3a4
 #ifdef BSD
Jerry James b08b3a4
-	fseek(fp,
Jerry James b08b3a4
+	fseeko(fp,
Jerry James b08b3a4
 	      header.a_text+header.a_data+
Jerry James b08b3a4
 	      header.a_syms+header.a_trsize+header.a_drsize,
Jerry James b08b3a4
 	      1);
Jerry James b08b3a4
 	fread(&i, sizeof(i), 1, fp);
Jerry James b08b3a4
-	fseek(fp, i - sizeof(i), 1);
Jerry James b08b3a4
+	fseeko(fp, i - sizeof(i), 1);
Jerry James b08b3a4
 #endif
Jerry James e1ab74d
 
Jerry James b08b3a4
 #ifdef ATT
Jerry James b08b3a4
-	fseek(fp,
Jerry James b08b3a4
+	fseeko(fp,
Jerry James b08b3a4
 	      fileheader.f_symptr + SYMESZ*fileheader.f_nsyms,
Jerry James b08b3a4
 	      0);
Jerry James b08b3a4
 	fread(&i, sizeof(i), 1, fp);
Jerry James b08b3a4
-	fseek(fp, i - sizeof(i), 1);
Jerry James b08b3a4
+	fseeko(fp, i - sizeof(i), 1);
Jerry James b08b3a4
 	while ((i = getc(fp)) == 0)
Jerry James b08b3a4
 		;
Jerry James b08b3a4
 	ungetc(i, fp);
Jerry James b08b3a4
 #endif
Jerry James b08b3a4
 
Jerry James b08b3a4
 #ifdef E15
Jerry James b08b3a4
-	fseek(fp,
Jerry James b08b3a4
+	fseeko(fp,
Jerry James b08b3a4
 	      header.a_text+header.a_data+
Jerry James b08b3a4
 	      header.a_syms+header.a_trsize+header.a_drsize,
Jerry James b08b3a4
 	      1);
Jerry James b08b3a4
@@ -255,7 +255,7 @@ AGAIN:
Jerry James b08b3a4
 	}
Jerry James b08b3a4
 #endif
Jerry James b08b3a4
 
Jerry James b08b3a4
-	if (fseek(fp, textstart, 0) < 0)
Jerry James b08b3a4
+	if (fseeko(fp, textstart, 0) < 0)
Jerry James b08b3a4
 		error("file seek error");
Jerry James b08b3a4
 
Jerry James b08b3a4
 	fread(memory->cfd.cfd_start, textsize + datasize, 1, fp);
Jerry James b08b3a4
@@ -334,12 +334,12 @@ SEEK_TO_END_OFILE(faslfile->sm.sm_fp);
Jerry James b08b3a4
 #else  
Jerry James b08b3a4
 	fp = faslfile->sm.sm_fp;
Jerry James b08b3a4
 	fread(&faslheader, sizeof(faslheader), 1, fp);
Jerry James b08b3a4
-	fseek(fp,
Jerry James b08b3a4
+	fseeko(fp,
Jerry James b08b3a4
 	      faslheader.a_text+faslheader.a_data+
Jerry James b08b3a4
 	      faslheader.a_syms+faslheader.a_trsize+faslheader.a_drsize,
Jerry James b08b3a4
 	      1);
Jerry James b08b3a4
 	fread(&i, sizeof(i), 1, fp);
Jerry James b08b3a4
-	fseek(fp, i - sizeof(i), 1);
Jerry James b08b3a4
+	fseeko(fp, i - sizeof(i), 1);
Jerry James b08b3a4
 #endif
Jerry James b08b3a4
 	data = read_fasl_vector(faslfile);
Jerry James b08b3a4
 	vs_push(data);
Jerry James b08b3a4
@@ -361,7 +361,7 @@ SEEK_TO_END_OFILE(faslfile->sm.sm_fp);
Jerry James b08b3a4
 	vs_push(tempfile);
Jerry James b08b3a4
 	fp = tempfile->sm.sm_fp;
Jerry James e1ab74d
 
Jerry James b08b3a4
-	if (fseek(fp, textstart, 0) < 0)
Jerry James b08b3a4
+	if (fseeko(fp, textstart, 0) < 0)
Jerry James b08b3a4
 		error("file seek error");
Jerry James e1ab74d
 
Jerry James b08b3a4
 	fread(memory->cfd.cfd_start, textsize + datasize, 1, fp);
e190683
--- ./o/unixfsys.c.orig	2014-10-28 12:00:00.000000000 -0600
e190683
+++ ./o/unixfsys.c	2014-10-28 12:00:00.000000000 -0600
Jerry James e078710
@@ -26,6 +26,7 @@ Foundation, 675 Mass Ave, Cambridge, MA
Jerry James e078710
 
Jerry James e078710
 #define IN_UNIXFSYS
Jerry James e078710
 #include "include.h"
Jerry James e078710
+#include "num_include.h"
Jerry James e078710
 #include <sys/types.h>
Jerry James e078710
 #include <sys/stat.h>
Jerry James e078710
 #ifndef NO_PWD_H
Jerry James e078710
@@ -414,7 +415,7 @@ backup_fopen(char *filename, char *optio
Jerry James e1ab74d
 	return(fopen(filename, option));
Jerry James e1ab74d
 }
Jerry James e1ab74d
 
Jerry James e1ab74d
-int
Jerry James e1ab74d
+off_t
Jerry James e1ab74d
 file_len(FILE *fp)
Jerry James e1ab74d
 {
Jerry James e1ab74d
 	struct stat filestatus;
Jerry James b08b3a4
@@ -523,7 +524,7 @@ DEFUN_NEW("STAT",object,fSstat,SI,1,1,NO
Jerry James e1ab74d
        filename[j-1]=0;*/
Jerry James e1ab74d
     RETURN1(list(3,S_ISDIR(ss.st_mode) ? sKdirectory : 
Jerry James e1ab74d
 		 (S_ISLNK(ss.st_mode) ? sKlink : sKfile),
Jerry James e1ab74d
-		 make_fixnum(ss.st_size),make_fixnum(ss.st_ctime)));
Jerry James e1ab74d
+		 C_INT_TO_OBJ(ss.st_size),make_fixnum(ss.st_ctime)));
Jerry James e1ab74d
   }
Jerry James e1ab74d
 }
Jerry James e1ab74d
 
e190683
--- ./o/unixsave.c.orig	2014-10-23 15:29:00.000000000 -0600
e190683
+++ ./o/unixsave.c	2014-10-28 12:00:00.000000000 -0600
Jerry James b08b3a4
@@ -93,7 +93,7 @@ memory_save(original_file, save_file)
Jerry James b08b3a4
 char *original_file, *save_file;
Jerry James b08b3a4
 {	MEM_SAVE_LOCALS;
Jerry James b08b3a4
 	char *data_begin, *data_end;
Jerry James b08b3a4
-	int original_data;
Jerry James b08b3a4
+	off_t original_data = 0;
Jerry James b08b3a4
 	FILE *original, *save;
Jerry James b08b3a4
 	register int n;
Jerry James b08b3a4
 	register char *p;
Jerry James b08b3a4
@@ -130,7 +130,7 @@ char *original_file, *save_file;
Jerry James b08b3a4
 		} else
Jerry James b08b3a4
 			break;
Jerry James e078710
 
Jerry James b08b3a4
-	fseek(original, original_data, 1);
Jerry James b08b3a4
+	fseeko(original, original_data, 1);
Jerry James b08b3a4
 
Jerry James b08b3a4
 	COPY_TO_SAVE;
Jerry James b08b3a4
 
e190683
--- ./unixport/bsd_rsym.c.orig	2014-10-23 15:29:00.000000000 -0600
e190683
+++ ./unixport/bsd_rsym.c	2014-10-28 12:00:00.000000000 -0600
Jerry James e1ab74d
@@ -121,7 +121,7 @@ tab.n_symbols=0;tab.tot_leng=0;
Jerry James e1ab74d
  symout=fopen(outfile,"w");
Jerry James e1ab74d
  if (!symout)
Jerry James e1ab74d
    {perror(outfile); exit(1);};
Jerry James e1ab74d
- fseek(symout,sizeof(struct lsymbol_table),0);
Jerry James e1ab74d
+ fseeko(symout,sizeof(struct lsymbol_table),0);
Jerry James e1ab74d
  end = my_symbol_table + NSYMS(my_header);
Jerry James e1ab74d
  for (p = my_symbol_table; p < end; p++)	{
Jerry James e1ab74d
    /*
Jerry James e1ab74d
@@ -146,7 +146,7 @@ tab.n_symbols=0;tab.tot_leng=0;
Jerry James e1ab74d
    dprintf( index , (int) (p - my_symbol_table)  / sizeof(struct syment));
Jerry James e1ab74d
    p = p + NUM_AUX(p); }
Jerry James e1ab74d
  }
Jerry James e1ab74d
- fseek(symout,0,0);
Jerry James e1ab74d
+ fseeko(symout,0,0);
Jerry James e1ab74d
  fwrite(&tab,sizeof(tab),1,symout);
Jerry James e1ab74d
  fclose(symout);
Jerry James e1ab74d
  return 0;
e190683
--- ./unixport/rsym.c.orig	2014-10-23 15:29:00.000000000 -0600
e190683
+++ ./unixport/rsym.c	2014-10-28 12:00:00.000000000 -0600
Jerry James e1ab74d
@@ -102,7 +102,7 @@ char *filename;
Jerry James e1ab74d
 	sizeof(struct syment) and SYMESZ are not always the same.
Jerry James e1ab74d
 	*/
Jerry James e1ab74d
 
Jerry James e1ab74d
-	if(fseek(fp,(int)(N_SYMOFF(my_header)),0))
Jerry James e1ab74d
+	if(fseeko(fp,(off_t)(N_SYMOFF(my_header)),0))
Jerry James e1ab74d
 	  {fprintf(stderr,"seek error");
Jerry James e1ab74d
 					       exit(1);}
Jerry James e1ab74d
 
Jerry James e1ab74d
@@ -113,7 +113,7 @@ char *filename;
Jerry James e1ab74d
 		dprintf(string_size %d,string_size);
Jerry James e1ab74d
 		symbol_table[i].n_un.n_strx = string_size;
Jerry James e1ab74d
 		string_size += symbol_table[i].n_length + 1;
Jerry James e1ab74d
-		fseek(fp,symbol_table[i].n_length,1);
Jerry James e1ab74d
+		fseeko(fp,symbol_table[i].n_length,1);
Jerry James e1ab74d
 	      }
Jerry James e1ab74d
 #else	
Jerry James e1ab74d
 		fread((char *)&symbol_table[i], SYMESZ, 1, fp);
Jerry James e1ab74d
@@ -127,14 +127,14 @@ char *filename;
Jerry James e1ab74d
 	   strings follow symbol table! */
Jerry James e1ab74d
 #ifndef HPUX
Jerry James e1ab74d
 #ifdef N_STROFF
Jerry James e1ab74d
-	fseek(fp,N_STROFF(my_header),0);
Jerry James e1ab74d
+	fseeko(fp,N_STROFF(my_header),0);
Jerry James e1ab74d
 #endif	
Jerry James e1ab74d
 	if (fread((char *)&string_size, 4, 1, fp) > 0)	{
Jerry James e1ab74d
 		my_string_table = malloc(string_size);
Jerry James e1ab74d
                 if(debug)
Jerry James e1ab74d
-		  {printf(" string_size is %d fseek %d ",string_size,fseek(fp,string_size-1,1));
Jerry James e1ab74d
-		   printf(" fseek back %d ",fseek(fp,1-string_size,1));};
Jerry James e1ab74d
-		fseek(fp, -4, 1);
Jerry James e1ab74d
+		  {printf(" string_size is %d fseek %zd ",string_size,fseeko(fp,string_size-1,1));
Jerry James e1ab74d
+		   printf(" fseek back %d ",fseeko(fp,1-string_size,1));};
Jerry James e1ab74d
+		fseeko(fp, -4, 1);
Jerry James e1ab74d
 		if(string_size!=(fread(my_string_table, 1, string_size, fp)))
Jerry James e1ab74d
 		  {dprintf( string_size was %d ,string_size);
Jerry James e1ab74d
 		   perror("rsym could not read bad string table") ;
Jerry James e1ab74d
@@ -149,10 +149,10 @@ char *filename;
Jerry James e1ab74d
 		int slen;
Jerry James e1ab74d
 		p = my_string_table=malloc((unsigned int)string_size);
Jerry James e1ab74d
 		dprintf( string table leng = %d, string_size);
Jerry James e1ab74d
-		fseek(fp,(int)( LESYM_OFFSET(my_header)),  0);
Jerry James e1ab74d
+		fseeko(fp,(off_t)( LESYM_OFFSET(my_header)),  0);
Jerry James e1ab74d
 		for (i = 0;  i < nsyms; i++)
Jerry James e1ab74d
 		{
Jerry James e1ab74d
-			fseek(fp,SYMESZ, 1);
Jerry James e1ab74d
+			fseeko(fp,SYMESZ, 1);
Jerry James e1ab74d
 			slen = symbol_table[i].n_length;
Jerry James e1ab74d
 			dprintf( slen = %d,slen);
Jerry James e1ab74d
 			fread(p,slen,1,fp);
Jerry James e1ab74d
@@ -182,7 +182,7 @@ char *out;
Jerry James e1ab74d
  symout=fopen(out,"wr");
Jerry James e1ab74d
  if (!symout)
Jerry James e1ab74d
    {perror(out); exit(1);};
Jerry James e1ab74d
- fseek(symout,sizeof(struct lsymbol_table),0);
Jerry James e1ab74d
+ fseeko(symout,sizeof(struct lsymbol_table),0);
Jerry James e1ab74d
  end = symbol_table + nsyms;
Jerry James e1ab74d
  for (p = symbol_table; p < end; p++)	{
Jerry James e1ab74d
    /*
Jerry James e1ab74d
@@ -219,7 +219,7 @@ char *out;
Jerry James e1ab74d
        dprintf( index , (int) (p - symbol_table)  / sizeof(struct syment));
Jerry James e1ab74d
        p = p + NUM_AUX(p); }
Jerry James e1ab74d
  }
Jerry James e1ab74d
- fseek(symout,0,0);
Jerry James e1ab74d
+ fseeko(symout,0,0);
Jerry James e1ab74d
  fwrite(&tab,sizeof(tab),1,symout);
Jerry James e1ab74d
  fclose(symout);
Jerry James e1ab74d
 #ifdef AIX3
Jerry James e1ab74d
@@ -323,7 +323,7 @@ char *out;
Jerry James e1ab74d
   symin=fopen(out,"w");
Jerry James e1ab74d
   if(symin==0) perror("can't open");
Jerry James e1ab74d
   fwrite(&tab,sizeof(tab),1,symin);
Jerry James e1ab74d
-  fseek(symin,sizeof(tab),0);
Jerry James e1ab74d
+  fseeko(symin,sizeof(tab),0);
Jerry James e1ab74d
   {int i,j;
Jerry James e1ab74d
    unsigned short k;
Jerry James e1ab74d
    for (i=0 ; i < tab.n_symbols ; i++)
e190683
--- ./unixport/rsym_elf.c.orig	2014-10-23 15:29:00.000000000 -0600
e190683
+++ ./unixport/rsym_elf.c	2014-10-28 12:00:00.000000000 -0600
Jerry James e1ab74d
@@ -147,7 +147,7 @@ get_section(fp,name)
Jerry James e1ab74d
   else
Jerry James e1ab74d
     shndx = get_section_number(name);
Jerry James e1ab74d
   { 
Jerry James e1ab74d
-      fseek(fp,SECTION_H(shndx).sh_offset,SEEK_SET);
Jerry James e1ab74d
+      fseeko(fp,SECTION_H(shndx).sh_offset,SEEK_SET);
Jerry James e1ab74d
       ans = malloc(SECTION_H(shndx).sh_size);
Jerry James e1ab74d
       fread(ans,SECTION_H(shndx).sh_size,1,fp);
Jerry James e1ab74d
       return ans;
Jerry James e1ab74d
@@ -173,7 +173,7 @@ char *filename;
Jerry James e1ab74d
 	}
Jerry James e1ab74d
 
Jerry James e1ab74d
 	fread(&eheader,sizeof(eheader),1,fp);
Jerry James e1ab74d
-	fseek(fp,eheader.e_ehsize,SEEK_SET);
Jerry James e1ab74d
+	fseeko(fp,eheader.e_ehsize,SEEK_SET);
Jerry James e1ab74d
 	fread(&pheader,sizeof(pheader),1,fp);
Jerry James e1ab74d
 
Jerry James e1ab74d
 	if(ELFMAG0 != eheader.e_ident[0]){
Jerry James e1ab74d
@@ -182,7 +182,7 @@ char *filename;
Jerry James e1ab74d
 
Jerry James e1ab74d
 	section_headers = (void *)malloc(sizeof(ElfW(Shdr))*
Jerry James e1ab74d
 				 (1+ eheader.e_shnum));
Jerry James e1ab74d
-	fseek(fp,eheader.e_shoff,0);
Jerry James e1ab74d
+	fseeko(fp,eheader.e_shoff,0);
Jerry James e1ab74d
 	for (i=0 ; i< eheader.e_shnum ; i++)
Jerry James e1ab74d
 	  fread(&section_headers[i],eheader.e_shentsize,1,fp);
Jerry James e1ab74d
 				 
Jerry James e1ab74d
@@ -196,7 +196,7 @@ char *filename;
Jerry James e1ab74d
 	sizeof(struct syment) and SYMESZ are not always the same.
Jerry James e1ab74d
 	*/
Jerry James e1ab74d
 
Jerry James e1ab74d
-	if(fseek(fp,(int)SECTION_H(symbol_index).sh_offset,0))
Jerry James e1ab74d
+	if(fseeko(fp,(off_t)SECTION_H(symbol_index).sh_offset,0))
Jerry James e1ab74d
 	  {fprintf(stderr,"seek error");
Jerry James e1ab74d
 					       exit(1);}
Jerry James e1ab74d
 
Jerry James e1ab74d
@@ -242,7 +242,7 @@ char *out;
Jerry James e1ab74d
  symout=fopen(out,"wr");
Jerry James e1ab74d
  if (!symout)
Jerry James e1ab74d
    {perror(out); exit(1);};
Jerry James e1ab74d
- fseek(symout,sizeof(struct lsymbol_table),0);
Jerry James e1ab74d
+ fseeko(symout,sizeof(struct lsymbol_table),0);
Jerry James e1ab74d
  end = symbol_table + nsyms;
Jerry James e1ab74d
  for (p = symbol_table; p < end; p++)	{
Jerry James e1ab74d
    /*
Jerry James e1ab74d
@@ -300,7 +300,7 @@ char *out;
Jerry James e1ab74d
        dprintf( index , (int) (p - symbol_table)  / sizeof(STRUCT_SYMENT));
Jerry James e1ab74d
        p = p + NUM_AUX(p); }
Jerry James e1ab74d
  }
Jerry James e1ab74d
- fseek(symout,0,0);
Jerry James e1ab74d
+ fseeko(symout,0,0);
Jerry James e1ab74d
  fwrite(&tab,sizeof(tab),1,symout);
Jerry James e1ab74d
  fclose(symout);
Jerry James e1ab74d
 #ifdef AIX3