Hi,

Didier Godefroy <[email protected]> writes:

> gc_os_dep.c:1130: warning: type defaults to 'int' in declaration of '_end'
> gc_os_dep.c: In function 'scm_get_stack_base':
> gc_os_dep.c:1916: warning: comparison of distinct pointer types lacks a cast

The attached patch should fix it.  Can you try it and report back?
(Apply it with "patch -p1 < /the/patch.diff" from the top-level source
directory.)

> In the previous 1.8.5 version which I could never build successfully, I was
> using a cflag -DSCM_DEBUG_TYPING_STRICTNESS=0 although I forgot how I was
> brought to use it, it's been a while since I tried building 1.8.5

This is no longer needed (see
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=95c6523b03387997d62c1bed57bd1a0864e30836).

Hope this helps,
Ludo'.

diff --git a/libguile/gc_os_dep.c b/libguile/gc_os_dep.c
index d89f1cf..7bc9644 100644
--- a/libguile/gc_os_dep.c
+++ b/libguile/gc_os_dep.c
@@ -1127,7 +1127,7 @@ scm_get_stack_base ()
 #   ifdef OSF1
 #	define OS_TYPE "OSF1"
 #   	define DATASTART ((ptr_t) 0x140000000)
-	extern _end;
+	extern int _end;
 #   	define DATAEND ((ptr_t) &_end)
 #   	define HEURISTIC2
 	/* Normally HEURISTIC2 is too conervative, since		*/
@@ -1912,7 +1912,7 @@ void *scm_get_stack_base()
 #	    if STACK_GROWS_DOWN
 		result = GC_find_limit((ptr_t)(&dummy), TRUE);
 #           	ifdef HEURISTIC2_LIMIT
-		    if (result > HEURISTIC2_LIMIT
+		    if ((ptr_t)result > HEURISTIC2_LIMIT
 		        && (ptr_t)(&dummy) < HEURISTIC2_LIMIT) {
 		            result = HEURISTIC2_LIMIT;
 		    }

Reply via email to