* ipv6 in guile 1.5.6: configure bug and fix
@ 2002-03-13 14:22 Greg Troxel
2002-03-13 14:45 ` Mr. Peter Ivanyi
2002-04-24 20:35 ` Marius Vollmer
0 siblings, 2 replies; 8+ messages in thread
From: Greg Troxel @ 2002-03-13 14:22 UTC (permalink / raw)
Cc: Greg Troxel
This configure check:
AC_MSG_CHECKING(for working IPv6 support)
AC_CACHE_VAL(guile_cv_have_ipv6,
[AC_TRY_COMPILE([#include <netinet/in.h>
#include <sys/socket.h>],
[struct sockaddr_in6 a; a.sin6_family = AF_INET6;],
guile_cv_have_ipv6=yes, guile_cv_have_ipv6=no)])
AC_MSG_RESULT($guile_cv_have_ipv6)
if test $guile_cv_have_ipv6 = yes; then
AC_DEFINE(HAVE_IPV6)
fi
loses on NetBSD 1.5.2-stable (i.e., fails to declare HAVE_IPV6). This
is because the test does not include <sys/types.h>, which man inet6
indicates should be included, and the test program fails with syntax
errors due to lacking u_int8_t etc.
RFC2553 does not appear to mandate including <sys/types.h>, so perhaps
this is a NetBSD bug, but I think it's good for guile to accomodate
it. Perhaps the include of sys/types.h should be protected by a
HAVE_SYS_TYPES_H conditional, so as not to break systems without
sys/types.h that work with just netinet/in.h.
The following patch (only tested the configure patch because autoconf
is at 2.13 on the system in question) caused configure to define
HAVE_IPV6.
Index: configure
===================================================================
RCS file: /QUIST-CVS/guile/configure,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 configure
--- configure 2002/03/04 23:33:18 1.1.1.1
+++ configure 2002/03/13 13:22:36
@@ -11261,6 +11261,7 @@
cat >conftest.$ac_ext <<_ACEOF
#line 11262 "configure"
#include "confdefs.h"
+#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
int
Index: configure.in
===================================================================
RCS file: /QUIST-CVS/guile/configure.in,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 configure.in
--- configure.in 2002/03/04 23:24:38 1.1.1.1
+++ configure.in 2002/03/13 13:20:26
@@ -325,7 +325,8 @@
AC_MSG_CHECKING(for working IPv6 support)
AC_CACHE_VAL(guile_cv_have_ipv6,
-[AC_TRY_COMPILE([#include <netinet/in.h>
+[AC_TRY_COMPILE([#include <sys/types.h>
+#include <netinet/in.h>
#include <sys/socket.h>],
[struct sockaddr_in6 a; a.sin6_family = AF_INET6;],
guile_cv_have_ipv6=yes, guile_cv_have_ipv6=no)])
With this patch, guile 1.5.6 builds and make check gives (on an i386):
Testing /home/gdt/QUIST-current/guile/pre-inst-guile ...
with GUILE_LOAD_PATH=/home/gdt/QUIST-current/guile/test-suite
ERROR: regexp.test: regexp-substitute/global: ("" "" ""): port is string port - arguments: ((regular-expression-syntax "make-regexp" "empty (sub)expression" #f #f))
ERROR: regexp.test: regexp-substitute/global: ("" "" ""): port is #f - arguments: ((regular-expression-syntax "make-regexp" "empty (sub)expression" #f #f))
ERROR: srfi-19.test: SRFI date/time library: #<procedure time-utc->date (time . tz-offset)> respects local DST if no TZ-OFFSET given - arguments: ((system-error "putenv" "~A" ("No such file or directory") (2)))
FAIL: syncase.test: (ice-9 syncase) loads
Totals for this test run:
passes: 2112
failures: 1
unexpected passes: 0
expected failures: 17
unresolved test cases: 0
untested test cases: 0
unsupported test cases: 9
errors: 3
FAIL: check-guile
===================
1 of 1 tests failed
===================
gmake[2]: *** [check-TESTS] Error 1
gmake[2]: Leaving directory `/home/gdt/QUIST-current/guile'
gmake[1]: *** [check-am] Error 2
gmake[1]: Leaving directory `/home/gdt/QUIST-current/guile'
gmake: *** [check-recursive] Error 1
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: ipv6 in guile 1.5.6: configure bug and fix
2002-03-13 14:22 ipv6 in guile 1.5.6: configure bug and fix Greg Troxel
@ 2002-03-13 14:45 ` Mr. Peter Ivanyi
2002-03-13 19:33 ` Marius Vollmer
2002-04-24 20:35 ` Marius Vollmer
1 sibling, 1 reply; 8+ messages in thread
From: Mr. Peter Ivanyi @ 2002-03-13 14:45 UTC (permalink / raw)
Greg Troxel wrote:
> FAIL: syncase.test: (ice-9 syncase) loads
Sorry I do not know whether it is important,
but this test fails on my Linux box as well. (1.5.6)
Peter Ivanyi
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: ipv6 in guile 1.5.6: configure bug and fix
2002-03-13 14:45 ` Mr. Peter Ivanyi
@ 2002-03-13 19:33 ` Marius Vollmer
0 siblings, 0 replies; 8+ messages in thread
From: Marius Vollmer @ 2002-03-13 19:33 UTC (permalink / raw)
Cc: guile-user@gnu.org
"Mr. Peter Ivanyi" <peteri@carme.sect.mce.hw.ac.uk> writes:
> Greg Troxel wrote:
>
> > FAIL: syncase.test: (ice-9 syncase) loads
>
> Sorry I do not know whether it is important,
> but this test fails on my Linux box as well. (1.5.6)
We know about this one (but not the others reported by Greg). A fix
will be released shortly. A workaround is to configure Guile
"--with-threads".
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: ipv6 in guile 1.5.6: configure bug and fix
2002-03-13 14:22 ipv6 in guile 1.5.6: configure bug and fix Greg Troxel
2002-03-13 14:45 ` Mr. Peter Ivanyi
@ 2002-04-24 20:35 ` Marius Vollmer
2002-04-25 11:44 ` Greg Troxel
2002-04-25 12:21 ` guile 1.5.6 make check failures on netbsd 1.5.3ish Greg Troxel
1 sibling, 2 replies; 8+ messages in thread
From: Marius Vollmer @ 2002-04-24 20:35 UTC (permalink / raw)
Cc: guile-user
Greg Troxel <gdt@ir.bbn.com> writes:
> This configure check:
>
> [...]
>
> loses on NetBSD 1.5.2-stable (i.e., fails to declare HAVE_IPV6). This
> is because the test does not include <sys/types.h>, which man inet6
> indicates should be included, and the test program fails with syntax
> errors due to lacking u_int8_t etc.
Thanks for reporting this!
Does the following test "whether sockaddr_in6 has sin6_scope_id"
succeed?
I have recorded this as bug 'ipv6-not-detected-on-netbsd' and marked
release critical.
> With this patch, guile 1.5.6 builds and make check gives (on an
> i386):
>
> Testing /home/gdt/QUIST-current/guile/pre-inst-guile ...
> with GUILE_LOAD_PATH=/home/gdt/QUIST-current/guile/test-suite
> ERROR: regexp.test: regexp-substitute/global: ("" "" ""): port is string port - arguments: ((regular-expression-syntax "make-regexp" "empty (sub)expression" #f #f))
> ERROR: regexp.test: regexp-substitute/global: ("" "" ""): port is #f - arguments: ((regular-expression-syntax "make-regexp" "empty (sub)expression" #f #f))
> ERROR: srfi-19.test: SRFI date/time library: #<procedure time-utc->date (time . tz-offset)> respects local DST if no TZ-OFFSET given - arguments: ((system-error "putenv" "~A" ("No such file or directory") (2)))
> FAIL: syncase.test: (ice-9 syncase) loads
Could you try to investigate this?
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: ipv6 in guile 1.5.6: configure bug and fix
2002-04-24 20:35 ` Marius Vollmer
@ 2002-04-25 11:44 ` Greg Troxel
2002-05-06 19:15 ` Marius Vollmer
2002-04-25 12:21 ` guile 1.5.6 make check failures on netbsd 1.5.3ish Greg Troxel
1 sibling, 1 reply; 8+ messages in thread
From: Greg Troxel @ 2002-04-25 11:44 UTC (permalink / raw)
Cc: guile-user
> This configure check:
>
> [...]
>
> loses on NetBSD 1.5.2-stable (i.e., fails to declare HAVE_IPV6). This
> is because the test does not include <sys/types.h>, which man inet6
> indicates should be included, and the test program fails with syntax
> errors due to lacking u_int8_t etc.
Thanks for reporting this!
Does the following test "whether sockaddr_in6 has sin6_scope_id"
succeed?
I have recorded this as bug 'ipv6-not-detected-on-netbsd' and marked
release critical.
Yes, the check for sin6_scope_id fails in the same way - I should have
noticed that. I added <sys/types.h> to that one and the check
succeeed.
BTW this is now on a NetBSD 1.5.3_RC (netbsd-1-5 as of 20020313),
although I don't think that matters much.
Greg Troxel <gdt@ir.bbn.com>
Here's my current diff for this. Note that only the 'configure' part
was tested - my autoconf is at 2.13.
Index: configure
===================================================================
RCS file: /QUIST-CVS/guile/configure,v
retrieving revision 1.1.1.1
retrieving revision 1.3
diff -u -r1.1.1.1 -r1.3
--- configure 2002/03/04 23:33:18 1.1.1.1
+++ configure 2002/04/25 11:32:29 1.3
@@ -11261,6 +11261,7 @@
cat >conftest.$ac_ext <<_ACEOF
#line 11262 "configure"
#include "confdefs.h"
+#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
int
@@ -11310,6 +11311,7 @@
cat >conftest.$ac_ext <<_ACEOF
#line 11311 "configure"
#include "confdefs.h"
+#include <sys/types.h>
#include <netinet/in.h>
int
main ()
Index: configure.in
===================================================================
RCS file: /QUIST-CVS/guile/configure.in,v
retrieving revision 1.1.1.1
retrieving revision 1.3
diff -u -r1.1.1.1 -r1.3
--- configure.in 2002/03/04 23:24:38 1.1.1.1
+++ configure.in 2002/04/25 11:31:48 1.3
@@ -325,7 +325,8 @@
AC_MSG_CHECKING(for working IPv6 support)
AC_CACHE_VAL(guile_cv_have_ipv6,
-[AC_TRY_COMPILE([#include <netinet/in.h>
+[AC_TRY_COMPILE([#include <sys/types.h>
+#include <netinet/in.h>
#include <sys/socket.h>],
[struct sockaddr_in6 a; a.sin6_family = AF_INET6;],
guile_cv_have_ipv6=yes, guile_cv_have_ipv6=no)])
@@ -337,7 +338,8 @@
# included in rfc2553 but not in older implementations, e.g., glibc 2.1.3.
AC_MSG_CHECKING(whether sockaddr_in6 has sin6_scope_id)
AC_CACHE_VAL(guile_cv_have_sin6_scope_id,
-[AC_TRY_COMPILE([#include <netinet/in.h>],
+[AC_TRY_COMPILE([#include <sys/types.h>
+#include <netinet/in.h>],
[struct sockaddr_in6 sok; sok.sin6_scope_id = 0;],
guile_cv_have_sin6_scope_id=yes, guile_cv_have_sin6_scope_id=no)])
AC_MSG_RESULT($guile_cv_have_sin6_scope_id)
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user
^ permalink raw reply [flat|nested] 8+ messages in thread
* guile 1.5.6 make check failures on netbsd 1.5.3ish
2002-04-24 20:35 ` Marius Vollmer
2002-04-25 11:44 ` Greg Troxel
@ 2002-04-25 12:21 ` Greg Troxel
2002-05-06 19:27 ` Marius Vollmer
1 sibling, 1 reply; 8+ messages in thread
From: Greg Troxel @ 2002-04-25 12:21 UTC (permalink / raw)
Cc: guile-user
> With this patch, guile 1.5.6 builds and make check gives (on an
> i386):
>
> Testing /home/gdt/QUIST-current/guile/pre-inst-guile ...
> with GUILE_LOAD_PATH=/home/gdt/QUIST-current/guile/test-suite
> ERROR: regexp.test: regexp-substitute/global: ("" "" ""): port is string port - arguments: ((regular-expression-syntax "make-regexp" "empty (sub)expression" #f #f))
> ERROR: regexp.test: regexp-substitute/global: ("" "" ""): port is #f - arguments: ((regular-expression-syntax "make-regexp" "empty (sub)expression" #f #f))
> ERROR: srfi-19.test: SRFI date/time library: #<procedure time-utc->date (time . tz-offset)> respects local DST if no TZ-OFFSET given - arguments: ((system-error "putenv" "~A" ("No such file or directory") (2)))
> FAIL: syncase.test: (ice-9 syncase) loads
Could you try to investigate this?
I get the same failures on FreeBSD 4.5ish (same guile sources).
Trying to do the srfi-19 test in parts by hand, it fails because
(putenv "TZ")
fails. putenv with a name=value arg works.
Reading the sources, it appears that in posix.c, plain "putenv" is called.
The man pages on FreeBSD and NetBSD indicate that putenv requires an =
in the argument. The NetBSD sources are quite clear about this
requirement:
if ((equal = strchr(p, '=')) == NULL) {
(void)free(p);
return (-1);
}
I don't know if POSIX etc. specifies putenv, but it would seem that
one should call unsetenv for the case of no "=". (I found it very
counterintuitive that putenv with a string and no = would be
equivalent to unsetenv, but that could just be me.)
For the regexp tests, the problem seems to be this:
guile> (make-regexp "")
<unnamed port>:6:1: In procedure make-regexp in expression (make-regexp ""):
<unnamed port>:6:1: empty (sub)expression
ABORT: (regular-expression-syntax)
NetBSD man pages claim that regcomp (in libc) complies with IEEE Std
1003.2-1992 (``POSIX.2'') and lists the following error code:
REG_EMPTY empty (sub)expression
So, we need a POSIX lawyer to tell us whether NetBSD's (and FreeBSD's)
regcomp is wrong, or whether it is a bug in the guile test to expect
regcomp on the empty string to succeed without error.
Greg Troxel <gdt@ir.bbn.com>
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: ipv6 in guile 1.5.6: configure bug and fix
2002-04-25 11:44 ` Greg Troxel
@ 2002-05-06 19:15 ` Marius Vollmer
0 siblings, 0 replies; 8+ messages in thread
From: Marius Vollmer @ 2002-05-06 19:15 UTC (permalink / raw)
Cc: guile-user
Greg Troxel <gdt@ir.bbn.com> writes:
> I have recorded this as bug 'ipv6-not-detected-on-netbsd' and marked
> release critical.
>
> Yes, the check for sin6_scope_id fails in the same way - I should have
> noticed that. I added <sys/types.h> to that one and the check
> succeeed.
Ok, this should be fixed now, in both branches. Thanks again!
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: guile 1.5.6 make check failures on netbsd 1.5.3ish
2002-04-25 12:21 ` guile 1.5.6 make check failures on netbsd 1.5.3ish Greg Troxel
@ 2002-05-06 19:27 ` Marius Vollmer
0 siblings, 0 replies; 8+ messages in thread
From: Marius Vollmer @ 2002-05-06 19:27 UTC (permalink / raw)
Cc: guile-user
Greg Troxel <gdt@ir.bbn.com> writes:
> Trying to do the srfi-19 test in parts by hand, it fails because
> (putenv "TZ")
> fails. putenv with a name=value arg works.
> Reading the sources, it appears that in posix.c, plain "putenv" is called.
> The man pages on FreeBSD and NetBSD indicate that putenv requires an =
> in the argument.
So does the GNU/Linux man page. The GNU libc info file does specify
the behavior that Guile assumes. I tend to trust the GNU libc manual.
I will install a workaround for systems where putenv("VAR") fails.
> For the regexp tests, the problem seems to be this:
>
> guile> (make-regexp "")
> <unnamed port>:6:1: In procedure make-regexp in expression (make-regexp ""):
> <unnamed port>:6:1: empty (sub)expression
> ABORT: (regular-expression-syntax)
>
> NetBSD man pages claim that regcomp (in libc) complies with IEEE Std
> 1003.2-1992 (``POSIX.2'') and lists the following error code:
>
> REG_EMPTY empty (sub)expression
>
> So, we need a POSIX lawyer to tell us whether NetBSD's (and FreeBSD's)
> regcomp is wrong, or whether it is a bug in the guile test to expect
> regcomp on the empty string to succeed without error.
We can just delete the tests.
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2002-05-06 19:27 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-03-13 14:22 ipv6 in guile 1.5.6: configure bug and fix Greg Troxel
2002-03-13 14:45 ` Mr. Peter Ivanyi
2002-03-13 19:33 ` Marius Vollmer
2002-04-24 20:35 ` Marius Vollmer
2002-04-25 11:44 ` Greg Troxel
2002-05-06 19:15 ` Marius Vollmer
2002-04-25 12:21 ` guile 1.5.6 make check failures on netbsd 1.5.3ish Greg Troxel
2002-05-06 19:27 ` Marius Vollmer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).