<short summary of the patch>
authorCamm Maguire <camm@debian.org>
Sun, 13 Nov 2022 12:55:14 +0000 (12:55 +0000)
committerCamm Maguire <camm@debian.org>
Sun, 13 Nov 2022 12:55:14 +0000 (12:55 +0000)
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.

gcl (2.6.12-68) unstable; urgency=medium

  * Version_2_6_13pre57

Gbp-Pq: Name Version_2_6_13pre58

h/elf64_alpha_reloc_special.h
o/cmpaux.c
o/fasdump.c
o/gbc.c

index a7086ef72eaaf160e3ffbd3e148a844235edb1cd..69f85f3088c39f124502a0a8bdc11eeb4abfe826 100644 (file)
@@ -65,7 +65,7 @@ label_got_symbols(void *v1,Shdr *sec1,Shdr *sece,Sym *sym1,Sym *syme,const char
   Sym *sym;
   Shdr *sec;
   void *v,*ve;
-  ul q=0,a;
+  ul a,b;
 
   for (sym=sym1;sym<syme;sym++)
     sym->st_other=sym->st_size=0;
index 5599171fdb03718a3622b1fb45516a1aaf2915e1..ac9543a9b2eba17eeeb235e6f9a6298603bd8113 100755 (executable)
@@ -348,6 +348,8 @@ call_init(int init_address,object memory,object faslfile) {
 
    */
 
+object *min_cfd_self=NULL;
+
 void
 do_init(object *statVV) {
 
@@ -386,6 +388,8 @@ do_init(object *statVV) {
   }
 
   data->cfd.cfd_self = statVV;
+  if (!min_cfd_self || data->cfd.cfd_self<min_cfd_self)
+    min_cfd_self=data->cfd.cfd_self;
   data->cfd.cfd_fillp= n;
   statVV[n-1] = data;
 
index e3c149dac9f1788193aa047340226fc8211ed6dd..d73c016e37128b859c2212b3e8c54dc52ba40e2c 100755 (executable)
@@ -640,7 +640,7 @@ DEFUN_NEW("CLOSE-FASD",object,fSclose_fasd,SI,1,1,NONE,OO,OO,OO,OO,(object ar),"
    if (type_of(fd->table)==t_vector)
      /* input uses a vector */
      {if (fd->table->v.v_self)
-        fd->table->v.v_dim=0;/*self can be on the stack, and others write there*/
+        gset(fd->table->v.v_self,0,fix(fd->index),aet_object);
     }
    else
      if(fd->direction==sKoutput)
diff --git a/o/gbc.c b/o/gbc.c
index 0f1507f46fd6acd93c78992b38ce3d141d87f05c..30b0dc8ffab5926b1b39c02564d10f70efd610f9 100755 (executable)
--- a/o/gbc.c
+++ b/o/gbc.c
@@ -446,6 +446,7 @@ mark_object_address(object *o,int f) {
 
   static ufixnum lp;
   static ufixnum lr;
+  extern object *min_cfd_self;
 
   ufixnum p=page(o);
 
@@ -455,7 +456,7 @@ mark_object_address(object *o,int f) {
 #ifdef SGC
       sgc_enabled ? WRITABLE_PAGE_P(lp) :
 #endif
-      1;
+      (o>=min_cfd_self && o<((object *)core_end));
   }
 
   if (lr)