Description: <short summary of the patch>
 TODO: Put a short summary on the line above and replace this paragraph
 with a longer explanation of this change. Complete the meta-information
 with other relevant fields (see below for details). To make it easier, the
 information below has been extracted from the changelog. Adjust it or drop
 it.
 .
 gcl27 (2.7.0-15) unstable; urgency=medium
 .
   * Version_2_7_0pre18
Author: Camm Maguire <camm@debian.org>

---
The information above should follow the Patch Tagging Guidelines, please
checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:

Origin: (upstream|backport|vendor|other), (<patch-url>|commit:<commit-id>)
Bug: <upstream-bugtracker-url>
Bug-Debian: https://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: (no|not-needed|<patch-forwarded-url>)
Applied-Upstream: <version>, (<commit-url>|commit:<commid-id>)
Reviewed-By: <name and email of someone who approved/reviewed the patch>
Last-Update: 2024-02-22

--- gcl27-2.7.0.orig/cmpnew/gcl_cmpfun.lsp
+++ gcl27-2.7.0/cmpnew/gcl_cmpfun.lsp
@@ -332,7 +332,7 @@
 	     (c1progn (append args (list r)) (nconc nargs (list (if r (c1t) (c1nil)))))))
 	  ((let ((x (get-vbind (car nargs)))(y (get-vbind (cadr nargs))))
 	     (when (or (when x (eq x y)) (and (symbolp (car args)) (eq (car args) (cadr args))))
-	       (if (member fn '(= >= <=)) (c1t) (c1nil)))))
+	       (if (member fn '(= >= <=)) (c1t) (c1nil)))));FIXME nan
 	  ((list 'call-global info fn nargs)))))
 
 (dolist (l `(>= > < <= = /=))
--- gcl27-2.7.0.orig/gcl-tk/comm.c
+++ gcl27-2.7.0/gcl-tk/comm.c
@@ -268,7 +268,7 @@ DEFUN("CLEAR-CONNECTION",object,fSclear_
   
   char buffer[0x1000];
   int n=0;
-  while (fix(FFN(fScheck_fd_for_input)(fd,0)))
+  while ((fixnum)(FFN(fScheck_fd_for_input)(fd,0)))
     n+=read(fd,buffer,sizeof(buffer));
   
   return (object)(fixnum)n;
--- gcl27-2.7.0.orig/git.tag
+++ gcl27-2.7.0/git.tag
@@ -1,2 +1,2 @@
-"Version_2_7_0pre17"
+"Version_2_7_0pre18"
 
--- gcl27-2.7.0.orig/h/att_ext.h
+++ gcl27-2.7.0/h/att_ext.h
@@ -24,26 +24,13 @@ Foundation, 675 Mass Ave, Cambridge, MA
 #endif
 
 /*  alloc.c  */
-object alloc_object();
-void *malloc(size_t);
-void *realloc(void *,size_t);
 /* void * memalign(size_t,size_t); */
-void *alloc_contblock(size_t);
-void *alloc_relblock(size_t);
-/* object fSallocate_contiguous_pages(); */
-/* object fSallocate_relocatable_pages(); */
 
 /*  array.c  */
-/* enum aelttype Iarray_element_type(); */
-object fLrow_major_aref();
-object fSaset1();
 EXTER object sLarray_dimension_limit;
 EXTER object sLarray_total_size_limit;
-object fSmake_array1();
-/* object fSmake_vector1(); */
 
 /*  assignment.c  */
-/* object setf(); */
 
 
 
@@ -57,18 +44,8 @@ EXTER object sLnconc;
 /*  bds.c  */
 
 /*  big.c  */
-object make_integer_clear();
-object stretch_big();
-object copy_big();
-object copy_to_big();
-object big_minus();
-object big_plus();
-object big_times();
-object normalize_big_to_object();
-double big_to_double();
 EXTER  struct bignum big_fixnum1_body,big_fixnum2_body,big_fixnum3_body,big_fixnum4_body,big_fixnum5_body;
 EXTER object big_fixnum1,big_fixnum2,big_fixnum3,big_fixnum4,big_fixnum5;
-object maybe_replace_big();
 
 
 
@@ -80,21 +57,10 @@ EXTER object ANDkey;
 EXTER object ANDallow_other_keys;
 EXTER object ANDaux;
 EXTER object sKallow_other_keys;
-object find_special();
-object let_bind();
-object letA_bind();
 
 /* block.c */
 
 /*  cfun.c  */
-object make_cfun();
-object MF();
-/* object MM(); */
-/* object make_function_internal(); */
-/* object make_si_function_internal(); */
-/* object make_special_form_internal(); */
-object make_macro();
-object make_cclosure_new();
 
 /*  character.d  */
 EXTER object STreturn;
@@ -105,15 +71,10 @@ EXTER object STtab;
 EXTER object STbackspace;
 EXTER object STlinefeed;
 EXTER object STnewline;
-object coerce_to_character();
 
 /*  catch.c  */
 
 /*  cmpaux.c  */
-char object_to_char();
-char *object_to_string();
-float object_to_float();
-double object_to_double();
 
 /*  error.c  */
 EXTER object sKerror,sKparse_error,sKreader_error,sKprogram_error;
@@ -127,28 +88,14 @@ EXTER object sKexpected_type;
 EXTER object sKpackage;
 EXTER object sKformat_control;
 EXTER object sKformat_arguments;
-object wrong_type_argument();
 EXTER object sSuniversal_error_handler;
 EXTER object sSPminus_most_negative_fixnumP;
 
 /*  eval.c  */
 EXTER object sLapply;
 EXTER object sLfuncall;
-object simple_lispcall();
-object simple_lispcall_no_event();
-object simple_symlispcall();
-object simple_symlispcall_no_event();
 EXTER object siVevalhook;
 EXTER object siVapplyhook;
-object ieval();
-object ifuncall(object,int,...);
-object ifuncall1();
-object ifuncall2();
-object ifuncall3();
-/* object fcalln1(); */
-/* #define fcalln ((object (*)())fcalln1) */
-object Ieval();
-object Imacro_expand1();
 
 /*  unixfasl.c  fasload.c  */
 
@@ -187,26 +134,14 @@ EXTER object standard_error;
 
 EXTER object sLAload_verboseA;
 EXTER object FASL_string;
-/* object stream_element_type(); */
-object open_stream();
-/* object make_two_way_stream(); */
-/* object make_echo_stream(); */
-object make_string_input_stream();
-object make_string_output_stream();
-/* object get_output_stream_string(); */
-object read_fasl_data();
 
 #ifdef UNIX
 /*  unixfsys.c  */
-FILE *backup_fopen();
 #else
 /*  filesystem.c  */
-FILE *backup_fopen();
 #endif
 
 /*  frame.c  */
-frame_ptr frs_sch();
-frame_ptr frs_sch_catch();
 
 /*  gbc.c  */
 EXTER bool GBC_enable;
@@ -218,9 +153,6 @@ EXTER bool gcl_unrandomized;
 /*  let.c  */
 
 /*  lex.c  */
-object assoc_eq();
-object lex_tag_sch();
-object lex_block_sch();
 
 /*  list.d  */
 EXTER object sKtest;
@@ -228,62 +160,18 @@ EXTER object sKtest_not;
 EXTER object sKkey;
 EXTER object sKinitial_element;
 /* EXTER object sKrev; */
-object car();
-object cdr();
-object kdr();
-object caar();
-object cadr();
-object cdar();
-object cddr();
-object caaar();
-object caadr();
-object cadar();
-object caddr();
-object cdaar();
-object cdadr();
-object cddar();
-object cdddr();
-object caaaar();
-object caaadr();
-object caadar();
-object caaddr();
-object cadaar();
-object cadadr();
-object caddar();
-object cadddr();
-object cdaaar();
-object cdaadr();
-object cdadar();
-object cdaddr();
-object cddaar();
-object cddadr();
-object cdddar();
-object cddddr();
-object nth();
-object nthcdr();
-object make_cons1();
-object list(fixnum,...);
-object listA(fixnum,...);
-object append();
-object copy_list();
-object make_list();
-object nconc();
-object sublis1();
 
 /*  macros.c  */
 EXTER object sLAmacroexpand_hookA;
 EXTER object sSdefmacroA;
-object macro_expand();
 
 /*  main.c  */
 EXTER char * system_directory;
 EXTER int ARGC;
 EXTER char **ARGV;
-void error();
 #ifdef UNIX
 EXTER char **ENVP;
 #endif
-object vs_overflow(void);
 
 EXTER object sSAsystem_directoryA;
 #ifdef UNIX
@@ -292,7 +180,6 @@ EXTER char *kcl_self;
 #if !defined(IN_MAIN) || !defined(ATT)
 EXTER bool raw_image;
 #endif
-char *merge_system_directory();
 
 
 EXTER object sLquote;
@@ -317,42 +204,15 @@ EXTER object sLblock;
 EXTER object shortfloat_zero;
 EXTER object longfloat_zero;
 /* #define make_fixnum(a) ({fixnum _a=(a);((_a+SMALL_FIXNUM_LIMIT)&(-2*SMALL_FIXNUM_LIMIT))==0?small_fixnum(_a):make_fixnum1(_a);}) */
-object make_fixnum1(long);
-object make_ratio();
-object make_shortfloat(float);
-object make_longfloat();
-object make_complex();
-double number_to_double();
-long fixint(object);
 /*  num_pred.c  */
 
 /*  num_comp.c  */
 
 /*  num_arith  */
-object bignum2();
-object bignum3();
-/* object number_to_complex(); */
-object complex_plus();
-object number_plus();
-object number_negate();
-object number_minus();
-object number_times();
-object number_divide();
-object number_expt();
-object integer_divide1();
-object get_gcd();
-object get_lcm();
-object one_plus();
-object one_minus();
-object fixnum_add();
-object fixnum_sub();
-object new_bignum();
 
 /*  num_co.c  */
-object double_to_integer();
 
 /*  num_log.c  */
-object shift_integer();
 
 /*  package.d  */
 EXTER object lisp_package;
@@ -368,14 +228,6 @@ EXTER object sKnicknames;
 EXTER object sKuse;
 EXTER int intern_flag;
 EXTER object uninterned_list;
-/* object make_package(); */
-/* object in_package(); */
-/* object rename_package(); */
-object find_package();
-/* object coerce_to_package(); */
-object current_package();
-object intern();
-object find_symbol();
 
 /*  pathname.d  */
 EXTER object Vdefault_pathname_defaults;
@@ -396,22 +248,6 @@ EXTER object sKabsolute;
 EXTER object sKrelative;
 EXTER object sKup;
 
-/* object parse_namestring(); */
-object coerce_to_pathname();
-/* object default_device(); */
-object merge_pathnames();
-object namestring();
-object coerce_to_namestring();
-object coerce_to_pathname();
-object file_error();
-object wild_pathname_p();
-
-extern int pathname_resolve();
-extern object pathname_lookup();
-extern object translate_logical_pathname();
-extern object search_local_pathname();
-extern object coerce_to_local_namestring();
-extern object expand_pathname();
 
 /*  print.d  */
 EXTER object sKupcase;
@@ -452,10 +288,6 @@ EXTER object sLAprint_lengthA;
 EXTER object sLAprint_arrayA;
 EXTER object sSAprint_contextA;
 EXTER object sSAprint_context_headA;
-object princ();
-object prin1();
-object print();
-object terpri();
 EXTER object sSpretty_print_format;
 EXTER int  line_length;
 
@@ -466,7 +298,6 @@ EXTER object sLAread_default_float_forma
 EXTER object sLAread_baseA;
 EXTER object sLAread_suppressA;
 EXTER object READtable;
-EXTER object read_byte1();
 EXTER int READdefault_float_format;
 EXTER int READbase;
 EXTER bool READsuppress;
@@ -481,51 +312,19 @@ EXTER bool preserving_whitespace_flag;
 EXTER object default_dispatch_macro;
 EXTER object big_register_0;
 EXTER int sharp_eq_context_max;
-object read_char();
-object read_char1(object,object);
-object peek_char();
-/* object read_object_recursive(); */
-object read_object_non_recursive();
-object standard_read_object_non_recursive();
-object read_object();
-/* object parse_number(); */
-/* object parse_integer(); */
-/* object copy_readtable(); */
-/* object current_readtable(); */
-/* object patch_sharp(); */
-object read_fasl_vector();
 
 /* fasdump.c */
 EXTER object sharing_table;
 
 /*  reference.c  */
-object symbol_function();
 
 
 /*  sequence.d  */
-object alloc_simple_vector();
-object alloc_simple_bitvector();
-object alloc_vector();
-object alloc_bitvector();
-object elt();
-object elt_set();
-object reverse();
-object nreverse();
 
 /*  structure.c  */
 EXTER object sSs_data;
-object structure_ref();
-object structure_set();
-object structure_to_list();
 
 /*  string.d  */
-object alloc_simple_string();
-object make_simple_string();
-object copy_simple_string();
-object alloc_string();
-object make_string();
-object copy_string();
-object coerce_to_string();
 EXTER int string_sign, string_boundary;
 
 /*  symbol.d  */
@@ -536,24 +335,6 @@ EXTER object string_register;
 EXTER object gentemp_prefix;
 EXTER int gentemp_counter;
 EXTER object token;
-object make_symbol();
-object make_ordinary();
-object make_special();
-object make_constant();
-object make_gmp_ordinary();
-object make_si_ordinary();
-object make_si_special();
-object make_si_constant();
-object make_keyword();
-object symbol_value();
-object symbol_name();
-object getf();
-object get();
-object putf();
-object putprop();
-object fSsputprop();
-object remprop();
-object gensym();		/*  to be deleted  */
 
 #ifdef UNIX
 /*  unixsys.c  */
@@ -563,7 +344,6 @@ object gensym();		/*  to be deleted  */
 
 #ifdef UNIX
 /*  unixtime.c  */
-object unix_time_to_universal_time();
 #else
 /*  time.c  */
 #endif
@@ -633,32 +413,9 @@ EXTER int interrupt_enable;		/* console
 EXTER object sSAlink_arrayA;
 
 /* nfunlink.c */
-object Icall_proc();
-float Icall_proc_float();
 /* object Icall_proc(); */
-float Icall_proc_float();
-object ImakeStructure();
-object list_vector();
-object list_vector_new();
-object Iapply_ap();
-object IisFboundp();
-object IapplyVector();
 EXTER object sSPmemory;
 EXTER object sSPinit;
-object sLfset();
-object MakeAfun();
-extern object call_proc0();
-/* extern object call_proc(); */
-/* extern object call_vproc(); */
-object fLrow_major_aref();
-object Icheck_one_type();
-
-/* utils.c */
-object Iis_fixnum();
-object Iapply_fun_n(object,int,int,...);
-object Iapply_fun_n1(object (*)(),int,int,...);
-object Iapply_fun_n2(object,int,int,...);
-object Ifuncall_n(object,int,...);
-object Ivs_values();
-object Icheck_one_type();
-object fSincorrect_type();
+
+/* string.d */
+int  (*casefun)();
--- gcl27-2.7.0.orig/h/elf64_riscv64_reloc.h
+++ gcl27-2.7.0/h/elf64_riscv64_reloc.h
@@ -13,6 +13,7 @@
       store_val(where,MASK(7)<<25,(s+a)<<20);
       break;
     case R_RISCV_CALL:
+    case R_RISCV_CALL_PLT:
       store_val(where,MASK(20)<<12,riscv_high(s+a-p));
       store_val((void *)where+4,MASK(12)<<20,(s+a-p)<<20);
       break;
@@ -22,8 +23,50 @@
     case R_RISCV_JAL:
       break;
     case R_RISCV_64:
-      store_val(where,MASK(64),(s+a));
+      store_val(where,~0L,(s+a));
       break;
     case R_RISCV_32:
       store_val(where,MASK(32),(s+a));
       break;
+    case R_RISCV_32_PCREL:
+      store_val(where,MASK(32),(s+a)-p);
+      break;
+    case R_RISCV_ADD8:
+      add_val(where,MASK(8),(s+a));
+      break;
+    case R_RISCV_ADD16:
+      add_val(where,MASK(16),(s+a));
+      break;
+    case R_RISCV_ADD32:
+      add_val(where,MASK(32),(s+a));
+      break;
+    case R_RISCV_ADD64:
+      add_val(where,~0L,(s+a));
+      break;
+    case R_RISCV_SUB6:
+      add_val(where,MASK(6),-(s+a));
+      break;
+    case R_RISCV_SUB8:
+      add_val(where,MASK(8),-(s+a));
+      break;
+    case R_RISCV_SUB16:
+      add_val(where,MASK(16),-(s+a));
+      break;
+    case R_RISCV_SUB32:
+      add_val(where,MASK(32),-(s+a));
+      break;
+    case R_RISCV_SUB64:
+      add_val(where,~0L,-(s+a));
+      break;
+    case R_RISCV_SET6:
+      store_val(where,MASK(6),(s+a));
+      break;
+    case R_RISCV_SET8:
+      store_val(where,MASK(8),(s+a));
+      break;
+    case R_RISCV_SET16:
+      store_val(where,MASK(16),(s+a));
+      break;
+    case R_RISCV_SET32:
+      store_val(where,MASK(32),(s+a));
+      break;
--- gcl27-2.7.0.orig/h/lu.h
+++ gcl27-2.7.0/h/lu.h
@@ -266,7 +266,7 @@ struct hashtable {           /*  hash ta
   ufixnum   J(b_,J(c_,dim)):ARRAY_DIMENSION_BITS;	\
   ufixnum   J(b_,J(c_,eltmode)):3;			\
   ufixnum   pad1:LM(31)
-
+/*FIXME SPAD*/
 #endif
 
 #define dimstempl(b_,c_)			\
--- gcl27-2.7.0.orig/h/notcomp.h
+++ gcl27-2.7.0/h/notcomp.h
@@ -8,7 +8,6 @@
 #define	CHAR_CODE_LIMIT	256	
 #define	READ_TABLE_SIZE CHAR_CODE_LIMIT
 
-void enter_mark_origin() ;
 
 EXTER int *cs_org;     
 EXTER int GBC_enable;
@@ -18,9 +17,7 @@ EXTER object sSAnotify_gbcA;
 
 /* symbols which are not needed in compiled lisp code */
 EXTER int interrupt_flag,interrupt_enable;
-void install_default_signals();
 /* void sigint(),sigalrm(); */
-void segmentation_catcher();
 
 
 EXTER int gc_enabled, saving_system;
@@ -29,7 +26,6 @@ EXTER object lisp_package,user_package;
 EXTER char *core_end;
 EXTER int catch_fatal;
 EXTER long real_maxpage;
-char *getenv();
 EXTER char *this_lisp;
 
 EXTER char stdin_buf[],stdout_buf[];
@@ -154,8 +150,6 @@ STATD ret FFN(fname) args
 #endif /* NO_DEFUN */
 
 
-object  type_name();
-object fSincorret_type();
 
 
 #define TYPE_OF(x) type_of(x)
@@ -170,7 +164,6 @@ TS_MEMBER(t0,TS(t1)|TS(t2)|TS(t3)...)
 
 #define ASSURE_TYPE(val,t) if (type_of(val)!=t) TYPE_ERROR(val,type_name(t))
 
-object IisArray();
 
 /* array to which X is has its body displaced */
 #define DISPLACED_TO(x) Mcar(ADISP(x))
@@ -207,16 +200,12 @@ EXTER int eval1 ;
 EXTER bool in_list_flag;
 EXTER object test_function;
 EXTER object item_compared;
-bool (*tf)();
 EXTER object key_function;
-object (*kf)();
-object (*car_or_cdr)();
 
 
 /* string.d */
 EXTER  bool left_trim;
 EXTER bool right_trim;
-int  (*casefun)();
 
 
 /* on most machines this will test in one instruction
@@ -238,10 +227,7 @@ EXTER object sSXB;
 
 #define	inheap(pp)	((char *)(pp) < heap_end)
 
-char *lisp_copy_to_null_terminated();
 
-int
-gcl_init_cmp_anon(void);
 
 #undef SAFE_READ
 #undef SAFE_FREAD
--- gcl27-2.7.0.orig/h/object.h
+++ gcl27-2.7.0/h/object.h
@@ -537,7 +537,6 @@ EXTER char *alloca_val;
 #define ON_STACK_CONS(x,y) (ALLOCA_CONS_ALIGN(1), on_stack_cons(x,y)) 
 
 
-object make_si_sfun();
 
 /*FIXME -- this is an effort to minimize uninitialized garbage in the
   stack.  THe only comprehensive solution appears to be to wipe the
@@ -622,8 +621,6 @@ object make_si_sfun();
 
 
 
-object funcall_cfun(void(*)(),int,...);
-object clear_compiler_properties();
 EXTER object sSlambda_block_expanded;
 
 # ifdef __GNUC__ 
@@ -654,7 +651,6 @@ EXTER object sSlambda_block_expanded;
     do{ if(signals_allowed ==0) /* should not get here*/gcl_abort(); \
    raise_pending_signals(sig_safe)}while(0)
 
-void raise_pending_signals();
 
 EXTER unsigned plong signals_allowed, signals_pending;
 
--- gcl27-2.7.0.orig/h/protoize.h
+++ gcl27-2.7.0/h/protoize.h
@@ -1609,3 +1609,60 @@ apply_format_function(object,object,obje
 
 object
 fSstring_match2(object,object);
+
+object alloc_simple_string(int);
+object alloc_string(int);
+object append(object,object);
+object car(object);
+object cdr(object);
+object copy_list(object);
+object copy_simple_string(object);
+object current_package(void);
+object find_package(object);
+object find_symbol(object,object);
+object getf(object,object,object);
+object intern(object,object);
+object make_constant(char *,object);
+object make_keyword(char *);
+object make_ordinary(char *);
+object make_si_constant(char *,object);
+object make_si_ordinary(char *);
+object make_si_special(char *,object);
+object make_special(char *,object);
+object nreverse(object);
+double object_to_double(object);
+object open_stream(object,enum smmode,object,object);
+object putf(object,object,object);
+object putprop(object,object,object);
+object read_object(object);
+object read_object_non_recursive(object);
+object make_symbol(object);
+object elt_set(object,int,object);
+object reverse(object);
+object alloc_bitvector(int);
+object alloc_simple_bitvector(int);
+object alloc_simple_vector(int);
+object alloc_vector(int,enum aelttype);
+object coerce_to_character(object);
+object peek_char(bool,object);
+object prin1(object,object);
+object read_char(object);
+object make_string_output_stream(int);
+object make_gmp_ordinary(char *);
+void *malloc(size_t);
+void *realloc(void *,size_t);
+void *alloc_contblock(size_t);
+void *alloc_relblock(size_t);
+object ifuncall(object,int,...);
+object list(fixnum,...);
+object listA(fixnum,...);
+object vs_overflow(void);
+object make_fixnum1(long);
+object make_shortfloat(float);
+long fixint(object);
+object read_char1(object,object);
+object Iapply_fun_n(object,int,int,...);
+object Iapply_fun_n2(object,int,int,...);
+object Ifuncall_n(object,int,...);
+object funcall_cfun(void(*)(),int,...);
+int gcl_init_cmp_anon(void);
--- gcl27-2.7.0.orig/h/usig.h
+++ gcl27-2.7.0/h/usig.h
@@ -1,11 +1,6 @@
 typedef void (*handler_function_type)(int,siginfo_t *,void *);
 
 EXTER handler_function_type our_signal_handler[32];
-#ifdef __MINGW32__
-void main_signal_handler (int signo);
-#else
-void main_signal_handler();
-#endif
 
    
 #define signal_mask(n)  (1 << (n))
--- gcl27-2.7.0.orig/lsp/gcl_deftype.lsp
+++ gcl27-2.7.0/lsp/gcl_deftype.lsp
@@ -445,7 +445,7 @@
 (deftype non-negative-immfix nil
   `(non-negative-byte ,(1+ (integer-length most-positive-immfix))))
 (deftype immfix nil
-  `(signed-byte #.(1+ (integer-length most-positive-immfix))));FIXME check null
+  #.(when (plusp most-positive-immfix) `'(signed-byte ,(1+ (integer-length most-positive-immfix)))));FIXME check null
 (deftype fixnum nil
   `(signed-byte #.(1+ (integer-length most-positive-fixnum))))
 (deftype bfix nil
--- gcl27-2.7.0.orig/lsp/gcl_typeof.lsp
+++ gcl27-2.7.0/lsp/gcl_typeof.lsp
@@ -20,7 +20,7 @@
   (declare (optimize (safety 1))(ignore element-type))
   (make-string-output-stream-int))
 
-(defconstant +r+ `((immfix 1)
+(defconstant +r+ `(,@(when (plusp most-positive-immfix) `((immfix 1)))
 		   (bfix  most-positive-fixnum)
 		   (bignum (1+ most-positive-fixnum))
 		   (ratio 1/2)
--- gcl27-2.7.0.orig/o/main.c
+++ gcl27-2.7.0/o/main.c
@@ -1088,9 +1088,6 @@ DEFUN("IDENTITY",object,fLidentity,LISP,
   RETURN1 (x0);
 }
 
-DEFUN("GCL-COMPILE-TIME",object,fSgcl_compile_time,SI,0,0,NONE,OO,OO,OO,OO,(void),"") {
-  RETURN1 (make_simple_string(__DATE__ " " __TIME__));
-}
 
 DEFUN("LISP-IMPLEMENTATION-VERSION",object,fLlisp_implementation_version,LISP,0,0,NONE,OO,OO,OO,OO,(void),"") {
   RETURN1((make_simple_string(LISP_IMPLEMENTATION_VERSION)));
--- gcl27-2.7.0.orig/o/makefun.c
+++ gcl27-2.7.0/o/makefun.c
@@ -87,7 +87,7 @@ DEFUN("INIT-FUNCTION",object,fSinit_func
   d=data!=Cnil ? data : m;
   i=sSPinit;
   i=i ? i->s.s_dbind : i;
-  s=i && i!=OBJNULL && !get_pageinfo(addr) && ((void *)addr)>=data_start && type_of(addr)==t_fixnum ? i->v.v_self[fix(addr)] : addr;
+  s=i && i!=OBJNULL && !get_pageinfo(addr) && type_of(addr)==t_fixnum ? i->v.v_self[fix(addr)] : addr;
   z=type_of(sc)==t_cons && sc->c.c_car==sSmacro; /*FIXME limited no. of args.*/
   sc=z ? sc->c.c_cdr : sc;
   sc=type_of(sc)==t_function ? sc->fun.fun_plist : sc;
--- gcl27-2.7.0.orig/o/usig.c
+++ gcl27-2.7.0/o/usig.c
@@ -48,6 +48,9 @@ Foundation, 675 Mass Ave, Cambridge, MA
 extern char signals_handled[];
 
 void
+main_signal_handler(int,siginfo_t,void *);
+
+void
 gcl_signal(int signo, void (*handler) (/* ??? */))
 {
   char *p = signals_handled;
--- gcl27-2.7.0.orig/o/usig2_aux.c
+++ gcl27-2.7.0/o/usig2_aux.c
@@ -16,8 +16,6 @@ XS(endp_temp);
 XSI(eval1);
 XSI(line_length);
 XSI(in_list_flag);
-XS(kf);
-XS(tf);
 XSI(left_trim);
 XSI(right_trim);
 XS(lex_env);
@@ -30,7 +28,6 @@ XSI(preserving_whitespace_flag);
 XS(sharing_table);
 XSI(string_sign);
 XSI(string_boundary);
-XS(car_or_cdr);
 XS(casefun);
 XS(tmp_alloc);
 #ifndef GMP 
