Hi Greg,

Greg Troxel <[EMAIL PROTECTED]> writes:

> I am not 100% clear on this one, but I think the basic issue is that the
> code was defining errno always, and that could lose depending on whether
> it matched the system definition.

Makes sense.

> Perhaps we need HAVE_ERRNO_H, but in
> general I'm in favor of checking for C99/etc. and trying that, and only
> if not found trying to work around.

_scm.h already includes errno.h unconditionally.  It appears that it's
one of a very few headers that we always assume.  And no one has
reported this failing, so the assumption must be fine.

> $NetBSD: patch-aj,v 1.3 2007/07/20 00:09:23 gdt Exp $
>
> --- libguile/_scm.h.orig      2007-05-09 16:22:03.000000000 -0400
> +++ libguile/_scm.h
> @@ -119,7 +119,9 @@
>  # define SCM_SYSCALL(line) line;
>  #endif /* ndef SCM_SYSCALL */
>  
> -#if !defined (MSDOS) && !defined (__MINGW32__)
> +#include <errno.h>

The include isn't needed here, because errno.h was already included
earlier on in the same file.

> +
> +#if !defined (MSDOS) && !defined (__MINGW32__) && !defined(errno)
>  # ifdef ARM_ULIB
>      extern volatile int errno;
>  # else

I think we can just delete these extra errno declarations.  They've
been there forever - or at least since rev 1.1 of _scm.h in CVS (1996)
- and I suspect they've just been left in from a time (pre-CVS) before
the #include <errno.h> was added.

Can you confirm that ripping this stanza out works for you, then we'll
go ahead with that for 1.8.5.

Thanks,
        Neil



Reply via email to