Blob Blame Raw
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.
 .
 gcl (2.6.12-60) unstable; urgency=medium
 .
   * list_order.19
Author: Camm Maguire <camm@debian.org>

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

Origin: <vendor|upstream|other>, <url of original patch>
Bug: <url in upstream bugtracker>
Bug-Debian: https://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: <no|not-needed|url proving that it has been forwarded>
Reviewed-By: <name and email of someone who approved the patch>
Last-Update: 2018-01-30

--- gcl-2.6.12.orig/h/elf64_ppcle_reloc_special.h
+++ gcl-2.6.12/h/elf64_ppcle_reloc_special.h
@@ -16,7 +16,7 @@ find_special_params(void *v,Shdr *sec1,S
   Rela *r;
   void *ve;
 
-  massert((sec=get_section(".rela.plt",sec1,sece,sn)));
+  massert((sec=get_section(".rela.dyn",sec1,sece,sn)));
 
   v+=sec->sh_offset;
   ve=v+sec->sh_size;
--- gcl-2.6.12.orig/h/object.h
+++ gcl-2.6.12/h/object.h
@@ -401,9 +401,9 @@ char *tmp_alloc;
    */
 
 #define ALLOC_ALIGNED(f, size,align) \
-  (align <= sizeof(plong) ? (char *)((f)(size)) : \
-   (tmp_alloc = (char *)((f)(size+(size ?(align)-1 : 0)))+(align)-1 , \
-   (char *)(align * (((unsigned long)tmp_alloc)/align))))
+  ({ufixnum _size=size,_align=align;_align <= sizeof(plong) ? (char *)((f)(_size)) :	\
+    (tmp_alloc = (char *)((f)(_size+(_size ?(_align)-1 : 0)))+(_align)-1 ,	\
+    (char *)(_align * (((unsigned long)tmp_alloc)/_align)));})
 #define AR_ALLOC(f,n,type) (type *) \
   (ALLOC_ALIGNED(f,(n)*sizeof(type),sizeof(type)))
 
--- gcl-2.6.12.orig/o/fat_string.c
+++ gcl-2.6.12/o/fat_string.c
@@ -47,13 +47,17 @@ DEFUN_NEW("PROFILE",object,fSprofile,SI
   
   object ar=sSAprofile_arrayA->s.s_dbind;
   void *x;
+  fixnum a,s;
 
   if (type_of(ar)!=t_string)
     FEerror("si:*Profile-array* not a string",0);
   if( type_of(start_address)!=t_fixnum ||   type_of(scale)!=t_fixnum)
     FEerror("Needs start address and scale as args",0);
 
-  x=!(fix(start_address)*fix(scale)) ? NULL : (void *) (ar->ust.ust_self);
+  massert((a=fix(start_address))>=0);
+  massert((s=fix(scale))>=0);
+
+  x=a&&s ? (void *) (ar->ust.ust_self) : NULL;
   profil(x, (ar->ust.ust_dim),fix(start_address),fix(scale) << 8);
   RETURN1(start_address);
 }