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.7+dfsga-18) unstable; urgency=high
 .
   * alpha NULL_OR_ON_C_STACK, attempt to get 32 immfix space with
     ADDR_LIMIT_3GB|ADDR_COMPAT_LAYOUT personality, clean compile with no
     immfix
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: http://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: <YYYY-MM-DD>

--- /dev/null
+++ gcl-2.6.7+dfsga/gcl.script
@@ -0,0 +1,205 @@
+/* Script for -z combreloc: combine and sort reloc sections */
+OUTPUT_FORMAT("elf32-i386", "elf32-i386",
+	      "elf32-i386")
+OUTPUT_ARCH(i386)
+ENTRY(_start)
+SEARCH_DIR("/usr/i486-linux-gnu/lib32"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib");
+SECTIONS
+{
+  /* Read-only sections, merged into text segment: */
+  PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00048000)); . = SEGMENT_START("text-segment", 0x00048000) + SIZEOF_HEADERS;
+  .interp         : { *(.interp) }
+  .note.gnu.build-id : { *(.note.gnu.build-id) }
+  .hash           : { *(.hash) }
+  .gnu.hash       : { *(.gnu.hash) }
+  .dynsym         : { *(.dynsym) }
+  .dynstr         : { *(.dynstr) }
+  .gnu.version    : { *(.gnu.version) }
+  .gnu.version_d  : { *(.gnu.version_d) }
+  .gnu.version_r  : { *(.gnu.version_r) }
+  .rel.dyn        :
+    {
+      *(.rel.init)
+      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
+      *(.rel.fini)
+      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
+      *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)
+      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
+      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
+      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
+      *(.rel.ctors)
+      *(.rel.dtors)
+      *(.rel.got)
+      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
+      *(.rel.ifunc)
+    }
+  .rel.plt        :
+    {
+      *(.rel.plt)
+      PROVIDE_HIDDEN (__rel_iplt_start = .);
+      *(.rel.iplt)
+      PROVIDE_HIDDEN (__rel_iplt_end = .);
+    }
+  .init           :
+  {
+    KEEP (*(.init))
+  } =0x90909090
+  .plt            : { *(.plt) *(.iplt) }
+  .text           :
+  {
+    *(.text.unlikely .text.*_unlikely)
+    *(.text.exit .text.exit.*)
+    *(.text.startup .text.startup.*)
+    *(.text.hot .text.hot.*)
+    *(.text .stub .text.* .gnu.linkonce.t.*)
+    /* .gnu.warning sections are handled specially by elf32.em.  */
+    *(.gnu.warning)
+  } =0x90909090
+  .fini           :
+  {
+    KEEP (*(.fini))
+  } =0x90909090
+  PROVIDE (__etext = .);
+  PROVIDE (_etext = .);
+  PROVIDE (etext = .);
+  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
+  .rodata1        : { *(.rodata1) }
+  .eh_frame_hdr : { *(.eh_frame_hdr) }
+  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) }
+  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table
+  .gcc_except_table.*) }
+  /* These sections are generated by the Sun/Oracle C++ compiler.  */
+  .exception_ranges   : ONLY_IF_RO { *(.exception_ranges
+  .exception_ranges*) }
+  /* Adjust the address for the data segment.  We want to adjust up to
+     the same address within the page on the next page up.  */
+  . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
+  /* Exception handling  */
+  .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
+  .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
+  .exception_ranges   : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
+  /* Thread Local Storage sections  */
+  .tdata	  : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
+  .tbss		  : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
+  .preinit_array     :
+  {
+    PROVIDE_HIDDEN (__preinit_array_start = .);
+    KEEP (*(.preinit_array))
+    PROVIDE_HIDDEN (__preinit_array_end = .);
+  }
+  .init_array     :
+  {
+    PROVIDE_HIDDEN (__init_array_start = .);
+    KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
+    KEEP (*(.init_array))
+    KEEP (*(EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
+    PROVIDE_HIDDEN (__init_array_end = .);
+  }
+  .fini_array     :
+  {
+    PROVIDE_HIDDEN (__fini_array_start = .);
+    KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))
+    KEEP (*(.fini_array))
+    KEEP (*(EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors))
+    PROVIDE_HIDDEN (__fini_array_end = .);
+  }
+  .ctors          :
+  {
+    /* gcc uses crtbegin.o to find the start of
+       the constructors, so we make sure it is
+       first.  Because this is a wildcard, it
+       doesn't matter if the user does not
+       actually link against crtbegin.o; the
+       linker won't look for a file to match a
+       wildcard.  The wildcard also means that it
+       doesn't matter which directory crtbegin.o
+       is in.  */
+    KEEP (*crtbegin.o(.ctors))
+    KEEP (*crtbegin?.o(.ctors))
+    /* We don't want to include the .ctor section from
+       the crtend.o file until after the sorted ctors.
+       The .ctor section from the crtend file contains the
+       end of ctors marker and it must be last */
+    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
+    KEEP (*(SORT(.ctors.*)))
+    KEEP (*(.ctors))
+  }
+  .dtors          :
+  {
+    KEEP (*crtbegin.o(.dtors))
+    KEEP (*crtbegin?.o(.dtors))
+    KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
+    KEEP (*(SORT(.dtors.*)))
+    KEEP (*(.dtors))
+  }
+  .jcr            : { KEEP (*(.jcr)) }
+  .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
+  .dynamic        : { *(.dynamic) }
+  .got            : { *(.got) *(.igot) }
+  . = DATA_SEGMENT_RELRO_END (12, .);
+  .got.plt        : { *(.got.plt)  *(.igot.plt) }
+  .data           :
+  {
+    *(.data .data.* .gnu.linkonce.d.*)
+    SORT(CONSTRUCTORS)
+  }
+  .data1          : { *(.data1) }
+  _edata = .; PROVIDE (edata = .);
+  __bss_start = .;
+  .bss            :
+  {
+   *(.dynbss)
+   *(.bss .bss.* .gnu.linkonce.b.*)
+   *(COMMON)
+   /* Align here to ensure that the .bss section occupies space up to
+      _end.  Align after .bss to ensure correct alignment even if the
+      .bss section disappears because there are no input sections.
+      FIXME: Why do we need it? When there is no .bss section, we don't
+      pad the .data section.  */
+   . = ALIGN(. != 0 ? 32 / 8 : 1);
+  }
+  . = ALIGN(32 / 8);
+  . = ALIGN(32 / 8);
+  _end = .; PROVIDE (end = .);
+  . = DATA_SEGMENT_END (.);
+  /* Stabs debugging sections.  */
+  .stab          0 : { *(.stab) }
+  .stabstr       0 : { *(.stabstr) }
+  .stab.excl     0 : { *(.stab.excl) }
+  .stab.exclstr  0 : { *(.stab.exclstr) }
+  .stab.index    0 : { *(.stab.index) }
+  .stab.indexstr 0 : { *(.stab.indexstr) }
+  .comment       0 : { *(.comment) }
+  /* DWARF debug sections.
+     Symbols in the DWARF debugging sections are relative to the beginning
+     of the section so we begin them at 0.  */
+  /* DWARF 1 */
+  .debug          0 : { *(.debug) }
+  .line           0 : { *(.line) }
+  /* GNU DWARF 1 extensions */
+  .debug_srcinfo  0 : { *(.debug_srcinfo) }
+  .debug_sfnames  0 : { *(.debug_sfnames) }
+  /* DWARF 1.1 and DWARF 2 */
+  .debug_aranges  0 : { *(.debug_aranges) }
+  .debug_pubnames 0 : { *(.debug_pubnames) }
+  /* DWARF 2 */
+  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
+  .debug_abbrev   0 : { *(.debug_abbrev) }
+  .debug_line     0 : { *(.debug_line) }
+  .debug_frame    0 : { *(.debug_frame) }
+  .debug_str      0 : { *(.debug_str) }
+  .debug_loc      0 : { *(.debug_loc) }
+  .debug_macinfo  0 : { *(.debug_macinfo) }
+  /* SGI/MIPS DWARF 2 extensions */
+  .debug_weaknames 0 : { *(.debug_weaknames) }
+  .debug_funcnames 0 : { *(.debug_funcnames) }
+  .debug_typenames 0 : { *(.debug_typenames) }
+  .debug_varnames  0 : { *(.debug_varnames) }
+  /* DWARF 3 */
+  .debug_pubtypes 0 : { *(.debug_pubtypes) }
+  .debug_ranges   0 : { *(.debug_ranges) }
+  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
+  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
+}
+
+
--- gcl-2.6.7+dfsga.orig/configure
+++ gcl-2.6.7+dfsga/configure
@@ -6434,8 +6434,10 @@ else
 /* end confdefs.h.  */
 
 
+	        #include <stdio.h>
+	        #include <stdlib.h>
 		void gprof_cleanup() {};
-		int main(int argc,char **argv,char **envp) {
+ 		int main(int argc,char **argv,char **envp) {
 		#include "h/unrandomize.h"
 		return 0;}
 _ACEOF
@@ -6462,7 +6464,8 @@ else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdio.h>
-	            void gprof_cleanup() {};
+	            #include <stdlib.h>
+		    void gprof_cleanup() {};
 		    int main(int argc,char * argv[],char * envp[]) {
 			FILE *f;
 			#ifdef CAN_UNRANDOMIZE_SBRK
@@ -6492,7 +6495,8 @@ else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdio.h>
-                    void gprof_cleanup() {};
+	            #include <stdlib.h>
+		    void gprof_cleanup() {};
 		    int main(int argc,char * argv[],char * envp[]) {
 			FILE *f;
 			#ifdef CAN_UNRANDOMIZE_SBRK
@@ -6552,20 +6556,21 @@ else
 /* end confdefs.h.  */
 
 	#include <stdio.h>
+	#include <stdlib.h>
 	void *
 	foo() {
 	      int i;
 	      return (void *)&i;
         }
 
-int
-main ()
-{
-
+	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
 	j=1;
 	j<<=$PAGEWIDTH;
 	j<<=16;
@@ -6577,9 +6582,6 @@ main ()
 	fprintf(fp,"0x%lx",i-1);
 	fclose(fp);
 	return 0;
-
-  ;
-  return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
@@ -6611,15 +6613,12 @@ else
 /* end confdefs.h.  */
 
 	#include <stdio.h>
-
-int
-main ()
-{
-
+	#include <stdlib.h>
+	int main(int argc,char **argv,char **envp) {
+	#ifdef CAN_UNRANDOMIZE_SBRK
+	#include "h/unrandomize.h"
+	#endif
 	return (long)$cstack_address<0 ? 0 : -1;
-
-  ;
-  return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
@@ -6650,14 +6649,14 @@ else
 /* end confdefs.h.  */
 
 	#include <stdio.h>
-
-int
-main ()
-{
-
+	#include <stdlib.h>
+	int main(int argc,char **argv,char **envp) {
 	void *b,*c;
 	FILE *fp = fopen("conftest1","w");
 	long n;
+	#ifdef CAN_UNRANDOMIZE_SBRK
+	#include "h/unrandomize.h"
+	#endif
 	b=alloca(sizeof(b));
 	c=alloca(sizeof(c));
 	n=b>c ? b-c : c-b;
@@ -6665,9 +6664,6 @@ main ()
 	fprintf(fp,"%ld",n);
 	fclose(fp);
 	return 0;
-
-  ;
-  return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
@@ -6699,26 +6695,22 @@ else
 /* end confdefs.h.  */
 
 	#include <stdio.h>
+	#include <stdlib.h>
 	void *
 	foo(void) {
 	int i;
 	return (void *)&i;
 	}
 
-
-int
-main ()
-{
-
-
+	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;
-
-  ;
-  return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
--- gcl-2.6.7+dfsga.orig/configure.in
+++ gcl-2.6.7+dfsga/configure.in
@@ -1258,8 +1258,10 @@ if test "$HAVE_SBRK" = "1" ; then
    AC_MSG_CHECKING([for personality(ADDR_NO_RANDOMIZE) support])
    AC_RUN_IFELSE([
 	AC_LANG_SOURCE([[
+	        #include <stdio.h>
+	        #include <stdlib.h>
 		void gprof_cleanup() {};
-		int main(int argc,char **argv,char **envp) {
+ 		int main(int argc,char **argv,char **envp) {
 		#include "h/unrandomize.h"
 		return 0;}]])],
 	[AC_MSG_RESULT(yes)
@@ -1268,7 +1270,8 @@ if test "$HAVE_SBRK" = "1" ; then
 
 	AC_MSG_CHECKING([that sbrk is (now) non-random])
 	AC_TRY_RUN([#include <stdio.h>
-	            void gprof_cleanup() {};
+	            #include <stdlib.h>
+		    void gprof_cleanup() {};
 		    int main(int argc,char * argv[],char * envp[]) {
 			FILE *f;
 			#ifdef CAN_UNRANDOMIZE_SBRK
@@ -1282,7 +1285,8 @@ if test "$HAVE_SBRK" = "1" ; then
 		exit 1
 	fi
 	AC_TRY_RUN([#include <stdio.h>
-                    void gprof_cleanup() {};
+	            #include <stdlib.h>
+		    void gprof_cleanup() {};
 		    int main(int argc,char * argv[],char * envp[]) {
 			FILE *f;
 			#ifdef CAN_UNRANDOMIZE_SBRK
@@ -1357,18 +1361,23 @@ dnl ,enable_maxpage=$def_maxpage)
 
 
 AC_MSG_CHECKING(CSTACK_ADDRESS)
-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+AC_RUN_IFELSE([AC_LANG_SOURCE([[
 	#include <stdio.h>
+	#include <stdlib.h>
 	void *
 	foo() {
 	      int i;
 	      return (void *)&i;
         }
-	]],[[
+
+	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
 	j=1;
 	j<<=$PAGEWIDTH;
 	j<<=16;
@@ -1380,27 +1389,35 @@ AC_RUN_IFELSE([AC_LANG_PROGRAM([[
 	fprintf(fp,"0x%lx",i-1);
 	fclose(fp);
 	return 0;
-]])],[cstack_address=`cat conftest1`],[cstack_address=0])
+}]])],[cstack_address=`cat conftest1`],[cstack_address=0])
 AC_DEFINE_UNQUOTED(CSTACK_ADDRESS,$cstack_address,[starting C stack address])
 AC_MSG_RESULT($cstack_address)
 
 AC_MSG_CHECKING(NEG_CSTACK_ADDRESS)
-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+AC_RUN_IFELSE([AC_LANG_SOURCE([[
 	#include <stdio.h>
-	]],[[
+	#include <stdlib.h>
+	int main(int argc,char **argv,char **envp) {
+	#ifdef CAN_UNRANDOMIZE_SBRK
+	#include "h/unrandomize.h"
+	#endif
 	return (long)$cstack_address<0 ? 0 : -1;
-]])],[AC_MSG_RESULT(yes)
+}]])],[AC_MSG_RESULT(yes)
    AC_DEFINE(NEG_CSTACK_ADDRESS,1,[C stack address is negative])],
    [AC_MSG_RESULT(no)])
 
 
 AC_MSG_CHECKING([finding CSTACK_ALIGNMENT])
-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+AC_RUN_IFELSE([AC_LANG_SOURCE([[
 	#include <stdio.h>
-	]],[[
+	#include <stdlib.h>
+	int main(int argc,char **argv,char **envp) {
 	void *b,*c;
 	FILE *fp = fopen("conftest1","w");
 	long n;
+	#ifdef CAN_UNRANDOMIZE_SBRK
+	#include "h/unrandomize.h"
+	#endif
 	b=alloca(sizeof(b));
 	c=alloca(sizeof(c));
 	n=b>c ? b-c : c-b;
@@ -1408,27 +1425,30 @@ AC_RUN_IFELSE([AC_LANG_PROGRAM([[
 	fprintf(fp,"%ld",n);
 	fclose(fp);
 	return 0;
-]])],[cstack_alignment=`cat conftest1`],[cstack_alignment=0])
+}]])],[cstack_alignment=`cat conftest1`],[cstack_alignment=0])
 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_PROGRAM([[
+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])
+}]])],[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)
 
--- gcl-2.6.7+dfsga.orig/h/alpha-linux.h
+++ gcl-2.6.7+dfsga/h/alpha-linux.h
@@ -1,7 +1,7 @@
 #include "linux.h"
 
 #define MUST_COPY_VA_LIST
-#define NULL_OR_ON_C_STACK(x) ((x)==0 || ((((unsigned long)x) > 0x100000000) && ((unsigned long)x) < 0x120000000))
+/* #define NULL_OR_ON_C_STACK(x) ((x)==0 || ((((unsigned long)x) > 0x100000000) && ((unsigned long)x) < 0x120000000)) */
 
 #undef MPROTECT_ACTION_FLAGS
 #define MPROTECT_ACTION_FLAGS SA_RESTART|SA_SIGINFO
--- gcl-2.6.7+dfsga.orig/h/unrandomize.h
+++ gcl-2.6.7+dfsga/h/unrandomize.h
@@ -11,10 +11,14 @@
   {
 
     long pers = personality(0xffffffffUL);
+    long flag = ADDR_NO_RANDOMIZE;
+
+    if (sizeof(long)==4) flag|=ADDR_LIMIT_3GB|ADDR_COMPAT_LAYOUT;
+
     if (pers==-1) {printf("personality failure %d\n",errno);exit(-1);}
-    if (!(pers & ADDR_NO_RANDOMIZE) && !getenv("GCL_UNRANDOMIZE")) {
+    if (!(pers & flag) && !getenv("GCL_UNRANDOMIZE")) {
       errno=0;
-      if (personality(pers | ADDR_NO_RANDOMIZE) != -1 && personality(0xffffffffUL) & ADDR_NO_RANDOMIZE) {
+      if (personality(pers | flag) != -1 && personality(0xffffffffUL) & flag) {
 	int i;
 	char **n;
 	for (i=0;envp[i];i++);
--- gcl-2.6.7+dfsga.orig/o/main.c
+++ gcl-2.6.7+dfsga/o/main.c
@@ -535,10 +535,16 @@ initlisp(void) {
 	    || NULL_OR_ON_C_STACK(pagetoinfo(first_data_page))
 	    || NULL_OR_ON_C_STACK(core_end-1)) {
 	  /* check person has correct definition of above */
-	  fprintf(stderr,"%p %d %p %d %p %d %p %d %p %d\n",
+	  fprintf(stderr,"%p %d "
+#if defined(IM_FIX_BASE)
+		  "%p %d %p %d "
+#endif
+		  "%p %d %p %d\n",
 		  v,NULL_OR_ON_C_STACK(v),
+#if defined(IM_FIX_BASE)
 		  (void *)IM_FIX_BASE,NULL_OR_ON_C_STACK(IM_FIX_BASE),
 		  (void *)(IM_FIX_BASE|IM_FIX_LIM),NULL_OR_ON_C_STACK(IM_FIX_BASE|IM_FIX_LIM),
+#endif
 		  pagetoinfo(first_data_page),NULL_OR_ON_C_STACK(pagetoinfo(first_data_page)),
 		  core_end-1,NULL_OR_ON_C_STACK(core_end-1));
 	  error("NULL_OR_ON_C_STACK macro invalid");
