<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-60) unstable; urgency=medium

  * list_order.19

Gbp-Pq: Name list_order.20

h/elf64_ppcle_reloc_special.h
h/object.h
o/fat_string.c

index f2c6c16d186402462a1d37c2328d99a3aee2d482..93aad64b82b80c0ac003608a12d6bf6e595c1622 100644 (file)
@@ -16,7 +16,7 @@ find_special_params(void *v,Shdr *sec1,Shdr *sece,const char *sn,
   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;
index 79febb13f8673fb4aaa98561501d6f515024eaab..74939f2bd28ca77e1ab0b5b798e6812a8639d91d 100755 (executable)
@@ -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)))
 
index 13fd6e9ae737123642309fa5ced195fdd5938a9a..4084cd685e754900224a27ece1884c27cac20f59 100755 (executable)
@@ -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);
 }