unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* 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).