Package: gauche
Version: 0.8.7-1
Tags: patch

Our automated buildd log filter [1] detected a problem that will cause
your package to segfault on architectures such as ia64:

 Function `crypt' implicitly converted to pointer at syslib.c:2533

[1] http://people.debian.org/~dannf/check-implicit-pointer-functions

In addition, src/read.c:ref_val() implicitly declares its "ref"
argument as an "int", when it's really a pointer.  That causes a crash
in the io2.scm test case.  With the patch below applied, "make check"
succeeds on ia64 linux.

Thanks,

 --david
--
Mosberger Consulting LLC, http://www.mosberger-consulting.com/
diff -urN gauche-0.8.7/build-tree/src/read.c 
gauche-0.8.7-fixed/build-tree/src/read.c
--- gauche-0.8.7/build-tree/src/read.c  2006-01-13 00:37:40.000000000 -0700
+++ gauche-0.8.7-fixed/build-tree/src/read.c    2006-05-24 15:24:33.000000000 
-0600
@@ -238,7 +238,7 @@
     ctx->pending = Scm_Acons(obj, finisher, ctx->pending);
 }
 
-static ScmObj ref_val(ref)
+static ScmObj ref_val(void *ref)
 {
     if (!SCM_READ_REFERENCE_REALIZED(ref)) {
         Scm_Error("reader encontered unresolved read reference.  
Implementation error?");
diff -urN gauche-0.8.7/build-tree/src/syslib.c 
gauche-0.8.7-fixed/build-tree/src/syslib.c
--- gauche-0.8.7/build-tree/src/syslib.c        2006-04-12 19:51:48.000000000 
-0600
+++ gauche-0.8.7-fixed/build-tree/src/syslib.c  2006-05-24 15:12:14.000000000 
-0600
@@ -2514,6 +2514,7 @@
 static SCM_DEFINE_SUBR(syslib_sys_ftruncate__STUB, 2, 0, 
SCM_OBJ(&syslib_sys_ftruncate__NAME), syslib_sys_ftruncate, NULL, NULL);
 
 #if defined(HAVE_CRYPT)
+#include <crypt.h>
 static ScmObj syslib_sys_crypt(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 {
   ScmObj key_scm;

Reply via email to