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);
}