Jerry James e1ab74d
--- ./h/protoize.h.orig	2013-05-11 14:42:29.000000000 -0600
Jerry James e1ab74d
+++ ./h/protoize.h	2013-05-13 14:46:33.925671152 -0600
Jerry James e1ab74d
@@ -508,7 +508,7 @@ typedef void (*funcvoid)(void);
Jerry James e1ab74d
 /* unixfsys.c:329:OF */ extern bool file_exists (object file); /* (file) object file; */
Jerry James e1ab74d
 /* unixfsys.c:359:OF */ extern FILE *backup_fopen (char *filename, char *option); /* (filename, option) char *filename; char *option; */
Jerry James e1ab74d
 /* unixfsys.c:359:OF */ extern FILE *fopen_not_dir (char *filename, char *option); /* (filename, option) char *filename; char *option; */
Jerry James e1ab74d
-/* unixfsys.c:372:OF */ extern int file_len (FILE *fp); /* (fp) FILE *fp; */
Jerry James e1ab74d
+/* unixfsys.c:372:OF */ extern off_t file_len (FILE *fp); /* (fp) FILE *fp; */
Jerry James e1ab74d
 /* unixfsys.c:382:OF */ extern object truename (object); /* () */
Jerry James e1ab74d
 /* unixfsys.c:382:OF */ extern void Ltruename (void); /* () */
Jerry James e1ab74d
 /* unixfsys.c:418:OF */ extern object fSsetenv (object variable, object value); /* (variable, value) object variable; object value; */
Jerry James e1ab74d
@@ -731,11 +731,11 @@ edit_double(int, double, int *, char *,
Jerry James e1ab74d
 void
Jerry James e1ab74d
 sethash(object,object,object);
Jerry James e1ab74d
 
Jerry James e1ab74d
-int
Jerry James e1ab74d
+off_t
Jerry James e1ab74d
 file_position(object);
Jerry James e1ab74d
 
Jerry James e1ab74d
 int
Jerry James e1ab74d
-file_position_set(object, int);
Jerry James e1ab74d
+file_position_set(object, off_t);
Jerry James e1ab74d
 
Jerry James e1ab74d
 void
Jerry James e1ab74d
 princ_str(char *s, object);
Jerry James e1ab74d
--- ./h/linux.h.orig	2012-01-17 18:29:27.000000000 -0700
Jerry James e1ab74d
+++ ./h/linux.h	2013-05-13 14:46:33.926671150 -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 e1ab74d
         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
 
Jerry James e1ab74d
--- ./h/mp.h.orig	2005-01-15 09:27:36.000000000 -0700
Jerry James e1ab74d
+++ ./h/mp.h	2013-05-13 14:46:33.926671150 -0600
Jerry James e1ab74d
@@ -35,6 +35,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 e1ab74d
+  if (x >= MOST_NEG_FIXNUM && x <= MOST_POSITIVE_FIXNUM)	\
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 e1ab74d
@@ -110,6 +126,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 e1ab74d
+  if (x >= MOST_NEG_FIXNUM && x <= MOST_POSITIVE_FIXNUM)	\
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 e1ab74d
+
Jerry James e1ab74d
 #define INT_FLAG 0x1010000
Jerry James e1ab74d
 
Jerry James e1ab74d
 #define MP_ALLOCATED(x) (x)->big.big_length
Jerry James e1ab74d
--- ./o/unixfasl.c.orig	2004-05-03 15:35:58.000000000 -0600
Jerry James e1ab74d
+++ ./o/unixfasl.c	2013-05-13 14:46:33.927671148 -0600
Jerry James e1ab74d
@@ -90,8 +90,8 @@ object faslfile;
Jerry James e1ab74d
 #ifdef ATT
Jerry James e1ab74d
 	struct filehdr fileheader;
Jerry James e1ab74d
 	struct scnhdr sectionheader;
Jerry James e1ab74d
-	int textsize, datasize, bsssize;
Jerry James e1ab74d
-	int textstart;
Jerry James e1ab74d
+	off_t textsize, datasize, bsssize;
Jerry James e1ab74d
+	off_t textstart;
Jerry James e1ab74d
 #endif
Jerry James e1ab74d
 
Jerry James e1ab74d
 #ifdef E15
Jerry James e1ab74d
@@ -129,7 +129,7 @@ object faslfile;
Jerry James e1ab74d
 #ifdef ATT
Jerry James e1ab74d
 	fread(&fileheader, sizeof(fileheader), 1, fp);
Jerry James e1ab74d
 #ifdef S3000
Jerry James e1ab74d
-        if(fileheader.f_opthdr != 0) fseek(fp,fileheader.f_opthdr,1);
Jerry James e1ab74d
+        if(fileheader.f_opthdr != 0) fseeko(fp,fileheader.f_opthdr,1);
Jerry James e1ab74d
 #endif
Jerry James e1ab74d
 	fread(&sectionheader, sizeof(sectionheader), 1, fp);
Jerry James e1ab74d
 	textsize = sectionheader.s_size;
Jerry James e1ab74d
@@ -162,27 +162,27 @@ object faslfile;
Jerry James e1ab74d
 SEEK_TO_END_OFILE(fp);
Jerry James e1ab74d
 #else
Jerry James e1ab74d
 #ifdef BSD
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 ATT
Jerry James e1ab74d
-	fseek(fp,
Jerry James e1ab74d
+	fseeko(fp,
Jerry James e1ab74d
 	      fileheader.f_symptr + SYMESZ*fileheader.f_nsyms,
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);
Jerry James e1ab74d
 #endif
Jerry James e1ab74d
 
Jerry James e1ab74d
 #ifdef E15
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
@@ -255,7 +255,7 @@ AGAIN:
Jerry James e1ab74d
 	}
Jerry James e1ab74d
 #endif
Jerry James e1ab74d
 
Jerry James e1ab74d
-	if (fseek(fp, textstart, 0) < 0)
Jerry James e1ab74d
+	if (fseeko(fp, textstart, 0) < 0)
Jerry James e1ab74d
 		error("file seek error");
Jerry James e1ab74d
 
Jerry James e1ab74d
 	fread(memory->cfd.cfd_start, textsize + datasize, 1, fp);
Jerry James e1ab74d
@@ -334,12 +334,12 @@ SEEK_TO_END_OFILE(faslfile->sm.sm_fp);
Jerry James e1ab74d
 #else  
Jerry James e1ab74d
 	fp = faslfile->sm.sm_fp;
Jerry James e1ab74d
 	fread(&faslheader, sizeof(faslheader), 1, fp);
Jerry James e1ab74d
-	fseek(fp,
Jerry James e1ab74d
+	fseeko(fp,
Jerry James e1ab74d
 	      faslheader.a_text+faslheader.a_data+
Jerry James e1ab74d
 	      faslheader.a_syms+faslheader.a_trsize+faslheader.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
 	data = read_fasl_vector(faslfile);
Jerry James e1ab74d
 	vs_push(data);
Jerry James e1ab74d
@@ -361,7 +361,7 @@ SEEK_TO_END_OFILE(faslfile->sm.sm_fp);
Jerry James e1ab74d
 	vs_push(tempfile);
Jerry James e1ab74d
 	fp = tempfile->sm.sm_fp;
Jerry James e1ab74d
 
Jerry James e1ab74d
-	if (fseek(fp, textstart, 0) < 0)
Jerry James e1ab74d
+	if (fseeko(fp, textstart, 0) < 0)
Jerry James e1ab74d
 		error("file seek error");
Jerry James e1ab74d
 
Jerry James e1ab74d
 	fread(memory->cfd.cfd_start, textsize + datasize, 1, fp);
Jerry James e1ab74d
--- ./o/sfasl.c.orig	2010-08-04 15:44:27.000000000 -0600
Jerry James e1ab74d
+++ ./o/sfasl.c	2013-05-13 14:46:33.927671148 -0600
Jerry James e1ab74d
@@ -133,7 +133,7 @@ void set_symbol_address ( struct syment
Jerry James e1ab74d
 int
Jerry James e1ab74d
 fasload(faslfile)
Jerry James e1ab74d
 object faslfile;
Jerry James e1ab74d
-{       long fasl_vector_start;
Jerry James e1ab74d
+{       off_t fasl_vector_start;
Jerry James e1ab74d
 	struct filehdr fileheader;
Jerry James e1ab74d
 	struct sfasl_info sfasl_info_buf;
Jerry James e1ab74d
 #ifdef COFF
Jerry James e1ab74d
@@ -195,7 +195,7 @@ object faslfile;
Jerry James e1ab74d
 	symbol_table =
Jerry James e1ab74d
 	  (struct syment *) OUR_ALLOCA(sizeof(struct syment)*
Jerry James e1ab74d
 					(unsigned int)nsyms);
Jerry James e1ab74d
-	fseek(fp,(int)( N_SYMOFF(fileheader)),  0);
Jerry James e1ab74d
+	fseeko(fp,(off_t)( N_SYMOFF(fileheader)),  0);
Jerry James e1ab74d
 	{
Jerry James e1ab74d
 	for (i = 0;  i < nsyms;  i++)
Jerry James e1ab74d
 	  { fread((char *)&symbol_table[i], SYMESZ, 1, fp);
Jerry James e1ab74d
@@ -206,7 +206,7 @@ object faslfile;
Jerry James e1ab74d
 	    symbol_table[i].n_un.n_strx = string_size;
Jerry James e1ab74d
 	    dprintf(string_size %d, string_size);
Jerry James e1ab74d
 	    string_size += symbol_table[i].n_length + 1;
Jerry James e1ab74d
-	    fseek(fp,(int)symbol_table[i].n_length,1);
Jerry James e1ab74d
+	    fseeko(fp,(off_t)symbol_table[i].n_length,1);
Jerry James e1ab74d
 #endif
Jerry James e1ab74d
 	  }
Jerry James e1ab74d
        }
Jerry James e1ab74d
@@ -223,13 +223,13 @@ my_string_table=READ_IN_STRING_TABLE(fp,
Jerry James e1ab74d
 
Jerry James e1ab74d
 #else  
Jerry James e1ab74d
 #ifdef MUST_SEEK_TO_STROFF
Jerry James e1ab74d
-  fseek(fp,N_STROFF(fileheader),0);
Jerry James e1ab74d
+  fseeko(fp,N_STROFF(fileheader),0);
Jerry James e1ab74d
 #endif	
Jerry James e1ab74d
   {int ii=0;
Jerry James e1ab74d
 	if (!fread((char *)&ii,sizeof(int),1,fp))
Jerry James e1ab74d
           {FEerror("The string table of this file did not have any length",0,
Jerry James e1ab74d
 		   0);}
Jerry James e1ab74d
-	    fseek(fp,-4,1);
Jerry James e1ab74d
+	    fseeko(fp,-4,1);
Jerry James e1ab74d
 	    /* at present the string table is located just after the symbols */
Jerry James e1ab74d
 	    my_string_table=OUR_ALLOCA((unsigned int)ii);
Jerry James e1ab74d
 	    dprintf( string table leng = %d, ii);
Jerry James e1ab74d
@@ -246,7 +246,7 @@ SEEK_TO_END_OFILE(fp);
Jerry James e1ab74d
 	ungetc(i, fp);
Jerry James e1ab74d
 #endif
Jerry James e1ab74d
 	
Jerry James e1ab74d
-	fasl_vector_start=ftell(fp);
Jerry James e1ab74d
+	fasl_vector_start=ftello(fp);
Jerry James e1ab74d
 
Jerry James e1ab74d
    if (!((c_table.ptable) && *(c_table.ptable)))
Jerry James e1ab74d
      build_symbol_table();
Jerry James e1ab74d
@@ -278,7 +278,7 @@ SEEK_TO_END_OFILE(fp);
Jerry James e1ab74d
 #endif
Jerry James e1ab74d
 
Jerry James e1ab74d
 	dprintf( code size %d , datasize+textsize+bsssize + extra_bss);
Jerry James e1ab74d
-	if (fseek(fp,N_TXTOFF(fileheader) ,0) < 0)
Jerry James e1ab74d
+	if (fseeko(fp,N_TXTOFF(fileheader) ,0) < 0)
Jerry James e1ab74d
 		FEerror("file seek error",0,0);
Jerry James e1ab74d
 	SAFE_FREAD(the_start, textsize + datasize, 1, fp);
Jerry James e1ab74d
 	dprintf(read into memory text +data %d bytes, textsize + datasize);
Jerry James e1ab74d
@@ -292,7 +292,7 @@ SEEK_TO_END_OFILE(fp);
Jerry James e1ab74d
   {int j=0;
Jerry James e1ab74d
      for(j=1; j< BSS_NSCN ; j++)
Jerry James e1ab74d
        { dprintf( relocating section %d \n,j);
Jerry James e1ab74d
-	if (section[j].s_nreloc) fseek(fp,section[j].s_relptr,0);
Jerry James e1ab74d
+	if (section[j].s_nreloc) fseeko(fp,section[j].s_relptr,0);
Jerry James e1ab74d
         for(i=0; i < section[j].s_nreloc; i++)
Jerry James e1ab74d
 	  { struct syment *sym;
Jerry James e1ab74d
 	    fread(&relocation_info, RELSZ, 1, fp);
Jerry James e1ab74d
@@ -311,7 +311,7 @@ SEEK_TO_END_OFILE(fp);
Jerry James e1ab74d
   {int j=0;
Jerry James e1ab74d
      for(j=1; j< BSS_NSCN ; j++)
Jerry James e1ab74d
        { dprintf( relocating section %d \n,j);
Jerry James e1ab74d
-	if (section[j].s_nreloc) fseek(fp,section[j].s_relptr,0);
Jerry James e1ab74d
+	if (section[j].s_nreloc) fseeko(fp,section[j].s_relptr,0);
Jerry James e1ab74d
 #ifdef ADJUST_RELOC_START
Jerry James e1ab74d
 ADJUST_RELOC_START(j)
Jerry James e1ab74d
 #endif  
Jerry James e1ab74d
@@ -323,7 +323,7 @@ ADJUST_RELOC_START(j)
Jerry James e1ab74d
         }};
Jerry James e1ab74d
 #endif
Jerry James e1ab74d
 #ifdef BSD
Jerry James e1ab74d
-	 fseek(fp,N_RELOFF(fileheader),0);
Jerry James e1ab74d
+	 fseeko(fp,N_RELOFF(fileheader),0);
Jerry James e1ab74d
 	{int nrel = (fileheader.a_trsize/sizeof(struct reloc));
Jerry James e1ab74d
 	 for (i=0; i < nrel; i++)
Jerry James e1ab74d
 	   {fread((char *)&relocation_info, sizeof(struct reloc),
Jerry James e1ab74d
@@ -333,7 +333,7 @@ ADJUST_RELOC_START(j)
Jerry James e1ab74d
 		}
Jerry James e1ab74d
 	}
Jerry James e1ab74d
 #ifdef N_DRELOFF
Jerry James e1ab74d
-	 fseek (fp, N_DRELOFF(fileheader), 0);
Jerry James e1ab74d
+	 fseeko (fp, N_DRELOFF(fileheader), 0);
Jerry James e1ab74d
 #endif
Jerry James e1ab74d
 	 {int nrel = (fileheader.a_drsize/sizeof(struct reloc));
Jerry James e1ab74d
 	  the_start += fileheader.a_text;
Jerry James e1ab74d
@@ -354,7 +354,7 @@ ADJUST_RELOC_START(j)
Jerry James e1ab74d
        dprintf( datasize is %x,datasize);
Jerry James e1ab74d
 
Jerry James e1ab74d
 /* read in the fasl vector */
Jerry James e1ab74d
-	fseek(fp,fasl_vector_start,0);
Jerry James e1ab74d
+	fseeko(fp,fasl_vector_start,0);
Jerry James e1ab74d
         if (feof(fp))
Jerry James e1ab74d
 	  {data=0;}
Jerry James e1ab74d
          else{
Jerry James e1ab74d
--- ./o/file.d.orig	2013-05-11 14:29:11.000000000 -0600
Jerry James 1275dae
+++ ./o/file.d	2013-05-31 16:44:36.727101429 -0600
Jerry James e1ab74d
@@ -410,7 +410,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
 			    }
Jerry James 1275dae
@@ -1321,7 +1321,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
 {
Jerry James 1275dae
@@ -1333,7 +1333,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
 	  
Jerry James 1275dae
@@ -1364,7 +1364,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) {
Jerry James 1275dae
@@ -1374,7 +1374,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);
Jerry James 1275dae
@@ -1410,7 +1410,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
 {
Jerry James 1275dae
@@ -1773,14 +1773,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;
Jerry James 1275dae
@@ -1807,7 +1807,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;
Jerry James 1275dae
@@ -2706,22 +2706,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);
Jerry James 1275dae
@@ -2730,7 +2730,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);
Jerry James e1ab74d
--- ./o/unexelf.c.orig	2004-05-03 15:35:58.000000000 -0600
Jerry James e1ab74d
+++ ./o/unexelf.c	2013-05-13 14:46:33.928671146 -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 e1ab74d
@@ -687,13 +688,13 @@ 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 e1ab74d
   old_base = mmap (NULL, old_file_size, PROT_READ | PROT_WRITE,
Jerry James e1ab74d
 		   MAP_ANON | MAP_PRIVATE, mmap_fd, 0);
Jerry James e1ab74d
   if (old_base == MAP_FAILED)
Jerry James e1ab74d
     fatal ("Can't allocate buffer for %s\n", old_name);
Jerry James e1ab74d
 
Jerry James e1ab74d
-  if (read (old_file, old_base, stat_buf.st_size) != stat_buf.st_size)
Jerry James e1ab74d
+  if (read (old_file, old_base, old_file_size) != stat_buf.st_size)
Jerry James e1ab74d
     fatal ("Didn't read all of %s: errno %d\n", old_name, errno);
Jerry James e1ab74d
 
Jerry James e1ab74d
   /* Get pointers to headers & section names */
Jerry James e1ab74d
@@ -778,7 +779,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 e1ab74d
-  new_base = mmap (NULL, new_file_size, PROT_READ | PROT_WRITE,
Jerry James e1ab74d
+  new_base = mmap (NULL, (size_t) new_file_size, PROT_READ | PROT_WRITE,
Jerry James e1ab74d
 		   MAP_ANON | MAP_PRIVATE, mmap_fd, 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
@@ -1208,12 +1209,12 @@ unexec (char *new_name, char *old_name,
Jerry James e1ab74d
 
Jerry James e1ab74d
   /* Write out new_file, and free the buffers.  */
Jerry James e1ab74d
 
Jerry James e1ab74d
-  if (write (new_file, new_base, new_file_size) != new_file_size)
Jerry James e1ab74d
-    fatal ("Didn't write %d bytes to %s: errno %d\n",
Jerry James e1ab74d
-	   new_file_size, new_base, errno);
Jerry James e1ab74d
+  if (write (new_file, new_base, (size_t) new_file_size) != new_file_size)
Jerry James e1ab74d
+    fatal ("Didn't write %zu bytes to %s: errno %d\n",
Jerry James e1ab74d
+	   (size_t) 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
 
Jerry James e1ab74d
--- ./o/fasdump.c.orig	2005-10-05 12:51:55.000000000 -0600
Jerry James e1ab74d
+++ ./o/fasdump.c	2013-05-13 14:46:33.929671144 -0600
Jerry James e1ab74d
@@ -605,7 +605,7 @@ FFN(open_fasd)(object stream, object dir
Jerry James e1ab74d
     fd->eof=eof;
Jerry James e1ab74d
     fd->index=small_fixnum(0);
Jerry James e1ab74d
     fd->package=symbol_value(sLApackageA);
Jerry James e1ab74d
-    fd->filepos = make_fixnum(file_position(stream));
Jerry James e1ab74d
+    fd->filepos = C_INT_TO_OBJ(file_position(stream));
Jerry James e1ab74d
     
Jerry James e1ab74d
     SETUP_FASD_IN(fd);
Jerry James e1ab74d
     if (direction==sKoutput){
Jerry James e1ab74d
@@ -645,7 +645,7 @@ FFN(close_fasd)(object ar)
Jerry James e1ab74d
        {clrhash(fd->table);
Jerry James e1ab74d
 	SETUP_FASD_IN(fd);
Jerry James e1ab74d
 	PUT_OP(d_end_of_file);
Jerry James e1ab74d
-	{int i = file_position(fd->stream);
Jerry James e1ab74d
+	{off_t i = file_position(fd->stream);
Jerry James e1ab74d
 	 if(type_of(fd->filepos) == t_fixnum)
Jerry James e1ab74d
 	  { file_position_set(fd->stream,fix(fd->filepos) +2);
Jerry James e1ab74d
 	    /* record the length of array needed to read the indices */
Jerry James e1ab74d
--- ./o/unixsave.c.orig	2005-05-06 15:56:56.000000000 -0600
Jerry James e1ab74d
+++ ./o/unixsave.c	2013-05-13 14:46:33.929671144 -0600
Jerry James e1ab74d
@@ -93,7 +93,7 @@ memory_save(original_file, save_file)
Jerry James e1ab74d
 char *original_file, *save_file;
Jerry James e1ab74d
 {	MEM_SAVE_LOCALS;
Jerry James e1ab74d
 	char *data_begin, *data_end;
Jerry James e1ab74d
-	int original_data;
Jerry James e1ab74d
+	off_t original_data = 0;
Jerry James e1ab74d
 	FILE *original, *save;
Jerry James e1ab74d
 	register int n;
Jerry James e1ab74d
 	register char *p;
Jerry James e1ab74d
@@ -130,7 +130,7 @@ char *original_file, *save_file;
Jerry James e1ab74d
 		} else
Jerry James e1ab74d
 			break;
Jerry James e1ab74d
 
Jerry James e1ab74d
-	fseek(original, original_data, 1);
Jerry James e1ab74d
+	fseeko(original, original_data, 1);
Jerry James e1ab74d
 
Jerry James e1ab74d
 	COPY_TO_SAVE;
Jerry James e1ab74d
 
Jerry James 1275dae
--- ./o/unixfsys.c.orig	2013-01-21 14:18:53.000000000 -0700
Jerry James e1ab74d
+++ ./o/unixfsys.c	2013-05-13 14:46:33.929671144 -0600
Jerry James e1ab74d
@@ -414,7 +414,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 e1ab74d
@@ -486,7 +486,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
 
Jerry James e1ab74d
--- ./unixport/bsd_rsym.c.orig	1999-12-06 15:44:15.000000000 -0700
Jerry James e1ab74d
+++ ./unixport/bsd_rsym.c	2013-05-13 14:46:33.930671142 -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;
Jerry James e1ab74d
--- ./unixport/rsym.c.orig	2002-07-25 15:49:47.000000000 -0600
Jerry James e1ab74d
+++ ./unixport/rsym.c	2013-05-13 14:46:33.930671142 -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++)
Jerry James e1ab74d
--- ./unixport/rsym_elf.c.orig	2004-05-03 15:35:59.000000000 -0600
Jerry James e1ab74d
+++ ./unixport/rsym_elf.c	2013-05-13 14:46:33.930671142 -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
Jerry James 1275dae
--- ./configure.in.orig	2013-05-10 08:26:52.000000000 -0600
Jerry James e1ab74d
+++ ./configure.in	2013-05-13 14:46:51.387638090 -0600
Jerry James e1ab74d
@@ -425,7 +425,7 @@ AC_USE_SYSTEM_EXTENSIONS
Jerry James e1ab74d
 AC_PROG_CC
Jerry James e1ab74d
 AC_PROG_CPP
Jerry James e1ab74d
 AC_SUBST(CC)
Jerry James e1ab74d
-
Jerry James e1ab74d
+AC_SYS_LARGEFILE
Jerry James e1ab74d
 
Jerry James e1ab74d
 # can only test for numbers -- CM
Jerry James e1ab74d
 # if test "${GCC}" -eq "yes" ; then
Jerry James 1275dae
--- ./configure.orig	2013-05-10 10:23:17.000000000 -0600
Jerry James e1ab74d
+++ ./configure	2013-05-13 14:46:55.322630640 -0600
Jerry James e1ab74d
@@ -763,6 +763,7 @@ enable_static
Jerry James e1ab74d
 enable_pic
Jerry James e1ab74d
 enable_oldgmp
Jerry James e1ab74d
 enable_dynsysgmp
Jerry James e1ab74d
+enable_largefile
Jerry James e1ab74d
 with_x
Jerry James e1ab74d
 enable_readline
Jerry James e1ab74d
 enable_ansi
Jerry James e1ab74d
@@ -1428,6 +1429,7 @@ Optional Features:
Jerry James e1ab74d
 
Jerry James e1ab74d
  --enable-dynsysgmp will link against the system libgmp3 overriding certain functions with patched versions from the local source
Jerry James e1ab74d
 
Jerry James e1ab74d
+  --disable-largefile     omit support for large files
Jerry James e1ab74d
 --enable-readline    enables command line completion via the readline library
Jerry James e1ab74d
 --enable-ansi builds a large gcl aiming for ansi compliance,
Jerry James e1ab74d
 		    --disable-ansi builds the smaller traditional CLtL1 image
Jerry James e1ab74d
@@ -5067,6 +5069,205 @@ ac_link='$CC -o conftest$ac_exeext $CFLA
Jerry James e1ab74d
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
Jerry James e1ab74d
 
Jerry James e1ab74d
 
Jerry James e1ab74d
+# Check whether --enable-largefile was given.
Jerry James e1ab74d
+if test "${enable_largefile+set}" = set; then :
Jerry James e1ab74d
+  enableval=$enable_largefile;
Jerry James e1ab74d
+fi
Jerry James e1ab74d
+
Jerry James e1ab74d
+if test "$enable_largefile" != no; then
Jerry James e1ab74d
+
Jerry James e1ab74d
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
Jerry James e1ab74d
+$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
Jerry James e1ab74d
+if ${ac_cv_sys_largefile_CC+:} false; then :
Jerry James e1ab74d
+  $as_echo_n "(cached) " >&6
Jerry James e1ab74d
+else
Jerry James e1ab74d
+  ac_cv_sys_largefile_CC=no
Jerry James e1ab74d
+     if test "$GCC" != yes; then
Jerry James e1ab74d
+       ac_save_CC=$CC
Jerry James e1ab74d
+       while :; do
Jerry James e1ab74d
+	 # IRIX 6.2 and later do not support large files by default,
Jerry James e1ab74d
+	 # so use the C compiler's -n32 option if that helps.
Jerry James e1ab74d
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Jerry James e1ab74d
+/* end confdefs.h.  */
Jerry James e1ab74d
+#include <sys/types.h>
Jerry James e1ab74d
+ /* Check that off_t can represent 2**63 - 1 correctly.
Jerry James e1ab74d
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
Jerry James e1ab74d
+    since some C++ compilers masquerading as C compilers
Jerry James e1ab74d
+    incorrectly reject 9223372036854775807.  */
Jerry James e1ab74d
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
Jerry James e1ab74d
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
Jerry James e1ab74d
+		       && LARGE_OFF_T % 2147483647 == 1)
Jerry James e1ab74d
+		      ? 1 : -1];
Jerry James e1ab74d
+int
Jerry James e1ab74d
+main ()
Jerry James e1ab74d
+{
Jerry James e1ab74d
+
Jerry James e1ab74d
+  ;
Jerry James e1ab74d
+  return 0;
Jerry James e1ab74d
+}
Jerry James e1ab74d
+_ACEOF
Jerry James e1ab74d
+	 if ac_fn_c_try_compile "$LINENO"; then :
Jerry James e1ab74d
+  break
Jerry James e1ab74d
+fi
Jerry James e1ab74d
+rm -f core conftest.err conftest.$ac_objext
Jerry James e1ab74d
+	 CC="$CC -n32"
Jerry James e1ab74d
+	 if ac_fn_c_try_compile "$LINENO"; then :
Jerry James e1ab74d
+  ac_cv_sys_largefile_CC=' -n32'; break
Jerry James e1ab74d
+fi
Jerry James e1ab74d
+rm -f core conftest.err conftest.$ac_objext
Jerry James e1ab74d
+	 break
Jerry James e1ab74d
+       done
Jerry James e1ab74d
+       CC=$ac_save_CC
Jerry James e1ab74d
+       rm -f conftest.$ac_ext
Jerry James e1ab74d
+    fi
Jerry James e1ab74d
+fi
Jerry James e1ab74d
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
Jerry James e1ab74d
+$as_echo "$ac_cv_sys_largefile_CC" >&6; }
Jerry James e1ab74d
+  if test "$ac_cv_sys_largefile_CC" != no; then
Jerry James e1ab74d
+    CC=$CC$ac_cv_sys_largefile_CC
Jerry James e1ab74d
+  fi
Jerry James e1ab74d
+
Jerry James e1ab74d
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
Jerry James e1ab74d
+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
Jerry James e1ab74d
+if ${ac_cv_sys_file_offset_bits+:} false; then :
Jerry James e1ab74d
+  $as_echo_n "(cached) " >&6
Jerry James e1ab74d
+else
Jerry James e1ab74d
+  while :; do
Jerry James e1ab74d
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Jerry James e1ab74d
+/* end confdefs.h.  */
Jerry James e1ab74d
+#include <sys/types.h>
Jerry James e1ab74d
+ /* Check that off_t can represent 2**63 - 1 correctly.
Jerry James e1ab74d
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
Jerry James e1ab74d
+    since some C++ compilers masquerading as C compilers
Jerry James e1ab74d
+    incorrectly reject 9223372036854775807.  */
Jerry James e1ab74d
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
Jerry James e1ab74d
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
Jerry James e1ab74d
+		       && LARGE_OFF_T % 2147483647 == 1)
Jerry James e1ab74d
+		      ? 1 : -1];
Jerry James e1ab74d
+int
Jerry James e1ab74d
+main ()
Jerry James e1ab74d
+{
Jerry James e1ab74d
+
Jerry James e1ab74d
+  ;
Jerry James e1ab74d
+  return 0;
Jerry James e1ab74d
+}
Jerry James e1ab74d
+_ACEOF
Jerry James e1ab74d
+if ac_fn_c_try_compile "$LINENO"; then :
Jerry James e1ab74d
+  ac_cv_sys_file_offset_bits=no; break
Jerry James e1ab74d
+fi
Jerry James e1ab74d
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
Jerry James e1ab74d
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Jerry James e1ab74d
+/* end confdefs.h.  */
Jerry James e1ab74d
+#define _FILE_OFFSET_BITS 64
Jerry James e1ab74d
+#include <sys/types.h>
Jerry James e1ab74d
+ /* Check that off_t can represent 2**63 - 1 correctly.
Jerry James e1ab74d
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
Jerry James e1ab74d
+    since some C++ compilers masquerading as C compilers
Jerry James e1ab74d
+    incorrectly reject 9223372036854775807.  */
Jerry James e1ab74d
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
Jerry James e1ab74d
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
Jerry James e1ab74d
+		       && LARGE_OFF_T % 2147483647 == 1)
Jerry James e1ab74d
+		      ? 1 : -1];
Jerry James e1ab74d
+int
Jerry James e1ab74d
+main ()
Jerry James e1ab74d
+{
Jerry James e1ab74d
+
Jerry James e1ab74d
+  ;
Jerry James e1ab74d
+  return 0;
Jerry James e1ab74d
+}
Jerry James e1ab74d
+_ACEOF
Jerry James e1ab74d
+if ac_fn_c_try_compile "$LINENO"; then :
Jerry James e1ab74d
+  ac_cv_sys_file_offset_bits=64; break
Jerry James e1ab74d
+fi
Jerry James e1ab74d
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
Jerry James e1ab74d
+  ac_cv_sys_file_offset_bits=unknown
Jerry James e1ab74d
+  break
Jerry James e1ab74d
+done
Jerry James e1ab74d
+fi
Jerry James e1ab74d
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
Jerry James e1ab74d
+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
Jerry James e1ab74d
+case $ac_cv_sys_file_offset_bits in #(
Jerry James e1ab74d
+  no | unknown) ;;
Jerry James e1ab74d
+  *)
Jerry James e1ab74d
+cat >>confdefs.h <<_ACEOF
Jerry James e1ab74d
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
Jerry James e1ab74d
+_ACEOF
Jerry James e1ab74d
+;;
Jerry James e1ab74d
+esac
Jerry James e1ab74d
+rm -rf conftest*
Jerry James e1ab74d
+  if test $ac_cv_sys_file_offset_bits = unknown; then
Jerry James e1ab74d
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
Jerry James e1ab74d
+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
Jerry James e1ab74d
+if ${ac_cv_sys_large_files+:} false; then :
Jerry James e1ab74d
+  $as_echo_n "(cached) " >&6
Jerry James e1ab74d
+else
Jerry James e1ab74d
+  while :; do
Jerry James e1ab74d
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Jerry James e1ab74d
+/* end confdefs.h.  */
Jerry James e1ab74d
+#include <sys/types.h>
Jerry James e1ab74d
+ /* Check that off_t can represent 2**63 - 1 correctly.
Jerry James e1ab74d
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
Jerry James e1ab74d
+    since some C++ compilers masquerading as C compilers
Jerry James e1ab74d
+    incorrectly reject 9223372036854775807.  */
Jerry James e1ab74d
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
Jerry James e1ab74d
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
Jerry James e1ab74d
+		       && LARGE_OFF_T % 2147483647 == 1)
Jerry James e1ab74d
+		      ? 1 : -1];
Jerry James e1ab74d
+int
Jerry James e1ab74d
+main ()
Jerry James e1ab74d
+{
Jerry James e1ab74d
+
Jerry James e1ab74d
+  ;
Jerry James e1ab74d
+  return 0;
Jerry James e1ab74d
+}
Jerry James e1ab74d
+_ACEOF
Jerry James e1ab74d
+if ac_fn_c_try_compile "$LINENO"; then :
Jerry James e1ab74d
+  ac_cv_sys_large_files=no; break
Jerry James e1ab74d
+fi
Jerry James e1ab74d
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
Jerry James e1ab74d
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
Jerry James e1ab74d
+/* end confdefs.h.  */
Jerry James e1ab74d
+#define _LARGE_FILES 1
Jerry James e1ab74d
+#include <sys/types.h>
Jerry James e1ab74d
+ /* Check that off_t can represent 2**63 - 1 correctly.
Jerry James e1ab74d
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
Jerry James e1ab74d
+    since some C++ compilers masquerading as C compilers
Jerry James e1ab74d
+    incorrectly reject 9223372036854775807.  */
Jerry James e1ab74d
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
Jerry James e1ab74d
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
Jerry James e1ab74d
+		       && LARGE_OFF_T % 2147483647 == 1)
Jerry James e1ab74d
+		      ? 1 : -1];
Jerry James e1ab74d
+int
Jerry James e1ab74d
+main ()
Jerry James e1ab74d
+{
Jerry James e1ab74d
+
Jerry James e1ab74d
+  ;
Jerry James e1ab74d
+  return 0;
Jerry James e1ab74d
+}
Jerry James e1ab74d
+_ACEOF
Jerry James e1ab74d
+if ac_fn_c_try_compile "$LINENO"; then :
Jerry James e1ab74d
+  ac_cv_sys_large_files=1; break
Jerry James e1ab74d
+fi
Jerry James e1ab74d
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
Jerry James e1ab74d
+  ac_cv_sys_large_files=unknown
Jerry James e1ab74d
+  break
Jerry James e1ab74d
+done
Jerry James e1ab74d
+fi
Jerry James e1ab74d
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
Jerry James e1ab74d
+$as_echo "$ac_cv_sys_large_files" >&6; }
Jerry James e1ab74d
+case $ac_cv_sys_large_files in #(
Jerry James e1ab74d
+  no | unknown) ;;
Jerry James e1ab74d
+  *)
Jerry James e1ab74d
+cat >>confdefs.h <<_ACEOF
Jerry James e1ab74d
+#define _LARGE_FILES $ac_cv_sys_large_files
Jerry James e1ab74d
+_ACEOF
Jerry James e1ab74d
+;;
Jerry James e1ab74d
+esac
Jerry James e1ab74d
+rm -rf conftest*
Jerry James e1ab74d
+  fi
Jerry James e1ab74d
+
Jerry James e1ab74d
+
Jerry James e1ab74d
+fi
Jerry James e1ab74d
 
Jerry James e1ab74d
 
Jerry James e1ab74d
 # can only test for numbers -- CM