cb0eb8c
--- ./configure.in.orig	2012-07-26 09:50:25.715238529 -0600
cb0eb8c
+++ ./configure.in	2012-07-26 09:52:37.218033294 -0600
cb0eb8c
@@ -1187,9 +1187,11 @@ if test "$HAVE_SBRK" = "1" ; then
e6a2505
 
277e3b5
 	AC_MSG_CHECKING([for personality(ADDR_NO_RANDOMIZE) support])
277e3b5
 	AC_RUN_IFELSE([AC_LANG_SOURCE([[
277e3b5
+		    #define CAN_UNRANDOMIZE_SBRK 1
277e3b5
+		    #include "h/unrandomize.h"
277e3b5
 		    void gprof_cleanup() {}
277e3b5
 		    int main(int argc,char *argv[],char *envp[]) {
277e3b5
-	            #include "h/unrandomize.h"
277e3b5
+		    UNRANDOMIZE_SBRK;
277e3b5
 		    return 0;}]])],CAN_UNRANDOMIZE_SBRK=1,CAN_UNRANDOMIZE_SBRK=0,CAN_UNRANDOMIZE_SBRK=0)
e6a2505
 
277e3b5
 	if test "$CAN_UNRANDOMIZE_SBRK" != 0 ; then
cb0eb8c
@@ -1202,12 +1204,11 @@ if test "$HAVE_SBRK" = "1" ; then
277e3b5
 	AC_MSG_CHECKING([that sbrk is (now) non-random])
277e3b5
 	AC_RUN_IFELSE([AC_LANG_SOURCE([[
277e3b5
 		    #include <stdio.h>
277e3b5
+		    #include "h/unrandomize.h"
277e3b5
 	            void gprof_cleanup() {}
277e3b5
 		    int main(int argc,char * argv[],char * envp[]) {
277e3b5
 			FILE *f;
277e3b5
-			#ifdef CAN_UNRANDOMIZE_SBRK
277e3b5
-			#include "h/unrandomize.h"
277e3b5
-			#endif
277e3b5
+			UNRANDOMIZE_SBRK;
277e3b5
 			if (!(f=fopen("conftest1","w"))) return -1;
277e3b5
 			fprintf(f,"%u",sbrk(0));
277e3b5
 			return 0;}]])],SBRK=`cat conftest1`,SBRK=0,SBRK=0)
cb0eb8c
@@ -1216,12 +1217,11 @@ if test "$HAVE_SBRK" = "1" ; then
277e3b5
 	fi
277e3b5
 	AC_RUN_IFELSE([AC_LANG_SOURCE([[
277e3b5
 		    #include <stdio.h>
277e3b5
+		    #include "h/unrandomize.h"
277e3b5
                     void gprof_cleanup() {}
277e3b5
 		    int main(int argc,char * argv[],char * envp[]) {
277e3b5
 			FILE *f;
277e3b5
-			#ifdef CAN_UNRANDOMIZE_SBRK
277e3b5
-			#include "h/unrandomize.h"
277e3b5
-			#endif
277e3b5
+			UNRANDOMIZE_SBRK;
277e3b5
 			if (!(f=fopen("conftest1","w"))) return -1;
277e3b5
 			fprintf(f,"%u",sbrk(0));
277e3b5
 			return 0;}]])],SBRK1=`cat conftest1`,SBRK1=0,SBRK1=0)
cb0eb8c
@@ -1263,6 +1263,7 @@ AC_MSG_CHECKING([finding DBEGIN])
277e3b5
 AC_RUN_IFELSE([AC_LANG_SOURCE([[
277e3b5
 #include <stdio.h>
277e3b5
 #include <stdlib.h>
277e3b5
+#include "h/unrandomize.h"
277e3b5
 
277e3b5
 void gprof_cleanup() {}
277e3b5
 int
cb0eb8c
@@ -1271,9 +1272,7 @@ main(int argc,char * argv[],char *envp[]
9eb0e10
   char *b,*b1;
9eb0e10
   FILE *fp;
9eb0e10
 
9eb0e10
-#ifdef CAN_UNRANDOMIZE_SBRK
9eb0e10
-#include "h/unrandomize.h"
9eb0e10
-#endif
9eb0e10
+  UNRANDOMIZE_SBRK;
9eb0e10
   b = (void *) malloc(1000);
9eb0e10
   fp = fopen("conftest1","w");
9eb0e10
 
Jerry James e1ab74d
--- ./configure.orig	2013-05-10 10:16:24.215085642 -0600
Jerry James e1ab74d
+++ ./configure	2013-05-10 10:19:55.934751565 -0600
Jerry James e1ab74d
@@ -7086,9 +7086,11 @@ else
9eb0e10
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9eb0e10
 /* end confdefs.h.  */
9eb0e10
 
9eb0e10
+		    #define CAN_UNRANDOMIZE_SBRK 1
9eb0e10
+		    #include "h/unrandomize.h"
9eb0e10
 		    void gprof_cleanup() {}
9eb0e10
 		    int main(int argc,char *argv[],char *envp[]) {
9eb0e10
-	            #include "h/unrandomize.h"
9eb0e10
+		    UNRANDOMIZE_SBRK;
9eb0e10
 		    return 0;}
9eb0e10
 _ACEOF
9eb0e10
 if ac_fn_c_try_run "$LINENO"; then :
Jerry James e1ab74d
@@ -7120,12 +7122,11 @@ else
9eb0e10
 /* end confdefs.h.  */
9eb0e10
 
9eb0e10
 		    #include <stdio.h>
9eb0e10
+		    #include "h/unrandomize.h"
9eb0e10
 	            void gprof_cleanup() {}
9eb0e10
 		    int main(int argc,char * argv[],char * envp[]) {
9eb0e10
 			FILE *f;
9eb0e10
-			#ifdef CAN_UNRANDOMIZE_SBRK
9eb0e10
-			#include "h/unrandomize.h"
9eb0e10
-			#endif
9eb0e10
+			UNRANDOMIZE_SBRK;
9eb0e10
 			if (!(f=fopen("conftest1","w"))) return -1;
9eb0e10
 			fprintf(f,"%u",sbrk(0));
9eb0e10
 			return 0;}
Jerry James e1ab74d
@@ -7149,12 +7150,11 @@ else
9eb0e10
 /* end confdefs.h.  */
9eb0e10
 
9eb0e10
 		    #include <stdio.h>
9eb0e10
+		    #include "h/unrandomize.h"
9eb0e10
                     void gprof_cleanup() {}
9eb0e10
 		    int main(int argc,char * argv[],char * envp[]) {
9eb0e10
 			FILE *f;
9eb0e10
-			#ifdef CAN_UNRANDOMIZE_SBRK
9eb0e10
-			#include "h/unrandomize.h"
9eb0e10
-			#endif
9eb0e10
+			UNRANDOMIZE_SBRK;
9eb0e10
 			if (!(f=fopen("conftest1","w"))) return -1;
9eb0e10
 			fprintf(f,"%u",sbrk(0));
9eb0e10
 			return 0;}
Jerry James e1ab74d
@@ -7241,6 +7241,7 @@ else
9eb0e10
 
9eb0e10
 #include <stdio.h>
9eb0e10
 #include <stdlib.h>
9eb0e10
+#include "h/unrandomize.h"
9eb0e10
 
9eb0e10
 void gprof_cleanup() {}
9eb0e10
 int
Jerry James e1ab74d
@@ -7249,9 +7250,7 @@ main(int argc,char * argv[],char *envp[]
277e3b5
   char *b,*b1;
277e3b5
   FILE *fp;
e6a2505
 
e6a2505
-#ifdef CAN_UNRANDOMIZE_SBRK
277e3b5
-#include "h/unrandomize.h"
e6a2505
-#endif
277e3b5
+  UNRANDOMIZE_SBRK;
277e3b5
   b = (void *) malloc(1000);
277e3b5
   fp = fopen("conftest1","w");
e6a2505
 
660b8f4
--- ./o/main.c.orig	2010-11-02 15:56:45.000000000 -0600
cb0eb8c
+++ ./o/main.c	2012-07-26 09:52:37.251033241 -0600
cb0eb8c
@@ -51,6 +51,7 @@ void initialize_process();
660b8f4
 #include <signal.h>
660b8f4
 #endif
660b8f4
 #include "page.h"
660b8f4
+#include "unrandomize.h"
660b8f4
 
660b8f4
 bool saving_system ;
660b8f4
 
cb0eb8c
@@ -146,11 +147,7 @@ main(int argc, char **argv, char **envp)
660b8f4
 #endif	
660b8f4
 	*argv=kcl_self;
660b8f4
 
660b8f4
-#ifdef CAN_UNRANDOMIZE_SBRK
660b8f4
-#include <stdio.h>
660b8f4
-#include <stdlib.h>
660b8f4
-#include "unrandomize.h"
660b8f4
-#endif
660b8f4
+	UNRANDOMIZE_SBRK;
660b8f4
 
660b8f4
 #ifdef LD_BIND_NOW
660b8f4
 #include <stdio.h>
660b8f4
--- ./h/unrandomize.h.orig	2010-01-12 07:19:15.000000000 -0700
cb0eb8c
+++ ./h/unrandomize.h	2012-07-26 09:52:37.274033201 -0600
660b8f4
@@ -1,39 +1,45 @@
660b8f4
+#include <stdio.h>
660b8f4
+#include <stdlib.h>
660b8f4
 #include <sys/personality.h>
660b8f4
 #include <syscall.h>
660b8f4
 #include <unistd.h>
660b8f4
 #include <alloca.h>
660b8f4
 #include <errno.h>
660b8f4
 
660b8f4
-
660b8f4
-{
660b8f4
-  errno=0;
660b8f4
-
660b8f4
-  {
660b8f4
-
660b8f4
-    long pers = personality(0xffffffffUL);
660b8f4
-    if (pers==-1) {printf("personality failure %d\n",errno);exit(-1);}
660b8f4
-    if (!(pers & ADDR_NO_RANDOMIZE) && !getenv("GCL_UNRANDOMIZE")) {
660b8f4
-      errno=0;
660b8f4
-      if (personality(pers | ADDR_NO_RANDOMIZE) != -1 && personality(0xffffffffUL) & ADDR_NO_RANDOMIZE) {
660b8f4
-	int i;
660b8f4
-	char **n;
660b8f4
-	for (i=0;envp[i];i++);
660b8f4
-	n=alloca((i+2)*sizeof(*n));
660b8f4
-	n[i+1]=0;
660b8f4
-	n[i--]="GCL_UNRANDOMIZE=t";
660b8f4
-	for (;i>=0;i--)
660b8f4
-	  n[i]=envp[i];
660b8f4
-#ifdef GCL_GPROF
660b8f4
-	gprof_cleanup();
660b8f4
+#ifdef CAN_UNRANDOMIZE_SBRK
660b8f4
+# ifdef GCL_GPROF
660b8f4
+#  define GPROF_CLEANUP gprof_cleanup()
660b8f4
+# else
660b8f4
+#  define GPROF_CLEANUP
660b8f4
+# endif
660b8f4
+# define UNRANDOMIZE_SBRK do {						\
660b8f4
+    errno=0;								\
660b8f4
+    {									\
660b8f4
+      long pers = personality(0xffffffffUL);				\
660b8f4
+      if (pers==-1) {printf("personality failure %d\n",errno);exit(-1);} \
660b8f4
+      if (!(pers & ADDR_NO_RANDOMIZE) && !getenv("GCL_UNRANDOMIZE")) {	\
660b8f4
+	errno=0;							\
660b8f4
+	if (personality(pers | ADDR_NO_RANDOMIZE) != -1 && personality(0xffffffffUL) & ADDR_NO_RANDOMIZE) { \
660b8f4
+	  int i;							\
660b8f4
+	  char **n;							\
660b8f4
+	  for (i=0;envp[i];i++);					\
660b8f4
+	  n=alloca((i+2)*sizeof(*n));					\
660b8f4
+	  n[i+1]=0;							\
660b8f4
+	  n[i--]="GCL_UNRANDOMIZE=t";					\
660b8f4
+	  for (;i>=0;i--)						\
660b8f4
+	    n[i]=envp[i];						\
660b8f4
+	  GPROF_CLEANUP;						\
660b8f4
+	  errno=0;							\
660b8f4
+	  execve(*argv,argv,n);						\
660b8f4
+	  printf("execve failure %d\n",errno);				\
660b8f4
+	  exit(-1);							\
660b8f4
+	} else {							\
660b8f4
+	  printf("personality change failure %d\n",errno);		\
660b8f4
+	  exit(-1);							\
660b8f4
+	}								\
660b8f4
+      }									\
660b8f4
+    }									\
660b8f4
+  } while (0)
660b8f4
+#else
660b8f4
+# define UNRANDOMIZE_SBRK
660b8f4
 #endif
660b8f4
-	errno=0;
660b8f4
-	execve(*argv,argv,n);
660b8f4
-	printf("execve failure %d\n",errno);
660b8f4
-	exit(-1);
660b8f4
-      } else {
660b8f4
-	printf("personality change failure %d\n",errno);
660b8f4
-	exit(-1);
660b8f4
-      }
660b8f4
-    }
660b8f4
-  }
660b8f4
-}