Hi,
Greg Troxel <[EMAIL PROTECTED]> writes:
> This just adds defines for more platforms, plus fixes a comment typo.
>
> $NetBSD: patch-ae,v 1.13 2007/07/20 00:09:22 gdt Exp $
>
> support for NetBSD/alpha, NetBSD/sparc64, and NetBSD/x86_64
>
I'm unclear about some of the changes below.
> -# if defined(__NetBSD__) && defined(__sparc__)
> +# if defined(__NetBSD__) && (defined(__sparc__) || defined(__sparc_v9__))
Two questions:
1. Isn't `__sparc__' defined on V9? On GNU/Linux, it seems that it is
defined on both V9 and V8, so no special treatment is required.
2. Unless I'm mistaken, this is equivalent to
#if (defined(__NetBSD__) && (defined(__sparc__))) ||
(defined(__sparc_v9__))
while this should probably be:
#if defined(__NetBSD__) && (defined(__sparc__) ||
(defined(__sparc_v9__)))
> +# if defined(__NetBSD__) && defined(__x86_64__)
> +# define X86_64
> +# define NETBSD
> +# define mach_type_known
> +# endif
[...]
> +# ifdef X86_64
> +# define MACH_TYPE "X86_64"
> +# define ALIGNMENT 8
> +# define ALIGN_DOUBLE
> +# define CPP_WORDSZ 64
> +# ifdef NETBSD
> +# define OS_TYPE "NETBSD"
> +# endif
> +# if defined(NETBSD)
> +# define HEURISTIC2
> + extern char etext;
> +# define DATASTART ((ptr_t)(&etext))
> +# endif
> +# endif
Strangely enough, we don't have `LINUX && __x86_64__' either.
Interestingly, of these constants, it seems that Guile uses only
`HEURISTIC2'. For instance, Guile's GC gets the alignment constraint
through the definition of `SCM_STACKITEM'.
Hence my question: didn't the NetBSD/i386 support suffice on x86-64?
What exact problem did it solve?
The other bits are indeed applicable.
Thanks,
Ludovic.