Description: 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 --- 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: , Bug: Bug-Debian: https://bugs.debian.org/ Bug-Ubuntu: https://launchpad.net/bugs/ Forwarded: Reviewed-By: 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); }