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-85) unstable; urgency=medium . * Version_2_6_13pre82 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: 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 #include - 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 + #include + 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 #include - 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 - #include - 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 #include - 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 + #include + 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 #include - 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 - #include - 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 ]], [[ - 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")) {