Hi, Greg Troxel <[EMAIL PROTECTED]> writes:
> [EMAIL PROTECTED] (Ludovic Courtès) writes: > >> Greg Troxel <[EMAIL PROTECTED]> writes: >> >>> Fix for solaris, but I thinh preserves behavior on C99 machines. >>> >>> $NetBSD: patch-ag,v 1.5 2007/07/20 00:09:22 gdt Exp $ >>> >>> solaris-2.9 does not have stdint.h but does have inttypes.h >>> >>> --- libguile/c-tokenize.c.orig 2007-06-13 18:00:56.000000000 -0400 >>> +++ libguile/c-tokenize.c >>> @@ -39,7 +39,12 @@ >>> #define __STDC_LIMIT_MACROS 1 >>> #endif >>> >>> +#ifdef HAVE_STDINT_H >>> +#include <stdint.h> /* May break IA64 test-noansi-r */ >>> +#else >>> #include <inttypes.h> >>> +#endif >> >> First, the comment and the patch are contradictory. A bit of googling >> seems to confirm the comment, in which case the patch isn't needed. >> >> Second, C99 requires both (Sections 7.18 and 7.8). >> >> Third, the `#include' is within a `#if __STDC_VERSION__ >= 199901L', so >> only C99 systems get to include it. >> >> Fourth, this is a Flex-generated file, so it'd be nice to avoid patching >> it. >> >> Just to say that I'm dubious about this patch. :-) > > I think the issue is that some versions of solaris do not have stdint.h, > but do have inttypes.h. But, the patch may be wrong in dealing with it. Without the patch, `c-tokenize.c' includes *only* <inttypes.h> (see my first comment above.) > Does guile have a position on supporting systems that don't conform to > C99? I'm wondering if I should try to figure this out and get a fix > that is reasonable (I agree this one is gross and likely wrong), or just > punt. Guile is written using C89 code. It does use C99 headers when available, but does not usually rely on them I think. I believe the "position" is roughly to be portable to any platform with Guile users. :-) Thanks, Ludovic.
