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