The package rpms/gcl.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/gcl.git/commit/?id=d60bed4b8418a421b....
Change: +%ifarch ppc64le
Thanks.
Full change: ============
commit d60bed4b8418a421b51a716ddad55ec2af68a95a Author: Jerry James loganjerry@gmail.com Date: Sat Jun 29 09:56:17 2019 -0600
Update to 2.6.13pre84 (bz 1674924).
Also: - Drop the -selinux patch and subpackage, no longer needed. - Build with -fwrapv. - Add the -libselinux patch to fix FTBFS if selinuxfs is mounted read-only. - Build with -mno-pltseq on ppc64le to handle relocation issues.
diff --git a/Version_2_6_13pre80.patch b/Version_2_6_13pre80.patch new file mode 100644 index 0000000..ad89d0d --- /dev/null +++ b/Version_2_6_13pre80.patch @@ -0,0 +1,111 @@ +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-83) unstable; urgency=high + . + * Version_2_6_13pre79 + * Fix acl2 arm builds (Closes: #919477). +Author: Camm Maguire camm@debian.org +Bug-Debian: https://bugs.debian.org/919477 + +--- +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: 2019-03-21 + +--- gcl-2.6.12.orig/h/notcomp.h ++++ gcl-2.6.12/h/notcomp.h +@@ -175,7 +175,7 @@ TS_MEMBER(t0,TS(t1)|TS(t2)|TS(t3)...) + #define TS(s) (1<<s) + #define TS_MEMBER(t1,ts) ((TS(t1)) & (ts)) + +-#define ASSURE_TYPE(val,t) if(type_of(val)!=t) val= Icheck_one_type(val,t) ++#define ASSURE_TYPE(val,t) if (type_of(val)!=t) TYPE_ERROR(val,type_name(t)) + + object IisArray(); + +--- gcl-2.6.12.orig/o/alloc.c ++++ gcl-2.6.12/o/alloc.c +@@ -526,16 +526,9 @@ exhausted_report(enum type t,struct type + + available_pages+=resv_pages; + resv_pages=0; +- vs_push(type_name(t)); +- vs_push(make_fixnum(tm->tm_npage)); +- CEerror("The storage for ~A is exhausted.~%\ +-Currently, ~D pages are allocated.~% \ +-Use ALLOCATE to expand the space.", +- "Continues execution.", +- 2, vs_top[-2], vs_top[-1], Cnil, Cnil); +- +- vs_popp; +- vs_popp; ++ CEerror("Continues execution.", ++ "The storage for ~A is exhausted. ~D pages allocated. Use ALLOCATE to expand the space.", ++ 2, type_name(t), make_fixnum(tm->tm_npage)); + + call_after_gbc_hook(t); + +--- gcl-2.6.12.orig/o/array.c ++++ gcl-2.6.12/o/array.c +@@ -211,14 +211,18 @@ DEFUN_NEW("ASET1", object, fSaset1, SI, + break; + case aet_bit: + i += BV_OFFSET(x); +- AGAIN_BIT: + ASSURE_TYPE(val,t_fixnum); +- {int v = Mfix(val); +- if (v == 0) CLEAR_BITREF(x,i); +- else if (v == 1) SET_BITREF(x,i); +- else {val= fSincorrect_type(val,sLbit); +- goto AGAIN_BIT;} +- break;} ++ switch (Mfix(val)) { ++ case 0: ++ CLEAR_BITREF(x,i); ++ break; ++ case 1: ++ SET_BITREF(x,i); ++ break; ++ default: ++ TYPE_ERROR(val,sLbit); ++ } ++ break; + case aet_fix: + ASSURE_TYPE(val,t_fixnum); + (x->fixa.fixa_self[i]) = Mfix(val); +--- gcl-2.6.12.orig/o/utils.c ++++ gcl-2.6.12/o/utils.c +@@ -169,20 +169,6 @@ Ifuncall_n(object fun,int n,...) { + /* return res; */ + /* } */ + +-object +-Icheck_one_type(object x, enum type t) +-{ if (x->d.t != t) +- { return CEerror("Expected a ~a ","Supply right type",1,type_name(t),Cnil,Cnil,Cnil); +- } +- return x; +-} +- +- +-object +-fSincorrect_type(object val, object type) +-{ return CEerror("Got ~a,Expected a ~a","Supply a new one",1,val,type,Cnil,Cnil); +-} +- + /* static void */ + /* Ineed_in_image(object (*foo) (/* ??? */)) */ + /* {;} */ diff --git a/Version_2_6_13pre81.patch b/Version_2_6_13pre81.patch new file mode 100644 index 0000000..63f2a28 --- /dev/null +++ b/Version_2_6_13pre81.patch @@ -0,0 +1,71 @@ +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-84) unstable; urgency=medium + . + * Version_2_6_13pre80 +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: 2019-03-28 + +--- gcl-2.6.12.orig/o/alloc.c ++++ gcl-2.6.12/o/alloc.c +@@ -329,7 +329,7 @@ empty_relblock(void) { + void + setup_rb(bool preserve_rb_pointerp) { + +- int lowp=new_rb_start!=rb_start || rb_high(); ++ int lowp=rb_high(); + + update_pool(2*(nrbpage-page(rb_size()))); + rb_start=new_rb_start; +@@ -349,10 +349,13 @@ resize_hole(ufixnum hp,enum type tp,bool + char *start=rb_begin(),*new_start=heap_end+hp*PAGESIZE; + ufixnum size=rb_pointer-start; + +- if (!in_placep && +- ((new_start<=start && start<new_start+size) || (new_start<start+size && start+size<=new_start+size))) { ++ if (!in_placep && (rb_high() ? ++ new_start+size>rb_end : ++ new_start+(nrbpage<<PAGEWIDTH)<start+size ++ /* 0 (20190401 never reached)*/ ++ )) { + if (sSAnotify_gbcA->s.s_dbind != Cnil) +- emsg("Toggling relblock when resizing hole to %lu\n",hp); ++ emsg("[GC Toggling relblock when resizing hole to %lu]\n",hp); + tm_table[t_relocatable].tm_adjgbccnt--; + GBC(t_relocatable); + return resize_hole(hp,tp,in_placep); +@@ -389,7 +392,7 @@ alloc_page(long n) { + d=(available_pages/3)<d ? (available_pages/3) : d; + + if (sSAnotify_gbcA && sSAnotify_gbcA->s.s_dbind != Cnil) +- emsg("Hole overrun\n"); ++ emsg("[GC Hole overrun]\n"); + + resize_hole(d+nn,t_relocatable,0); + +@@ -852,7 +855,7 @@ add_pages(struct typemanager *tm,fixnum + + if (rb_high() && m>((rb_start-heap_end)>>PAGEWIDTH)) { + if (sSAnotify_gbcA->s.s_dbind != Cnil) +- emsg("Moving relblock low before expanding relblock pages\n"); ++ emsg("[GC Moving relblock low before expanding relblock pages]\n"); + tm_table[t_relocatable].tm_adjgbccnt--; + GBC(t_relocatable); + } diff --git a/Version_2_6_13pre82.patch b/Version_2_6_13pre82.patch new file mode 100644 index 0000000..17a9f6f --- /dev/null +++ b/Version_2_6_13pre82.patch @@ -0,0 +1,40 @@ +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-85) unstable; urgency=medium + . + * Version_2_6_13pre81 +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: 2019-03-28 + +--- gcl-2.6.12.orig/o/alloc.c ++++ gcl-2.6.12/o/alloc.c +@@ -349,9 +349,10 @@ resize_hole(ufixnum hp,enum type tp,bool + char *start=rb_begin(),*new_start=heap_end+hp*PAGESIZE; + ufixnum size=rb_pointer-start; + ++#define OVERLAP(c_,t_,s_) ((t_)<(c_)+(s_) && (c_)<(t_)+(s_)) + if (!in_placep && (rb_high() ? +- new_start+size>rb_end : +- new_start+(nrbpage<<PAGEWIDTH)<start+size ++ OVERLAP(start,new_start,size) : ++ OVERLAP(start,new_start+(nrbpage<<PAGEWIDTH),size) + /* 0 (20190401 never reached)*/ + )) { + if (sSAnotify_gbcA->s.s_dbind != Cnil) diff --git a/Version_2_6_13pre83.patch b/Version_2_6_13pre83.patch new file mode 100644 index 0000000..585f44f --- /dev/null +++ b/Version_2_6_13pre83.patch @@ -0,0 +1,446 @@ +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-85) unstable; urgency=medium + . + * Version_2_6_13pre82 +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: 2019-04-02 + +--- gcl-2.6.12.orig/configure ++++ gcl-2.6.12/configure +@@ -6375,7 +6375,7 @@ main () + FILE *f; + if (!(f=fopen("conftest1","w"))) + return -1; +- fprintf(f,"%u",sbrk(0)); ++ fprintf(f,"%p",sbrk(0)); + + ; + return 0; +@@ -6591,7 +6591,7 @@ else + #endif + if (!(f=fopen("conftest1","w"))) + return -1; +- fprintf(f,"%u",sbrk(0)); ++ fprintf(f,"%p",sbrk(0)); + return 0; + } + +@@ -6625,7 +6625,7 @@ else + #include "h/unrandomize.h" + #endif + if (!(f=fopen("conftest1","w"))) return -1; +- fprintf(f,"%u",sbrk(0)); ++ fprintf(f,"%p",sbrk(0)); + return 0; + } + +@@ -6653,8 +6653,9 @@ $as_echo "no" >&6; } + as_fn_error $? "exiting" "$LINENO" 5 + fi + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CSTACK_ADDRESS" >&5 +-$as_echo_n "checking CSTACK_ADDRESS... " >&6; } ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CSTACK_DIRECTION" >&5 ++$as_echo_n "checking CSTACK_DIRECTION... " >&6; } + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in `$ac_pwd':" >&5 + $as_echo "$as_me: error: in `$ac_pwd':" >&2;} +@@ -6666,14 +6667,61 @@ else + + #include <stdio.h> + #include <stdlib.h> +- void * +- foo() { ++ ++ unsigned long w; ++ ++ void ++ foo(void) { + int i; +- return (void *)&i; ++ w=(unsigned long)&i; + } + + int + main(int argc,char **argv,char **envp) { ++ void *b; ++ FILE *fp = fopen("conftest1","w"); ++ #ifdef CAN_UNRANDOMIZE_SBRK ++ #include "h/unrandomize.h" ++ #endif ++ foo(); ++ fprintf(fp,"%d",((unsigned long) &b) > w ? -1 : 1); ++ fclose(fp); ++ return 0; ++ } ++_ACEOF ++if ac_fn_c_try_run "$LINENO"; then : ++ cstack_direction=`cat conftest1` ++else ++ cstack_direction=0 ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define CSTACK_DIRECTION $cstack_direction ++_ACEOF ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cstack_direction" >&5 ++$as_echo "$cstack_direction" >&6; } ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CSTACK_ADDRESS" >&5 ++$as_echo_n "checking CSTACK_ADDRESS... " >&6; } ++if test "$cross_compiling" = yes; then : ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in `$ac_pwd':" >&5 ++$as_echo "$as_me: error: in `$ac_pwd':" >&2;} ++as_fn_error $? "cannot run test program while cross compiling ++See `config.log' for more details" "$LINENO" 5; } ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++ #include <stdio.h> ++ #include <stdlib.h> ++ int ++ main(int argc,char **argv,char **envp) { + void *v ; + FILE *fp = fopen("conftest1","w"); + unsigned long i,j; +@@ -6685,13 +6733,13 @@ else + j<<=$PAGEWIDTH; + j<<=16; + i=(unsigned long)&v; +- if (foo()>i) i-=j; +- j--; +- i+=j; +- i&=~j; +- fprintf(fp,"0x%lx",i-1); +- fclose(fp); +- return 0; ++ if ($cstack_direction==1) i-=j; ++ j--; ++ i+=j; ++ i&=~j; ++ fprintf(fp,"0x%lx",i-1); ++ fclose(fp); ++ return 0; + } + _ACEOF + if ac_fn_c_try_run "$LINENO"; then : +@@ -6724,12 +6772,6 @@ else + + #include <stdio.h> + #include <stdlib.h> +- void * +- foo() { +- int i; +- return (void *)&i; +- } +- + int + main(int argc,char **argv,char **envp) { + void *v ; +@@ -6743,14 +6785,14 @@ else + j<<=$PAGEWIDTH; + j<<=16; + i=(unsigned long)&v; +- if (foo()>i) i-=j; +- j--; +- i+=j; +- i&=~j; +- for (j=0;(i>>j)!=(i>>(sizeof(long)*8-1));j++); +- fprintf(fp,"%d",j); +- fclose(fp); +- return 0; ++ if ($cstack_direction==1) i-=j; ++ j--; ++ i+=j; ++ i&=~j; ++ for (j=0;(i>>j)!=(i>>(sizeof(long)*8-1));j++); ++ fprintf(fp,"%ld",j); ++ fclose(fp); ++ return 0; + } + _ACEOF + if ac_fn_c_try_run "$LINENO"; then : +@@ -6854,54 +6896,6 @@ _ACEOF + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cstack_alignment" >&5 + $as_echo "$cstack_alignment" >&6; } + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CSTACK_DIRECTION" >&5 +-$as_echo_n "checking CSTACK_DIRECTION... " >&6; } +-if test "$cross_compiling" = yes; then : +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in `$ac_pwd':" >&5 +-$as_echo "$as_me: error: in `$ac_pwd':" >&2;} +-as_fn_error $? "cannot run test program while cross compiling +-See `config.log' for more details" "$LINENO" 5; } +-else +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +- #include <stdio.h> +- #include <stdlib.h> +- void * +- foo(void) { +- int i; +- return (void *)&i; +- } +- +- int +- main(int argc,char **argv,char **envp) { +- char *b; +- FILE *fp = fopen("conftest1","w"); +- #ifdef CAN_UNRANDOMIZE_SBRK +- #include "h/unrandomize.h" +- #endif +- fprintf(fp,"%d",((long) &b) > ((long) foo()) ? -1 : 1); +- fclose(fp); +- return 0; +- } +-_ACEOF +-if ac_fn_c_try_run "$LINENO"; then : +- cstack_direction=`cat conftest1` +-else +- cstack_direction=0 +-fi +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +- conftest.$ac_objext conftest.beam conftest.$ac_ext +-fi +- +- +-cat >>confdefs.h <<_ACEOF +-#define CSTACK_DIRECTION $cstack_direction +-_ACEOF +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cstack_direction" >&5 +-$as_echo "$cstack_direction" >&6; } +- + # Check whether --enable-immfix was given. + if test "${enable_immfix+set}" = set; then : + enableval=$enable_immfix; +@@ -7050,8 +7044,7 @@ int + main () + { + +- void *v; +- unsigned long i,j,k,l,m; ++ unsigned long i,j,k,l; + FILE *fp = fopen("conftest1","w"); + + for (i=2,k=1;i;k=i,i<<=1); +--- gcl-2.6.12.orig/configure.in ++++ gcl-2.6.12/configure.in +@@ -1049,7 +1049,7 @@ AC_RUN_IFELSE( + FILE *f; + if (!(f=fopen("conftest1","w"))) + return -1; +- fprintf(f,"%u",sbrk(0)); ++ fprintf(f,"%p",sbrk(0)); + ]])], + [HAVE_SBRK=1;AC_MSG_RESULT([yes])], + AC_MSG_RESULT([no: WARNING you must be able to emulate sbrk: as on mingw or macosx]), +@@ -1145,7 +1145,7 @@ if test "$HAVE_SBRK" = "1" ; then + #endif + if (!(f=fopen("conftest1","w"))) + return -1; +- fprintf(f,"%u",sbrk(0)); ++ fprintf(f,"%p",sbrk(0)); + return 0; + } + ]])],[SBRK=`cat conftest1`]) +@@ -1165,7 +1165,7 @@ if test "$HAVE_SBRK" = "1" ; then + #include "h/unrandomize.h" + #endif + if (!(f=fopen("conftest1","w"))) return -1; +- fprintf(f,"%u",sbrk(0)); ++ fprintf(f,"%p",sbrk(0)); + return 0; + } + ]])],[SBRK1=`cat conftest1`]) +@@ -1183,20 +1183,47 @@ if test "$HAVE_SBRK" = "1" ; then + AC_MSG_ERROR([exiting]) + fi + fi +-AC_MSG_CHECKING(CSTACK_ADDRESS) ++ ++AC_MSG_CHECKING(CSTACK_DIRECTION) + AC_RUN_IFELSE( + [AC_LANG_SOURCE( + [[ + #include <stdio.h> + #include <stdlib.h> +- void * +- foo() { ++ ++ unsigned long w; ++ ++ void ++ foo(void) { + int i; +- return (void *)&i; ++ w=(unsigned long)&i; + } + + int + main(int argc,char **argv,char **envp) { ++ void *b; ++ FILE *fp = fopen("conftest1","w"); ++ #ifdef CAN_UNRANDOMIZE_SBRK ++ #include "h/unrandomize.h" ++ #endif ++ foo(); ++ fprintf(fp,"%d",((unsigned long) &b) > w ? -1 : 1); ++ fclose(fp); ++ return 0; ++ }]])], ++ [cstack_direction=`cat conftest1`],[cstack_direction=0]) ++AC_DEFINE_UNQUOTED(CSTACK_DIRECTION,$cstack_direction,[whether C stack grows up or down]) ++AC_MSG_RESULT($cstack_direction) ++ ++ ++AC_MSG_CHECKING(CSTACK_ADDRESS) ++AC_RUN_IFELSE( ++ [AC_LANG_SOURCE( ++ [[ ++ #include <stdio.h> ++ #include <stdlib.h> ++ int ++ main(int argc,char **argv,char **envp) { + void *v ; + FILE *fp = fopen("conftest1","w"); + unsigned long i,j; +@@ -1208,13 +1235,13 @@ AC_RUN_IFELSE( + j<<=$PAGEWIDTH; + j<<=16; + i=(unsigned long)&v; +- if (foo()>i) i-=j; +- j--; +- i+=j; +- i&=~j; +- fprintf(fp,"0x%lx",i-1); +- fclose(fp); +- return 0; ++ if ($cstack_direction==1) i-=j; ++ j--; ++ i+=j; ++ i&=~j; ++ fprintf(fp,"0x%lx",i-1); ++ fclose(fp); ++ return 0; + }]])], + [cstack_address=`cat conftest1`],[cstack_address=0]) + AC_DEFINE_UNQUOTED(CSTACK_ADDRESS,$cstack_address,[starting C stack address]) +@@ -1226,12 +1253,6 @@ AC_RUN_IFELSE( + [[ + #include <stdio.h> + #include <stdlib.h> +- void * +- foo() { +- int i; +- return (void *)&i; +- } +- + int + main(int argc,char **argv,char **envp) { + void *v ; +@@ -1245,14 +1266,14 @@ AC_RUN_IFELSE( + j<<=$PAGEWIDTH; + j<<=16; + i=(unsigned long)&v; +- if (foo()>i) i-=j; +- j--; +- i+=j; +- i&=~j; +- for (j=0;(i>>j)!=(i>>(sizeof(long)*8-1));j++); +- fprintf(fp,"%d",j); +- fclose(fp); +- return 0; ++ if ($cstack_direction==1) i-=j; ++ j--; ++ i+=j; ++ i&=~j; ++ for (j=0;(i>>j)!=(i>>(sizeof(long)*8-1));j++); ++ fprintf(fp,"%ld",j); ++ fclose(fp); ++ return 0; + }]])], + [cstack_bits=`cat conftest1`],[cstack_bits=0]) + AC_DEFINE_UNQUOTED(CSTACK_BITS,$cstack_bits,[log starting C stack address]) +@@ -1302,33 +1323,6 @@ AC_RUN_IFELSE( + AC_DEFINE_UNQUOTED(CSTACK_ALIGNMENT,$cstack_alignment,[C stack alignment]) + AC_MSG_RESULT($cstack_alignment) + +-AC_MSG_CHECKING(CSTACK_DIRECTION) +-AC_RUN_IFELSE( +- [AC_LANG_SOURCE( +- [[ +- #include <stdio.h> +- #include <stdlib.h> +- void * +- foo(void) { +- int i; +- return (void *)&i; +- } +- +- int +- main(int argc,char **argv,char **envp) { +- char *b; +- FILE *fp = fopen("conftest1","w"); +- #ifdef CAN_UNRANDOMIZE_SBRK +- #include "h/unrandomize.h" +- #endif +- fprintf(fp,"%d",((long) &b) > ((long) foo()) ? -1 : 1); +- fclose(fp); +- return 0; +- }]])], +- [cstack_direction=`cat conftest1`],[cstack_direction=0]) +-AC_DEFINE_UNQUOTED(CSTACK_DIRECTION,$cstack_direction,[whether C stack grows up or down]) +-AC_MSG_RESULT($cstack_direction) +- + AC_ARG_ENABLE([immfix],[ --enable-immfix will enable an immediate fixnum table above the C stack]) + + AC_ARG_ENABLE([fastimmfix],[ --enable-fastimmfix=XXXX will reject low immediate fixnums unless 2^XXX can be attained],,[enable_fastimmfix=64]) +@@ -1429,8 +1423,7 @@ AC_RUN_IFELSE( + #include <stdio.h> + ]], + [[ +- void *v; +- unsigned long i,j,k,l,m; ++ unsigned long i,j,k,l; + FILE *fp = fopen("conftest1","w"); + + for (i=2,k=1;i;k=i,i<<=1); +--- gcl-2.6.12.orig/h/unrandomize.h ++++ gcl-2.6.12/h/unrandomize.h +@@ -14,7 +14,7 @@ + long pers = personality(READ_IMPLIES_EXEC|personality(0xffffffffUL)); + long flag = ADDR_NO_RANDOMIZE; + +- if (sizeof(long)==4) flag|=ADDR_LIMIT_3GB|ADDR_COMPAT_LAYOUT; ++ if (sizeof(long)==4) flag|=ADDR_LIMIT_3GB/* |ADDR_COMPAT_LAYOUT */; + + if (pers==-1) {printf("personality failure %d\n",errno);exit(-1);} + if ((pers & flag)!=flag && !getenv("GCL_UNRANDOMIZE")) { diff --git a/Version_2_6_13pre84.patch b/Version_2_6_13pre84.patch new file mode 100644 index 0000000..ce8c974 --- /dev/null +++ b/Version_2_6_13pre84.patch @@ -0,0 +1,45 @@ +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-86) unstable; urgency=medium + . + * Version_2_6_13pre83 +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: 2019-04-06 + +--- gcl-2.6.12.orig/configure ++++ gcl-2.6.12/configure +@@ -4121,6 +4121,7 @@ $as_echo_n "checking working gprof... " + powerpc*) if test "$host_cpu" = "powerpc64le" ; then enableval="no"; fi;; + s390*) enableval="no";;#mcount smashes float args in make_shortfloat 20180313 + sh4*) enableval="no";; ++ m68k*) enableval="no";; + ia64*) enableval="no";; + hppa*) enableval="no";; + # arm*) if echo $canonical |grep -q hf$; then enableval="no"; fi;;#FIXME CALL and JUMP24 veneers needed for thumb 20190201 #FIXME mcount compiled as a 24/22 bit reloc even with -mlong-calls, marginally accessible +--- gcl-2.6.12.orig/configure.in ++++ gcl-2.6.12/configure.in +@@ -334,6 +334,7 @@ AC_ARG_ENABLE([gprof],[ --enable-gprof + powerpc*) if test "$host_cpu" = "powerpc64le" ; then enableval="no"; fi;; + s390*) enableval="no";;#mcount smashes float args in make_shortfloat 20180313 + sh4*) enableval="no";; ++ m68k*) enableval="no";; + ia64*) enableval="no";; + hppa*) enableval="no";; + # arm*) if echo $canonical |grep -q hf$; then enableval="no"; fi;;#FIXME CALL and JUMP24 veneers needed for thumb 20190201 #FIXME mcount compiled as a 24/22 bit reloc even with -mlong-calls, marginally accessible diff --git a/gcl-2.6.11-asm-signal-h.patch b/gcl-2.6.11-asm-signal-h.patch index a436811..a06bc94 100644 --- a/gcl-2.6.11-asm-signal-h.patch +++ b/gcl-2.6.11-asm-signal-h.patch @@ -1,6 +1,6 @@ ---- configure.in.orig 2019-02-13 16:09:16.507200455 -0700 -+++ configure.in 2019-02-13 16:20:34.212035064 -0700 -@@ -1859,7 +1859,7 @@ AC_CHECK_HEADERS(dis-asm.h, +--- configure.in.orig 2019-04-17 20:22:14.506910168 -0600 ++++ configure.in 2019-04-17 20:28:21.673843068 -0600 +@@ -1852,7 +1852,7 @@ AC_CHECK_HEADERS(dis-asm.h,
#if test $use = "386-linux" ; then AC_CHECK_HEADERS(asm/sigcontext.h) @@ -9,7 +9,7 @@ AC_MSG_CHECKING([for sigcontext]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( -@@ -1881,6 +1881,7 @@ AC_COMPILE_IFELSE( +@@ -1874,6 +1874,7 @@ AC_COMPILE_IFELSE( #include <asm/sigcontext.h> #endif #ifdef HAVE_ASM_SIGNAL_H @@ -17,9 +17,9 @@ #include <asm/signal.h> #endif ]], ---- configure.orig 2019-02-13 16:18:07.561590362 -0700 -+++ configure 2019-02-13 16:20:39.690976951 -0700 -@@ -9187,7 +9187,8 @@ done +--- configure.orig 2019-04-17 20:22:22.321887572 -0600 ++++ configure 2019-04-17 20:28:21.676843059 -0600 +@@ -9180,7 +9180,8 @@ done
for ac_header in asm/signal.h do : @@ -29,7 +29,7 @@ if test "x$ac_cv_header_asm_signal_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ASM_SIGNAL_H 1 -@@ -9233,6 +9234,7 @@ $as_echo_n "checking for sigcontext... " +@@ -9226,6 +9227,7 @@ $as_echo_n "checking for sigcontext... " #include <asm/sigcontext.h> #endif #ifdef HAVE_ASM_SIGNAL_H diff --git a/gcl-2.6.11-extension.patch b/gcl-2.6.11-extension.patch index 17bb516..05516f8 100644 --- a/gcl-2.6.11-extension.patch +++ b/gcl-2.6.11-extension.patch @@ -1,5 +1,5 @@ ---- configure.in.orig 2019-02-13 15:56:58.476821549 -0700 -+++ configure.in 2019-02-13 16:01:50.504805986 -0700 +--- configure.in.orig 2019-04-17 20:13:36.617384342 -0600 ++++ configure.in 2019-04-17 20:17:42.346687693 -0600 @@ -177,6 +177,7 @@ if test "$LDFLAGS" = "" ; then LDFLAGS=" " fi @@ -8,7 +8,7 @@ AC_PROG_CC AC_PROG_CPP AC_SUBST(CC) -@@ -1632,7 +1633,6 @@ AC_MSG_CHECKING([for isnormal]) +@@ -1626,7 +1627,6 @@ AC_MSG_CHECKING([for isnormal]) AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[ @@ -16,7 +16,7 @@ #include <math.h> ]], [[ -@@ -1656,7 +1656,6 @@ AC_MSG_CHECKING([for isfinite]) +@@ -1650,7 +1650,6 @@ AC_MSG_CHECKING([for isfinite]) AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[ @@ -24,8 +24,8 @@ #include <math.h> ]], [[ ---- configure.orig 2019-02-13 15:59:06.010504583 -0700 -+++ configure 2019-02-13 16:03:13.014953997 -0700 +--- configure.orig 2019-04-17 20:13:36.634384294 -0600 ++++ configure 2019-04-17 20:17:42.351687679 -0600 @@ -674,10 +674,10 @@ GMPDIR GMP MAKEINFO @@ -1152,7 +1152,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } else -@@ -4261,267 +5258,7 @@ fi +@@ -4262,267 +5259,7 @@ fi
case $use in *macosx) @@ -1421,7 +1421,7 @@ do : ac_fn_c_check_header_mongrel "$LINENO" "malloc/malloc.h" "ac_cv_header_malloc_malloc_h" "$ac_includes_default" if test "x$ac_cv_header_malloc_malloc_h" = xyes; then : -@@ -7692,7 +8429,6 @@ else +@@ -7686,7 +8423,6 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */
@@ -1429,7 +1429,7 @@ #include <math.h>
int -@@ -7766,7 +8502,6 @@ else +@@ -7760,7 +8496,6 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */
@@ -1437,8 +1437,8 @@ #include <math.h>
int ---- h/gclincl.h.in.orig 2019-02-13 15:21:18.827321782 -0700 -+++ h/gclincl.h.in 2019-02-13 16:03:03.143055927 -0700 +--- h/gclincl.h.in.orig 2019-04-17 20:09:13.429128683 -0600 ++++ h/gclincl.h.in 2019-04-17 20:17:42.352687676 -0600 @@ -377,6 +377,27 @@ /* protect cdr from immfix and speed up type processing */ #undef USE_SAFE_CDR @@ -1484,8 +1484,8 @@ /* long gmp3 limbs */ #undef __LONG_LONG_LIMB
---- h/include.h.orig 2019-02-13 15:18:32.210984973 -0700 -+++ h/include.h 2019-02-14 08:22:56.442137877 -0700 +--- h/include.h.orig 2019-04-17 20:06:32.780581606 -0600 ++++ h/include.h 2019-04-17 20:17:42.353687673 -0600 @@ -43,7 +43,6 @@ Foundation, 675 Mass Ave, Cambridge, MA
#ifdef IN_NUM_CO diff --git a/gcl-2.6.11-infrastructure.patch b/gcl-2.6.11-infrastructure.patch index 25423e2..3ea395c 100644 --- a/gcl-2.6.11-infrastructure.patch +++ b/gcl-2.6.11-infrastructure.patch @@ -1,12 +1,12 @@ ---- configure.in.orig 2019-02-13 15:22:28.711630482 -0700 -+++ configure.in 2019-02-13 15:56:58.476821549 -0700 +--- configure.in.orig 2019-04-17 20:11:28.217747726 -0600 ++++ configure.in 2019-04-17 20:13:36.617384342 -0600 @@ -1,4 +1,4 @@ -AC_INIT() +AC_INIT AC_PREREQ([2.61]) AC_CONFIG_HEADER(h/gclincl.h)
-@@ -454,9 +454,6 @@ fi +@@ -455,9 +455,6 @@ fi AC_MSG_CHECKING([system version (for dynamic loading)]) if machine=`uname -m` ; then true; else machine=unknown ; fi
@@ -16,7 +16,7 @@ if test -f /usr/lib/NextStep/software_version; then system=NEXTSTEP-`${AWK} '/3/,/3/' /usr/lib/NextStep/software_version` else -@@ -531,6 +528,9 @@ AC_CHECK_HEADERS( +@@ -532,6 +529,9 @@ AC_CHECK_HEADERS( AC_DEFINE_UNQUOTED(HZ,$hz,[time system constant])])]) AC_MSG_RESULT($hz)])])
@@ -26,7 +26,7 @@
rm -f makedefsafter
-@@ -612,22 +612,22 @@ $CC -c foo.c -o foo.o +@@ -613,22 +613,22 @@ $CC -c foo.c -o foo.o if nm foo.o |grep " U " | grep "_cos" >/dev/null || nm foo.o |grep " U " | grep " _getc" >/dev/null ; then LEADING_UNDERSCORE=1 AC_DEFINE(LEADING_UNDERSCORE,1,[symbol name mangling convention]) @@ -54,7 +54,7 @@ GNU_LD= fi rm -f foo.c foo.o foo map -@@ -756,7 +756,7 @@ if test "$enable_statsysbfd" = "yes" || +@@ -757,7 +757,7 @@ if test "$enable_statsysbfd" = "yes" || # BFD boolean syntax #
@@ -63,7 +63,7 @@ AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[ -@@ -901,7 +901,7 @@ esac +@@ -902,7 +902,7 @@ esac # mechanism, in the PAGE macro. This offset is subtracted from # addresses, in calculating a page for an address in the heap.
@@ -72,7 +72,7 @@
#### Memory areas and alignment
-@@ -1694,7 +1694,6 @@ AC_RUN_IFELSE( +@@ -1688,7 +1688,6 @@ AC_RUN_IFELSE( # To get around this problem, check for both libraries together # if -lsocket doesn't work by itself. #-------------------------------------------------------------------- @@ -80,7 +80,7 @@ tcl_checkBoth=0 AC_CHECK_FUNC(connect, tcl_checkSocket=0, tcl_checkSocket=1) if test "$tcl_checkSocket" = 1; then -@@ -1734,7 +1733,7 @@ AC_SUBST(RL_LIB) +@@ -1728,7 +1727,7 @@ AC_SUBST(RL_LIB)
# sockets
@@ -89,7 +89,7 @@ AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ -@@ -1765,7 +1764,7 @@ AC_LINK_IFELSE( +@@ -1759,7 +1758,7 @@ AC_LINK_IFELSE( [AC_MSG_RESULT([no])])
@@ -98,7 +98,7 @@ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ -@@ -1817,7 +1816,7 @@ case $system in +@@ -1811,7 +1810,7 @@ case $system in esac
@@ -107,7 +107,7 @@ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ -@@ -1830,7 +1829,7 @@ AC_COMPILE_IFELSE( +@@ -1824,7 +1823,7 @@ AC_COMPILE_IFELSE( AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])])
@@ -116,7 +116,7 @@ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ -@@ -1843,7 +1842,7 @@ AC_COMPILE_IFELSE( +@@ -1837,7 +1836,7 @@ AC_COMPILE_IFELSE( [AC_MSG_RESULT([no])])
@@ -125,7 +125,7 @@ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ -@@ -1867,7 +1866,7 @@ AC_CHECK_HEADERS(dis-asm.h, +@@ -1861,7 +1860,7 @@ AC_CHECK_HEADERS(dis-asm.h, #if test $use = "386-linux" ; then AC_CHECK_HEADERS(asm/sigcontext.h) AC_CHECK_HEADERS(asm/signal.h) @@ -134,7 +134,7 @@ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ -@@ -1879,7 +1878,7 @@ AC_COMPILE_IFELSE( +@@ -1873,7 +1872,7 @@ AC_COMPILE_IFELSE( [AC_DEFINE(SIGNAL_H_HAS_SIGCONTEXT,1,[have sigcontext of signal.h]) AC_MSG_RESULT([sigcontext of signal.h])], [AC_MSG_RESULT([sigcontext NOT of signal.h]) @@ -143,7 +143,7 @@ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ -@@ -2133,7 +2132,8 @@ AC_SUBST(GNU_LD) +@@ -2127,7 +2126,8 @@ AC_SUBST(GNU_LD) if test -f h/$use.defs ; then
AC_SUBST(use) @@ -153,8 +153,8 @@ echo makedefc cat makedefc
---- configure.orig 2019-02-13 15:22:28.711630482 -0700 -+++ configure 2019-02-13 15:59:06.010504583 -0700 +--- configure.orig 2019-04-17 20:11:28.217747726 -0600 ++++ configure 2019-04-17 20:13:36.634384294 -0600 @@ -672,10 +672,10 @@ X_LIBS XMKMF GMPDIR @@ -216,7 +216,7 @@ --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] -@@ -4248,51 +4236,6 @@ fi +@@ -4249,51 +4237,6 @@ fi $as_echo_n "checking system version (for dynamic loading)... " >&6; } if machine=`uname -m` ; then true; else machine=unknown ; fi
@@ -268,7 +268,7 @@ if test -f /usr/lib/NextStep/software_version; then system=NEXTSTEP-`${AWK} '/3/,/3/' /usr/lib/NextStep/software_version` else -@@ -4749,6 +4692,117 @@ fi +@@ -4750,6 +4693,117 @@ fi done
@@ -386,7 +386,7 @@
rm -f makedefsafter
-@@ -4905,29 +4959,29 @@ if nm foo.o |grep " U " | grep "_cos" >/ +@@ -4906,29 +4960,29 @@ if nm foo.o |grep " U " | grep "_cos" >/
$as_echo "#define LEADING_UNDERSCORE 1" >>confdefs.h
@@ -426,7 +426,7 @@ GNU_LD= fi rm -f foo.c foo.o foo map -@@ -5507,8 +5561,8 @@ $as_echo "#define HAVE_LIBBFD 1" >>confd +@@ -5508,8 +5562,8 @@ $as_echo "#define HAVE_LIBBFD 1" >>confd # BFD boolean syntax #
@@ -437,7 +437,7 @@ if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in `$ac_pwd':" >&5 $as_echo "$as_me: error: in `$ac_pwd':" >&2;} -@@ -7792,8 +7846,6 @@ fi +@@ -7786,8 +7840,6 @@ fi # To get around this problem, check for both libraries together # if -lsocket doesn't work by itself. #-------------------------------------------------------------------- @@ -446,7 +446,7 @@ tcl_checkBoth=0 ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" if test "x$ac_cv_func_connect" = xyes; then : -@@ -8015,8 +8067,8 @@ fi +@@ -8009,8 +8061,8 @@ fi
# sockets
@@ -457,7 +457,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */
-@@ -8063,8 +8115,8 @@ rm -f core conftest.err conftest.$ac_obj +@@ -8057,8 +8109,8 @@ rm -f core conftest.err conftest.$ac_obj conftest$ac_exeext conftest.$ac_ext
@@ -468,7 +468,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */
-@@ -8170,8 +8222,8 @@ $as_echo "O_NONBLOCK" >&6; } +@@ -8164,8 +8216,8 @@ $as_echo "O_NONBLOCK" >&6; } esac
@@ -479,7 +479,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */
-@@ -8199,8 +8251,8 @@ $as_echo "no" >&6; } +@@ -8193,8 +8245,8 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -490,7 +490,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */
-@@ -8229,8 +8281,8 @@ fi +@@ -8223,8 +8275,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -501,7 +501,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */
-@@ -8415,8 +8467,8 @@ fi +@@ -8409,8 +8461,8 @@ fi
done
@@ -512,7 +512,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */
-@@ -8441,8 +8493,8 @@ $as_echo "sigcontext of signal.h" >&6; } +@@ -8435,8 +8487,8 @@ $as_echo "sigcontext of signal.h" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: sigcontext NOT of signal.h" >&5 $as_echo "sigcontext NOT of signal.h" >&6; } @@ -523,7 +523,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */
-@@ -9078,7 +9130,7 @@ if test -f h/$use.defs ; then +@@ -9072,7 +9124,7 @@ if test -f h/$use.defs ; then
ac_config_files="$ac_config_files makedefc windows/gcl.iss windows/sysdir.bat windows/install.lsp"
diff --git a/gcl-2.6.12-libselinux.patch b/gcl-2.6.12-libselinux.patch new file mode 100644 index 0000000..ae947b5 --- /dev/null +++ b/gcl-2.6.12-libselinux.patch @@ -0,0 +1,191 @@ +--- ansi-tests/makefile.orig 2019-04-17 20:07:56.872344969 -0600 ++++ ansi-tests/makefile 2019-05-05 15:05:15.330524584 -0600 +@@ -1,10 +1,10 @@ + -include ../makedefs + + test-unixport: +- echo "(load "gclload.lsp")" | ../unixport/saved_ansi_gcl$(EXE) | tee test.out ++ echo "(load "gclload.lsp")" | setarch -R ../unixport/saved_ansi_gcl$(EXE) | tee test.out + + test: +- echo "(load "gclload.lsp")" | gcl | tee test.out ++ echo "(load "gclload.lsp")" | setarch -R gcl | tee test.out + + clean: + rm -f test.out *.fasl *.o *.so *~ *.fn *.x86f *.fasl *.ufsl +--- clcs/makefile.orig 2014-10-23 15:29:00.000000000 -0600 ++++ clcs/makefile 2019-05-05 15:28:33.007845535 -0600 +@@ -8,11 +8,11 @@ FILES:=$(shell ls -1 gcl_clcs_*.lisp | s + all: $(addsuffix .c,$(FILES)) $(addsuffix .o,$(FILES)) + + saved_clcs_gcl: ../unixport/saved_pcl_gcl$(EXE) +- echo '(load "package.lisp")(load "myload.lisp")(si::save-system "$@")' | $< $(<D)/ ++ echo '(load "package.lisp")(load "myload.lisp")(si::save-system "$@")' | setarch -R $< $(<D)/ + + %.h %.data %.c : %.lisp saved_clcs_gcl + cp ../h/cmpinclude.h . +- $(COMPILE_FILE) $< ++ setarch -R $(COMPILE_FILE) $< + + %.o: %.c %.h %.data + $(CC) $(CFLAGS) -c $< -o $@ +@@ -27,10 +27,10 @@ sys-proclaim.lisp: $(addsuffix .fn,$(FIL + '(compiler::make-all-proclaims "*.fn")' | ../xbin/gcl + + compile: ${LISP} +- echo '(load "package.lisp")(load "loading.lisp")(jamie-load-clcs :compile)' | ${LISP} ++ echo '(load "package.lisp")(load "loading.lisp")(jamie-load-clcs :compile)' | setarch -R ${LISP} + + saved_full_gcl: ${LISP} +- echo '(load "package.lisp")(load "loading.lisp")(jamie-load-clcs :compiled)(system::save-system "saved_full_gcl")' | ${LISP} ++ echo '(load "package.lisp")(load "loading.lisp")(jamie-load-clcs :compiled)(system::save-system "saved_full_gcl")' | setarch -R ${LISP} + + clean: + rm -f *.o *.fn saved_full_gcl$(EXE) saved_full_gcl cmpinclude.h *.c *.h *.data saved_clcs_gcl$(EXE) +--- cmpnew/makefile.orig 2014-10-23 15:29:00.000000000 -0600 ++++ cmpnew/makefile 2019-05-05 15:37:17.021442257 -0600 +@@ -19,7 +19,7 @@ LISP=$(PORTDIR)/saved_pre_gcl$(EXE) + COMPILE_FILE=$(LISP) $(PORTDIR) -system-p -c-file -data-file -h-file -compile + + %.o: $(PORTDIR)/saved_pre_gcl$(EXE) %.lsp +- $(COMPILE_FILE) $* ++ setarch -R $(COMPILE_FILE) $* + + all: $(OBJS) + +@@ -32,16 +32,16 @@ fns: ../cmpnew/gcl_collectfn.o + $(MAKE) fns1 -e "FNS=`echo ${OBJS} | sed -e 's:.o:.fn:g'`" + + gcl_collectfn.o: +- $(PORTDIR)/saved_pre_gcl$(EXE) $(PORTDIR)/ -compile $*.lsp ++ setarch -R $(PORTDIR)/saved_pre_gcl$(EXE) $(PORTDIR)/ -compile $*.lsp + + .lisp.o: + @ ../xbin/if-exists $(PORTDIR)/saved_pre_gcl$(EXE) \ +- "$(PORTDIR)/saved_pre_gcl$(EXE) $(PORTDIR)/ -compile $*.lisp " ++ "setarch -R $(PORTDIR)/saved_pre_gcl$(EXE) $(PORTDIR)/ -compile $*.lisp " + + sys-proclaim.lisp: fns + echo '(in-package "COMPILER")' \ + '(load "../cmpnew/gcl_collectfn")(load "../lsp/sys-proclaim.lisp")'\ +- '(compiler::make-all-proclaims "*.fn")' | ../xbin/gcl ++ '(compiler::make-all-proclaims "*.fn")' | setarch -R ../xbin/gcl + + + newfn: +--- comp/makefile.orig 2014-10-23 15:29:00.000000000 -0600 ++++ comp/makefile 2019-05-05 15:03:48.701750576 -0600 +@@ -4,16 +4,16 @@ LISP=../unixport/saved_kcl + LOAD='(load "sysdef.lsp")(make::make :bcomp :compile t)' + + all: +- echo ${LOAD} | ${LISP} ++ echo ${LOAD} | setarch -R ${LISP} + + + tests: + echo ${LOAD}'(load "try1")(load "../tests/all-tests.lsp")(in-package "BCOMP")(do-some-tests)' \ +- '(test-sloop)' | ${LISP} ++ '(test-sloop)' | setarch -R ${LISP} + + + test1: +- echo '(load "../tests/try-comp")' | ${LISP} ++ echo '(load "../tests/try-comp")' | setarch -R ${LISP} + + + TFILES=src/makefile comp/makefile unixport/makefile o/makefile \ +--- gcl-tk/makefile.orig 2019-04-17 20:09:23.753099505 -0600 ++++ gcl-tk/makefile 2019-05-05 15:04:24.918656093 -0600 +@@ -22,13 +22,13 @@ CFLAGS1=$(CFLAGS) -I../o -I../h ${TK_INC + + all: gcltksrv tkl.o tinfo.o demos/gc-monitor.o gcltkaux + (cd demos ; \ +- echo '(load "../tkl.o")(TK::GET-AUTOLOADS (directory "*.lisp"))' | ../../unixport/$(FLISP)) ++ echo '(load "../tkl.o")(TK::GET-AUTOLOADS (directory "*.lisp"))' | setarch -R ../../unixport/$(FLISP)) + + .lisp.o: +- echo "(compile-file "$*.lisp" :c-file nil :c-debug nil)" | ../unixport/$(FLISP) ++ echo "(compile-file "$*.lisp" :c-file nil :c-debug nil)" | setarch -R ../unixport/$(FLISP) + + .lsp.o: +- echo "(compile-file "$*.lsp" :c-file nil :c-debug nil)" | ../unixport/$(FLISP) ++ echo "(compile-file "$*.lsp" :c-file nil :c-debug nil)" | setarch -R ../unixport/$(FLISP) + + + +--- lsp/makefile.orig 2019-04-17 20:07:52.522357209 -0600 ++++ lsp/makefile 2019-05-05 15:04:10.663693281 -0600 +@@ -25,7 +25,7 @@ LISP=$(PORTDIR)/saved_pre_gcl$(EXE) + COMPILE_FILE=$(LISP) $(PORTDIR) -system-p -c-file -data-file -h-file -compile + + %.o: $(PORTDIR)/saved_pre_gcl$(EXE) %.lsp +- $(COMPILE_FILE) $* ++ setarch -R $(COMPILE_FILE) $* + + all: $(OBJS) #$(RL_OBJS) + +--- makefile.orig 2019-04-17 20:09:35.392066608 -0600 ++++ makefile 2019-05-05 15:46:12.196006447 -0600 +@@ -198,7 +198,7 @@ install1: + if gcc --version | grep -i mingw >/dev/null 2>&1 ; then if grep -i oncrpc makedefs >/dev/null 2>&1 ; then cp /mingw/bin/oncrpc.dll $(DESTDIR)$(INSTALL_LIB_DIR)/$(PORTDIR); fi ; fi + cd $(DESTDIR)$(INSTALL_LIB_DIR)/$(PORTDIR) && \ + mv $(FLISP)$(EXE) temp$(EXE) && \ +- echo '(si::reset-sys-paths "$(INSTALL_LIB_DIR)/")(si::save-system "$(FLISP)$(EXE)")' | ./temp$(EXE) && \ ++ echo '(si::reset-sys-paths "$(INSTALL_LIB_DIR)/")(si::save-system "$(FLISP)$(EXE)")' | setarch -R ./temp$(EXE) && \ + rm -f temp$(EXE) + if [ -e "unixport/rsym$(EXE)" ] ; then cp unixport/rsym$(EXE) $(DESTDIR)$(INSTALL_LIB_DIR)/unixport/ ; fi + # ln $(SYMB) $(INSTALL_LIB_DIR)/$(PORTDIR)/$(FLISP)$(EXE) \ +--- pcl/makefile.orig 2019-04-17 20:06:19.779618194 -0600 ++++ pcl/makefile 2019-05-05 15:20:43.440086273 -0600 +@@ -24,15 +24,15 @@ all: $(addsuffix .c,$(AFILES)) $(addsuff + + saved_gcl_pcl: ../unixport/saved_gcl$(EXE) + cp ../h/cmpinclude.h . +- echo $(SETUP) '(pcl::compile-pcl)' | $< +- echo $(SETUP) '(pcl::load-pcl)(si::save-system "$@")' | $< ++ echo $(SETUP) '(pcl::compile-pcl)' | setarch -R $< ++ echo $(SETUP) '(pcl::load-pcl)(si::save-system "$@")' | setarch -R $< + + $(addsuffix .c,$(AFILES)) $(addsuffix .data,$(AFILES))\ + $(addsuffix .h,$(AFILES)) $(addsuffix .lsp,$(GFILES)): \ + $(addsuffix .lisp,$(subst gcl_pcl_impl_low,impl/gcl/gcl_pcl_impl_low,$(FILES))) + rm -f *.o *gazonk* + cp ../h/cmpinclude.h . +- echo ${SETUP} '(pcl::compile-pcl)' | ../unixport/saved_gcl$(EXE) ++ echo ${SETUP} '(pcl::compile-pcl)' | setarch -R ../unixport/saved_gcl$(EXE) + for i in gazonk* ; do \ + j=$$(echo $$i | sed 's,..*$$,,1');k="gazonk$$(echo $$j | cut -f3 -d_)";\ + l=$$(echo $$i | sed 's,^.*.,,1');\ +@@ -57,10 +57,10 @@ remake-sys-files: + rm -f *.o *gazonk* + cp ../h/cmpinclude.h . + echo ${SETUP} '(load "../cmpnew/gcl_collectfn.lsp")(compiler::emit-fn t)' \ +- '(pcl::compile-pcl)' | ../unixport/saved_gcl$(EXE) ../unixport/ ++ '(pcl::compile-pcl)' | setarch -R ../unixport/saved_gcl$(EXE) ../unixport/ + echo ${SETUP} '(load "../cmpnew/gcl_collectfn.lsp") '\ + '(pcl::load-pcl)(in-package "PCL")(renew-sys-files)' | \ +- ../unixport/saved_gcl$(EXE) ../unixport/ ++ setarch -R ../unixport/saved_gcl$(EXE) ../unixport/ + cp sys-proclaim.lisp xxx + cat xxx | sed -e "s/COMPILER::CMP-ANON//g" > sys-proclaim.lisp + rm xxx +--- xgcl-2/makefile.orig 2019-04-17 20:06:10.393644605 -0600 ++++ xgcl-2/makefile 2019-05-05 15:04:45.597602150 -0600 +@@ -4,13 +4,13 @@ + all: objects #docs + + objects: $(LISP) +- echo '(load "sysdef.lisp")(load "sys-proclaim.lisp")(xlib::compile-xgcl)' | $(LISP) ++ echo '(load "sysdef.lisp")(load "sys-proclaim.lisp")(xlib::compile-xgcl)' | setarch -R $(LISP) + + saved_xgcl: $(LISP) +- echo '(load "sysdef.lisp")(load "sys-proclaim.lisp")(xlib::compile-xgcl)(xlib::save-xgcl "$@")' | $(LISP) ++ echo '(load "sysdef.lisp")(load "sys-proclaim.lisp")(xlib::compile-xgcl)(xlib::save-xgcl "$@")' | setarch -R $(LISP) + + sys-proclaim.lisp: +- echo '(load "sysdef.lisp")(compiler::emit-fn t)(xlib::compile-xgcl)(compiler::make-all-proclaims "*.fn")' | $(LISP) ++ echo '(load "sysdef.lisp")(compiler::emit-fn t)(xlib::compile-xgcl)(compiler::make-all-proclaims "*.fn")' | setarch -R $(LISP) + + docs: dwdoc/dwdoccontents.html dwdoc.pdf + diff --git a/gcl-2.6.12-ppc64le.patch b/gcl-2.6.12-ppc64le.patch new file mode 100644 index 0000000..03574f7 --- /dev/null +++ b/gcl-2.6.12-ppc64le.patch @@ -0,0 +1,24 @@ +--- h/elf64_ppcle_reloc.h.orig 2014-10-23 15:29:00.000000000 -0600 ++++ h/elf64_ppcle_reloc.h 2019-06-25 18:44:50.679703481 -0600 +@@ -1,6 +1,21 @@ + #define ha(x_) ((((x_) >> 16) + (((x_) & 0x8000) ? 1 : 0)) & 0xffff) + #define lo(x_) ((x_) & 0xffff) ++#ifndef R_PPC64_PLTSEQ ++#define R_PPC64_PLTSEQ 119 ++#endif ++#ifndef R_PPC64_PLTCALL ++#define R_PPC64_PLTCALL 120 ++#endif + ++ case R_PPC64_PLT16_HA: ++ add_val(where,MASK(16),ha(s+a-p)); ++ break; ++ case R_PPC64_PLT16_LO_DS: ++ add_val(where,MASK(16),ha(s+a-toc->st_value)); ++ break; ++ case R_PPC64_PLTSEQ: ++ case R_PPC64_PLTCALL: ++ break; + case R_PPC64_REL16_HA: + store_val(where,MASK(16),ha(s+a-p)); + break; diff --git a/gcl-2.6.12-selinux.patch b/gcl-2.6.12-selinux.patch deleted file mode 100644 index a847a77..0000000 --- a/gcl-2.6.12-selinux.patch +++ /dev/null @@ -1,257 +0,0 @@ -diff -durpN gcl-2.6.12.ORIG/clcs/makefile gcl-2.6.12/clcs/makefile ---- gcl-2.6.12.ORIG/clcs/makefile 2014-10-23 15:29:00.000000000 -0600 -+++ gcl-2.6.12/clcs/makefile 2014-10-28 11:50:44.623943474 -0600 -@@ -9,6 +9,7 @@ all: $(addsuffix .c,$(FILES)) $(addsuffi - - saved_clcs_gcl: ../unixport/saved_pcl_gcl$(EXE) - echo '(load "package.lisp")(load "myload.lisp")(si::save-system "$@")' | $< $(<D)/ -+ chcon -t gcl_exec_t $@ || true - - %.h %.data %.c : %.lisp saved_clcs_gcl - cp ../h/cmpinclude.h . -@@ -31,6 +32,7 @@ compile: ${LISP} - - saved_full_gcl: ${LISP} - echo '(load "package.lisp")(load "loading.lisp")(jamie-load-clcs :compiled)(system::save-system "saved_full_gcl")' | ${LISP} -+ chcon -t gcl_exec_t $@ || true - - clean: - rm -f *.o *.fn saved_full_gcl$(EXE) saved_full_gcl cmpinclude.h *.c *.h *.data saved_clcs_gcl$(EXE) -diff -durpN gcl-2.6.12.ORIG/makefile gcl-2.6.12/makefile ---- gcl-2.6.12.ORIG/makefile 2019-02-13 15:33:35.847961582 -0700 -+++ gcl-2.6.12/makefile 2019-02-13 15:34:51.810158459 -0700 -@@ -198,6 +198,7 @@ install1: - if gcc --version | grep -i mingw >/dev/null 2>&1 ; then if grep -i oncrpc makedefs >/dev/null 2>&1 ; then cp /mingw/bin/oncrpc.dll $(DESTDIR)$(INSTALL_LIB_DIR)/$(PORTDIR); fi ; fi - cd $(DESTDIR)$(INSTALL_LIB_DIR)/$(PORTDIR) && \ - mv $(FLISP)$(EXE) temp$(EXE) && \ -+ ( chcon -t gcl_exec_t temp$(EXE) || true ) && \ - echo '(si::reset-sys-paths "$(INSTALL_LIB_DIR)/")(si::save-system "$(FLISP)$(EXE)")' | ./temp$(EXE) && \ - rm -f temp$(EXE) - if [ -e "unixport/rsym$(EXE)" ] ; then cp unixport/rsym$(EXE) $(DESTDIR)$(INSTALL_LIB_DIR)/unixport/ ; fi -diff -durpN gcl-2.6.12.ORIG/selinux/gcl.fc gcl-2.6.12/selinux/gcl.fc ---- gcl-2.6.12.ORIG/selinux/gcl.fc 1969-12-31 17:00:00.000000000 -0700 -+++ gcl-2.6.12/selinux/gcl.fc 2010-12-29 11:46:30.625141327 -0700 -@@ -0,0 +1,5 @@ -+/usr/lib64/gcl-[^/]+/unixport/saved_.* -- gen_context(system_u:object_r:gcl_exec_t,s0) -+/usr/lib/gcl-[^/]+/unixport/saved_.* -- gen_context(system_u:object_r:gcl_exec_t,s0) -+/usr/lib/maxima/[^/]+/binary-gcl/maxima -- gen_context(system_u:object_r:gcl_exec_t,s0) -+/usr/lib64/maxima/[^/]+/binary-gcl/maxima -- gen_context(system_u:object_r:gcl_exec_t,s0) -+ -diff -durpN gcl-2.6.12.ORIG/selinux/gcl.if gcl-2.6.12/selinux/gcl.if ---- gcl-2.6.12.ORIG/selinux/gcl.if 1969-12-31 17:00:00.000000000 -0700 -+++ gcl-2.6.12/selinux/gcl.if 2010-12-29 11:46:30.626141206 -0700 -@@ -0,0 +1,146 @@ -+ -+## <summary>policy for gcl</summary> -+ -+######################################## -+## <summary> -+## Execute a domain transition to run gcl. -+## </summary> -+## <param name="domain"> -+## <summary> -+## Domain allowed to transition. -+## </summary> -+## </param> -+# -+interface(`gcl_domtrans',` -+ gen_require(` -+ type gcl_t; -+ type gcl_exec_t; -+ ') -+ -+ domtrans_pattern($1,gcl_exec_t,gcl_t) -+') -+ -+ -+######################################## -+## <summary> -+## Do not audit attempts to read, -+## gcl tmp files -+## </summary> -+## <param name="domain"> -+## <summary> -+## Domain to not audit. -+## </summary> -+## </param> -+# -+interface(`gcl_dontaudit_read_tmp_files',` -+ gen_require(` -+ type gcl_tmp_t; -+ ') -+ -+ dontaudit $1 gcl_tmp_t:file read_file_perms; -+') -+ -+######################################## -+## <summary> -+## Allow domain to read, gcl tmp files -+## </summary> -+## <param name="domain"> -+## <summary> -+## Domain to not audit. -+## </summary> -+## </param> -+# -+interface(`gcl_read_tmp_files',` -+ gen_require(` -+ type gcl_tmp_t; -+ ') -+ -+ allow $1 gcl_tmp_t:file read_file_perms; -+') -+ -+######################################## -+## <summary> -+## Allow domain to manage gcl tmp files -+## </summary> -+## <param name="domain"> -+## <summary> -+## Domain to not audit. -+## </summary> -+## </param> -+# -+interface(`gcl_manage_tmp',` -+ gen_require(` -+ type gcl_tmp_t; -+ ') -+ -+ manage_dirs_pattern($1,gcl_tmp_t,gcl_tmp_t) -+ manage_files_pattern($1,gcl_tmp_t,gcl_tmp_t) -+ manage_lnk_files_pattern($1,gcl_tmp_t,gcl_tmp_t) -+') -+ -+######################################## -+## <summary> -+## Execute gcl in the gcl domain, and -+## allow the specified role the gcl domain. -+## </summary> -+## <param name="domain"> -+## <summary> -+## Domain allowed access -+## </summary> -+## </param> -+## <param name="role"> -+## <summary> -+## The role to be allowed the gcl domain. -+## </summary> -+## </param> -+## <param name="terminal"> -+## <summary> -+## The type of the role's terminal. -+## </summary> -+## </param> -+# -+interface(`gcl_run',` -+ gen_require(` -+ type gcl_t; -+ ') -+ -+ gcl_domtrans($1) -+ role $2 types gcl_t; -+ dontaudit gcl_t $3:chr_file rw_term_perms; -+') -+ -+ -+######################################## -+## <summary> -+## All of the rules required to administrate -+## an gcl environment -+## </summary> -+## <param name="domain"> -+## <summary> -+## Domain allowed access. -+## </summary> -+## </param> -+## <param name="role"> -+## <summary> -+## The role to be allowed to manage the gcl domain. -+## </summary> -+## </param> -+## <param name="terminal"> -+## <summary> -+## The type of the user terminal. -+## </summary> -+## </param> -+## <rolecap/> -+# -+interface(`gcl_admin',` -+ gen_require(` -+ type gcl_t; -+ ') -+ -+ allow $1 gcl_t:process { ptrace signal_perms getattr }; -+ read_files_pattern($1, gcl_t, gcl_t) -+ -+ -+ gcl_manage_tmp($1) -+ -+') -diff -durpN gcl-2.6.12.ORIG/selinux/gcl.te gcl-2.6.12/selinux/gcl.te ---- gcl-2.6.12.ORIG/selinux/gcl.te 1969-12-31 17:00:00.000000000 -0700 -+++ gcl-2.6.12/selinux/gcl.te 2010-12-29 11:46:30.627141086 -0700 -@@ -0,0 +1,45 @@ -+policy_module(gcl,1.0.1) -+ -+######################################## -+# -+# Declarations -+# -+ -+type gcl_t; -+type gcl_exec_t; -+application_domain(gcl_t, gcl_exec_t) -+role system_r types gcl_t; -+ -+######################################## -+# -+# gcl local policy -+# -+ -+## internal communication is often done using fifo and unix sockets. -+allow gcl_t self:fifo_file rw_file_perms; -+allow gcl_t self:unix_stream_socket create_stream_socket_perms; -+ -+libs_use_ld_so(gcl_t) -+libs_use_shared_libs(gcl_t) -+ -+miscfiles_read_localization(gcl_t) -+ -+## The GCL memory management and executable dumping routines manipulate memory -+## in various (usually forbidden) ways. -+allow gcl_t self:process { execmem execheap }; -+ -+optional_policy(` -+ unconfined_domain(gcl_t) -+') -+ -+optional_policy(` -+ gen_require(` -+ type unconfined_t; -+ type unconfined_devpts_t; -+ type unconfined_tty_device_t; -+ role unconfined_r; -+ ') -+ -+ gcl_run(unconfined_t, unconfined_r, { unconfined_tty_device_t unconfined_devpts_t }) -+ allow gcl_t gcl_exec_t:file execmod; -+') -diff -durpN gcl-2.6.12.ORIG/unixport/makefile gcl-2.6.12/unixport/makefile ---- gcl-2.6.12.ORIG/unixport/makefile 2019-02-13 15:21:32.398187550 -0700 -+++ gcl-2.6.12/unixport/makefile 2019-02-13 15:33:35.849961561 -0700 -@@ -96,6 +96,7 @@ saved_%:raw_% $(RSYM) sys_init.lsp raw_% - echo "(unless si::*quit-tags* (in-package "USER")(system:save-system "$@"))" >>foo - j=$$(ar t lib$*.a |grep ^gcl_);[ "$$j" = "" ] || ar x lib$*.a $$j #accelerator - $(PORTDIR)/raw_$*$(EXE) $(PORTDIR)/ -libdir $(GCLDIR)/ < foo -+ chcon -t gcl_exec_t $@ || true - # check that saved image can be prelinked - [ "$(PRELINK_CHECK)" = "" ] || \ - ! [ -x /usr/bin/objdump ] || \ -@@ -142,6 +143,7 @@ ifeq ($(GNU_LD),1) - else - $(CC) $(LD_FLAGS) -o raw_$*$(EXE) $(filter %.o,$^) -L. $(EXTRA_LD_LIBS) $(LD_LIBS_PRE) -l$* $(LD_LIBS_POST) - endif -+ chcon -t gcl_exec_t raw_$*$(EXE) || true - # diff map_$* map_$*.old >/dev/null || (cp map_$* map_$*.old && rm -f $@ && $(MAKE) $@) - # cp map_$*.old map_$* - diff --git a/gcl-2.6.12-unrandomize.patch b/gcl-2.6.12-unrandomize.patch index bffa693..59c55ec 100644 --- a/gcl-2.6.12-unrandomize.patch +++ b/gcl-2.6.12-unrandomize.patch @@ -1,7 +1,7 @@ ---- configure.in.orig 2019-02-13 16:01:50.504805986 -0700 -+++ configure.in 2019-02-13 16:09:16.507200455 -0700 -@@ -1123,8 +1123,10 @@ if test "$HAVE_SBRK" = "1" ; then - [[ +--- configure.orig 2019-04-17 20:17:42.351687679 -0600 ++++ configure 2019-04-17 20:22:22.321887572 -0600 +@@ -7341,8 +7341,10 @@ else + #include <stdio.h> #include <stdlib.h> + #define CAN_UNRANDOMIZE_SBRK 1 @@ -11,9 +11,9 @@ + UNRANDOMIZE_SBRK; return 0; } - ]])], -@@ -1139,11 +1141,10 @@ if test "$HAVE_SBRK" = "1" ; then - [[ + +@@ -7376,11 +7378,10 @@ else + #include <stdio.h> #include <stdlib.h> + #include "h/unrandomize.h" @@ -25,9 +25,9 @@ + UNRANDOMIZE_SBRK; if (!(f=fopen("conftest1","w"))) return -1; - fprintf(f,"%u",sbrk(0)); -@@ -1160,11 +1161,10 @@ if test "$HAVE_SBRK" = "1" ; then - [[ + fprintf(f,"%p",sbrk(0)); +@@ -7411,11 +7412,10 @@ else + #include <stdio.h> #include <stdlib.h> + #include "h/unrandomize.h" @@ -38,20 +38,39 @@ - #endif + UNRANDOMIZE_SBRK; if (!(f=fopen("conftest1","w"))) return -1; - fprintf(f,"%u",sbrk(0)); + fprintf(f,"%p",sbrk(0)); return 0; -@@ -1190,6 +1190,7 @@ AC_RUN_IFELSE( - [[ +@@ -7459,7 +7459,7 @@ else + + #include <stdio.h> + #include <stdlib.h> +- ++ #include "h/unrandomize.h" + unsigned long w; + + void +@@ -7472,9 +7472,7 @@ else + main(int argc,char **argv,char **envp) { + void *b; + FILE *fp = fopen("conftest1","w"); +- #ifdef CAN_UNRANDOMIZE_SBRK +- #include "h/unrandomize.h" +- #endif ++ UNRANDOMIZE_SBRK; + foo(); + fprintf(fp,"%d",((unsigned long) &b) > w ? -1 : 1); + fclose(fp); +@@ -7512,15 +7510,14 @@ else + #include <stdio.h> #include <stdlib.h> + #include "h/unrandomize.h" - void * - foo() { - int i; -@@ -1202,9 +1203,7 @@ AC_RUN_IFELSE( + int + main(int argc,char **argv,char **envp) { + void *v ; FILE *fp = fopen("conftest1","w"); unsigned long i,j; - + - #ifdef CAN_UNRANDOMIZE_SBRK - #include "h/unrandomize.h" - #endif @@ -59,18 +78,17 @@ j=1; j<<=$PAGEWIDTH; j<<=16; -@@ -1227,6 +1226,7 @@ AC_RUN_IFELSE( - [[ +@@ -7564,15 +7561,14 @@ else + #include <stdio.h> #include <stdlib.h> + #include "h/unrandomize.h" - void * - foo() { - int i; -@@ -1239,9 +1239,7 @@ AC_RUN_IFELSE( + int + main(int argc,char **argv,char **envp) { + void *v ; FILE *fp = fopen("conftest1","w"); unsigned long i,j; - + - #ifdef CAN_UNRANDOMIZE_SBRK - #include "h/unrandomize.h" - #endif @@ -78,8 +96,8 @@ j=1; j<<=$PAGEWIDTH; j<<=16; -@@ -1265,11 +1263,10 @@ AC_RUN_IFELSE( - [[ +@@ -7617,11 +7613,10 @@ else + #include <stdio.h> #include <stdlib.h> + #include "h/unrandomize.h" @@ -90,10 +108,10 @@ - #endif + UNRANDOMIZE_SBRK; return (long)$cstack_address<0 ? 0 : -1; - }]])], - [AC_MSG_RESULT(yes) -@@ -1284,13 +1281,12 @@ AC_RUN_IFELSE( - [[ + } + _ACEOF +@@ -7655,13 +7650,12 @@ else + #include <stdio.h> #include <stdlib.h> + #include "h/unrandomize.h" @@ -108,29 +126,10 @@ b=alloca(sizeof(b)); c=alloca(sizeof(c)); n=b>c ? b-c : c-b; -@@ -1309,6 +1305,7 @@ AC_RUN_IFELSE( - [[ - #include <stdio.h> - #include <stdlib.h> -+ #include "h/unrandomize.h" - void * - foo(void) { - int i; -@@ -1319,9 +1316,7 @@ AC_RUN_IFELSE( - main(int argc,char **argv,char **envp) { - char *b; - FILE *fp = fopen("conftest1","w"); -- #ifdef CAN_UNRANDOMIZE_SBRK -- #include "h/unrandomize.h" -- #endif -+ UNRANDOMIZE_SBRK; - fprintf(fp,"%d",((long) &b) > ((long) foo()) ? -1 : 1); - fclose(fp); - return 0; ---- configure.orig 2019-02-13 16:03:13.014953997 -0700 -+++ configure 2019-02-13 16:18:07.561590362 -0700 -@@ -7340,8 +7340,10 @@ else - +--- configure.in.orig 2019-04-17 20:17:42.346687693 -0600 ++++ configure.in 2019-04-17 20:22:14.506910168 -0600 +@@ -1124,8 +1124,10 @@ if test "$HAVE_SBRK" = "1" ; then + [[ #include <stdio.h> #include <stdlib.h> + #define CAN_UNRANDOMIZE_SBRK 1 @@ -140,9 +139,9 @@ + UNRANDOMIZE_SBRK; return 0; } - -@@ -7375,11 +7377,10 @@ else - + ]])], +@@ -1140,11 +1142,10 @@ if test "$HAVE_SBRK" = "1" ; then + [[ #include <stdio.h> #include <stdlib.h> + #include "h/unrandomize.h" @@ -154,9 +153,9 @@ + UNRANDOMIZE_SBRK; if (!(f=fopen("conftest1","w"))) return -1; - fprintf(f,"%u",sbrk(0)); -@@ -7410,11 +7411,10 @@ else - + fprintf(f,"%p",sbrk(0)); +@@ -1161,11 +1162,10 @@ if test "$HAVE_SBRK" = "1" ; then + [[ #include <stdio.h> #include <stdlib.h> + #include "h/unrandomize.h" @@ -167,20 +166,39 @@ - #endif + UNRANDOMIZE_SBRK; if (!(f=fopen("conftest1","w"))) return -1; - fprintf(f,"%u",sbrk(0)); + fprintf(f,"%p",sbrk(0)); return 0; -@@ -7457,6 +7457,7 @@ else +@@ -1192,7 +1192,7 @@ AC_RUN_IFELSE( + [[ + #include <stdio.h> + #include <stdlib.h> +- ++ #include "h/unrandomize.h" + unsigned long w;
+ void +@@ -1205,9 +1205,7 @@ AC_RUN_IFELSE( + main(int argc,char **argv,char **envp) { + void *b; + FILE *fp = fopen("conftest1","w"); +- #ifdef CAN_UNRANDOMIZE_SBRK +- #include "h/unrandomize.h" +- #endif ++ UNRANDOMIZE_SBRK; + foo(); + fprintf(fp,"%d",((unsigned long) &b) > w ? -1 : 1); + fclose(fp); +@@ -1224,15 +1222,14 @@ AC_RUN_IFELSE( + [[ #include <stdio.h> #include <stdlib.h> + #include "h/unrandomize.h" - void * - foo() { - int i; -@@ -7469,9 +7470,7 @@ else + int + main(int argc,char **argv,char **envp) { + void *v ; FILE *fp = fopen("conftest1","w"); unsigned long i,j; - + - #ifdef CAN_UNRANDOMIZE_SBRK - #include "h/unrandomize.h" - #endif @@ -188,18 +206,17 @@ j=1; j<<=$PAGEWIDTH; j<<=16; -@@ -7515,6 +7514,7 @@ else - +@@ -1255,15 +1252,14 @@ AC_RUN_IFELSE( + [[ #include <stdio.h> #include <stdlib.h> + #include "h/unrandomize.h" - void * - foo() { - int i; -@@ -7527,9 +7527,7 @@ else + int + main(int argc,char **argv,char **envp) { + void *v ; FILE *fp = fopen("conftest1","w"); unsigned long i,j; - + - #ifdef CAN_UNRANDOMIZE_SBRK - #include "h/unrandomize.h" - #endif @@ -207,8 +224,8 @@ j=1; j<<=$PAGEWIDTH; j<<=16; -@@ -7574,11 +7572,10 @@ else - +@@ -1287,11 +1283,10 @@ AC_RUN_IFELSE( + [[ #include <stdio.h> #include <stdlib.h> + #include "h/unrandomize.h" @@ -219,10 +236,10 @@ - #endif + UNRANDOMIZE_SBRK; return (long)$cstack_address<0 ? 0 : -1; - } - _ACEOF -@@ -7612,13 +7609,12 @@ else - + }]])], + [AC_MSG_RESULT(yes) +@@ -1306,13 +1301,12 @@ AC_RUN_IFELSE( + [[ #include <stdio.h> #include <stdlib.h> + #include "h/unrandomize.h" @@ -237,27 +254,8 @@ b=alloca(sizeof(b)); c=alloca(sizeof(c)); n=b>c ? b-c : c-b; -@@ -7658,6 +7654,7 @@ else - - #include <stdio.h> - #include <stdlib.h> -+ #include "h/unrandomize.h" - void * - foo(void) { - int i; -@@ -7668,9 +7665,7 @@ else - main(int argc,char **argv,char **envp) { - char *b; - FILE *fp = fopen("conftest1","w"); -- #ifdef CAN_UNRANDOMIZE_SBRK -- #include "h/unrandomize.h" -- #endif -+ UNRANDOMIZE_SBRK; - fprintf(fp,"%d",((long) &b) > ((long) foo()) ? -1 : 1); - fclose(fp); - return 0; ---- h/unrandomize.h.orig 2019-02-13 15:19:44.503254822 -0700 -+++ h/unrandomize.h 2019-02-13 16:14:35.343840903 -0700 +--- h/unrandomize.h.orig 2019-04-17 20:11:26.049753854 -0600 ++++ h/unrandomize.h 2019-05-04 11:09:26.514874293 -0600 @@ -1,3 +1,5 @@ +#include <stdio.h> +#include <stdlib.h> @@ -277,7 +275,7 @@ - long pers = personality(READ_IMPLIES_EXEC|personality(0xffffffffUL)); - long flag = ADDR_NO_RANDOMIZE; - -- if (sizeof(long)==4) flag|=ADDR_LIMIT_3GB|ADDR_COMPAT_LAYOUT; +- if (sizeof(long)==4) flag|=ADDR_LIMIT_3GB/* |ADDR_COMPAT_LAYOUT */; - - if (pers==-1) {printf("personality failure %d\n",errno);exit(-1);} - if ((pers & flag)!=flag && !getenv("GCL_UNRANDOMIZE")) { @@ -328,10 +326,10 @@ + long pers = personality(READ_IMPLIES_EXEC|personality(0xffffffffUL)); \ + long flag = ADDR_NO_RANDOMIZE; \ + \ -+ if (sizeof(long)==4) flag|=ADDR_LIMIT_3GB|ADDR_COMPAT_LAYOUT; \ ++ if (sizeof(long)==4) flag|=ADDR_LIMIT_3GB/* |ADDR_COMPAT_LAYOUT */; \ + \ + if (pers==-1) {printf("personality failure %d\n",errno);exit(-1);} \ -+ if ((pers & flag)!=flag && !getenv("GCL_UNRANDOMIZE")) { \ ++ if (/*(pers & flag)!=flag &&*/ !getenv("GCL_UNRANDOMIZE")) { \ + errno=0; \ + if (personality(pers | flag) != -1 && (personality(0xffffffffUL) & flag)==flag) { \ + int i,j,k; \ @@ -388,8 +386,8 @@ - } - } -} ---- o/main.c.orig 2019-02-13 15:22:23.263684376 -0700 -+++ o/main.c 2019-02-13 16:17:49.957777033 -0700 +--- o/main.c.orig 2019-04-17 20:10:11.025965895 -0600 ++++ o/main.c 2019-05-04 11:34:06.174604494 -0600 @@ -53,6 +53,7 @@ void initialize_process(); #include "include.h" #include <signal.h> diff --git a/gcl.spec b/gcl.spec index e5a3325..5005f8b 100644 --- a/gcl.spec +++ b/gcl.spec @@ -1,16 +1,12 @@ # Address randomization breaks gcl's memory management scheme %undefine _hardened_build
-# SELinux macros -%global selinuxtype targeted -%global moduletype contrib - # Upstream prerelease number -%global prerel 79 +%global prerel 84
Name: gcl Version: 2.6.13 -Release: 0.%{prerel}.2%{?dist} +Release: 0.%{prerel}.1%{?dist} Summary: GNU Common Lisp
License: GPL+ and LGPLv2+ @@ -128,6 +124,11 @@ Patch99: Version_2_6_13pre76.patch Patch100: Version_2_6_13pre77.patch Patch101: Version_2_6_13pre78.patch Patch102: Version_2_6_13pre79.patch +Patch103: Version_2_6_13pre80.patch +Patch104: Version_2_6_13pre81.patch +Patch105: Version_2_6_13pre82.patch +Patch106: Version_2_6_13pre83.patch +Patch107: Version_2_6_13pre84.patch
### Fedora patches
@@ -143,18 +144,17 @@ Patch502: %{name}-2.6.11-texinfo.patch # This patch was last sent upstream on 29 Dec 2008. It fixes a large number of # compile- and run-time problems with the Emacs interface code. Patch503: %{name}-2.6.11-elisp.patch -# This patch was last sent upstream on 17 Jan 2009. It adds support for -# compiling and running on an SELinux-enabled host. -Patch504: %{name}-2.6.12-selinux.patch # This is a Fedora-specific patch. Do not delete C files produced from D files # so they can be pulled into the debuginfo package. -Patch505: %{name}-2.6.11-debuginfo.patch +Patch504: %{name}-2.6.11-debuginfo.patch # This patch was last sent upstream on 13 Oct 2009. It fixes two bugs in the # reading of PLT information. -Patch506: %{name}-2.6.11-plt.patch +Patch505: %{name}-2.6.11-plt.patch # This patch was last sent upstream on 13 Oct 2009. It fixes several malformed # function prototypes involving an ellipsis. -Patch507: %{name}-2.6.11-ellipsis.patch +Patch506: %{name}-2.6.11-ellipsis.patch +# Fix a linker problem on ARM platforms. +Patch507: %{name}-2.6.11-arm.patch # This patch was last sent upstream on 29 Dec 2008. It updates the autoconf # and libtool files to newer versions. By itself, this patch accomplishes # little of interest. However, some of the later patches change configure.in. @@ -174,8 +174,11 @@ Patch510: %{name}-2.6.12-unrandomize.patch # between glibc and Linux kernel headers. This patch prevents the kernel # headers from being used. Patch511: %{name}-2.6.11-asm-signal-h.patch -# Fix a linker problem on ARM platforms. -Patch512: %{name}-2.6.11-arm.patch +# Turn address randomization off early. GCL is linked with libtirpc, which is +# linked with libselinux, which has a static initializer that calls malloc() +# and free() on systems that do not have /sys/fs/selinux or /selinux mounted, +# or have them mounted read-only. +Patch512: %{name}-2.6.12-libselinux.patch
BuildRequires: binutils-devel BuildRequires: binutils-static @@ -185,7 +188,6 @@ BuildRequires: gmp-devel BuildRequires: libtirpc-devel BuildRequires: libXaw-devel BuildRequires: readline-devel -BuildRequires: selinux-policy-devel BuildRequires: tk-devel BuildRequires: tcl-devel BuildRequires: tex(latex) @@ -196,7 +198,10 @@ BuildRequires: emacs BuildRequires: xemacs BuildRequires: xemacs-packages-extra
-Requires: gcl-selinux = %{version}-%{release} +# This can be removed when Fedora 30 reaches EOL +Obsoletes: gcl-selinux < 2.6.13-0.84.1%{?dist} +Provides: gcl-selinux = %{version}-%{release} +
%description GCL is a Common Lisp currently compliant with the ANSI standard. Lisp @@ -232,17 +237,6 @@ Provides: %{name}-xemacs-el = %{version}-%{release} XEmacs mode for interacting with GCL
-%package selinux -Summary: SELinux policy for GCL images -BuildArch: noarch -%{?selinux_requires} - -%description selinux -SELinux policy for GCL images. All programs that dump GCL images to be run on -SELinux-enabled hosts should Require this package, and give the image the type -gcl_exec_t. - - %prep %setup -q -n %{name} %setup -q -n %{name} -T -D -a 2 @@ -349,12 +343,17 @@ gcl_exec_t. %patch100 -p1 %patch101 -p1 %patch102 -p1 +%patch103 -p1 +%patch104 -p1 +%patch105 -p1 +%patch106 -p1 +%patch107 -p1
%patch500 %patch501 %patch502 %patch503 -%patch504 -p1 +%patch504 %patch505 %patch506 %patch507 @@ -383,10 +382,12 @@ chmod a+x add-defs add-defs1 config.guess config.sub configure install.sh chmod a+x bin/info bin/info1 gcl-tk/gcltksrv.in gcl-tk/ngcltksrv mp/gcclab chmod a+x o/egrep-def utils/replace xbin/*
- %build # SGC requires the frame pointer -export CFLAGS="%{optflags} -fno-omit-frame-pointer" +export CFLAGS="%{optflags} -fno-omit-frame-pointer -fwrapv" +%ifarch ppc64le +CFLAGS="$CFLAGS -mno-pltseq" +%endif %configure --enable-readline --enable-ansi --enable-dynsysgmp --enable-xgcl \ --enable-tclconfig=%{_libdir} --enable-tkconfig=%{_libdir} # FIXME: %%{?_smp_mflags} breaks the build @@ -399,10 +400,6 @@ make -C info gcl.info cd xgcl-2 pdflatex dwdoc.tex
-# Build the SELinux policy -cd ../selinux -make -f %{_datadir}/selinux/devel/Makefile -
%install make install DESTDIR=$RPM_BUILD_ROOT @@ -443,13 +440,6 @@ pushd $RPM_BUILD_ROOT%{_xemacs_sitelispdir}/gcl %{_xemacs_bytecompile} *.el popd
-# Save the policy file away for later installation -mkdir -p $RPM_BUILD_ROOT%{_datadir}/selinux/packages -cp -p selinux/gcl.pp $RPM_BUILD_ROOT%{_datadir}/selinux/packages -bzip2 -9 $RPM_BUILD_ROOT%{_datadir}/selinux/packages/gcl.pp -mkdir -p $RPM_BUILD_ROOT%{_datadir}/selinux/devel/include/%{moduletype} -cp -p selinux/gcl.if $RPM_BUILD_ROOT%{_datadir}/selinux/devel/include/%{moduletype} - # Help the debuginfo generator ln -s ../h/cmpinclude.h cmpnew/cmpinclude.h ln -s ../h/cmpinclude.h lsp/cmpinclude.h @@ -463,24 +453,6 @@ export QA_SKIP_BUILD_ROOT=1 rm -f /tmp/gazonk_* /tmp/gcl_*
-%pre selinux -%selinux_relabel_pre -s %{selinuxtype} - - -%post selinux -%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/gcl.pp.bz2 - - -%postun selinux -if [ $1 = 0 ]; then - %selinux_modules_uninstall -s %{selinuxtype} gcl -fi - - -%posttrans selinux -%selinux_relabel_post -s %{selinuxtype} - - %files %{_bindir}/gcl %{_prefix}/lib/gcl* @@ -501,13 +473,15 @@ fi %{_xemacs_sitelispdir}/gcl/ %{_xemacs_sitestartdir}/*
-%files selinux -%license COPYING* -%{_datadir}/selinux/packages/gcl.pp.bz2 -%{_datadir}/selinux/devel/include/%{moduletype}/gcl.if -
%changelog +* Sat Jun 29 2019 Jerry James loganjerry@gmail.com - 2.6.13-0.84.1 +- Update to 2.6.13pre84 (bz 1674924) +- Drop the -selinux patch and subpackage, no longer needed +- Build with -fwrapv +- Add the -libselinux patch to fix FTBFS if selinuxfs is mounted read-only +- Build with -mno-pltseq on ppc64le to handle relocation issues + * Sat Mar 23 2019 Jerry James loganjerry@gmail.com - 2.6.13-0.79.2 - Merge -(x)emacs-el subpackages into -(x)emacs
arch-excludes@lists.fedoraproject.org