[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Annotated Patches for MacOS X 10.2 / gcc 3.1
From: |
Han-Wen Nienhuys |
Subject: |
Annotated Patches for MacOS X 10.2 / gcc 3.1 |
Date: |
Mon, 26 Aug 2002 14:18:17 +0200 |
address@hidden writes:
> 3) This one is both nasty and mysterious: If <iostream.h> is first
> encountered through an include
> from <FlexLexer.h>, gcc 3.1 hundreds of "template has C linkage" errors.
> If it's first included
> from the file to be compiled, everything works fine. The solution is to
> insert an #include <iostream.h> into any file that directly or
> indirectly includes <FlexLexer.h>. In the case of the
> flex generated lexer itself, this has to be done through a make recipe,
> since the #include <FlexLexer.h> is placed in the generated file before
> anything included from the .ll file.
did you try the lexer-gcc-3.1.sh script?
> 4) This one, I think, is a Linuxism (At least I see it frequently in
> ports from Linux). <malloc.h> is
> a nonstandard header that does not exist on MacOS X and many other
> platforms. malloc() is properly defined in <stdlib.h>.
Ok. fixed.
> 5) Not sure whether this is a MacOS X bug or a bug in the source, but on
> MacOS X, <sys/resource.h> needs <sys/time.h> to work.
I've simply switched off PARANOIA.
> 1) if __GNU_LIBRARY__ is not defined, kpathsea/getopt.h prototypes
> getopt as extern getopt()
> to get around parameter incompatibilities. While this works for
> C, this of course is not a viable
> approach for C++ (where the empty parameter list is taken
> literally). Luckily the declaration
> if __GNU_LIBRARY__ *is* defined is compatible with the
> declaration used by MacOS X.
>
I don't understand; this should be handled by
> #define getopt YAKLUDGE
Can you investigate?
> 2) MacOS X defines isinf and isnan as macros. <cmath>, apparently for
> compatibility reasons, undefines those macros and only makes these
> definitions visible under conditions which are
> not met on MacOS X. Therefore, we have to pull these definitions into
> (inline) functions before
> including <cmath>.
Strange. We don't have cmath anywhere in the source; can you see where
it's coming from?
--
Han-Wen Nienhuys | address@hidden | http://www.cs.uu.nl/~hanwen/