This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: cpp error: attempt to use poisoned "CPP_PREDEFINES"
- From: Robert Millan <zeratul2 at wanadoo dot es>
- To: Alexandre Oliva <aoliva at redhat dot com>
- Cc: gcc-help at gcc dot gnu dot org, glibc-bsd-devel at lists dot alioth dot debian dot org,glibc-bsd-hackers at nongnu dot org
- Date: Wed, 10 Sep 2003 16:38:23 +0000
- Subject: Re: cpp error: attempt to use poisoned "CPP_PREDEFINES"
- Organisation: free as in freedom
- References: <20030909170217.GA564@aragorn> <orfzj57lm2.fsf@free.redhat.lsd.ic.unicamp.br>
On Tue, Sep 09, 2003 at 05:28:05PM -0300, Alexandre Oliva wrote:
> On Sep 9, 2003, Robert Millan <zeratul2@wanadoo.es> wrote:
>
> > Anyone knows what "poisoned" means here?
>
> It means the use of this macro is no longer permitted in GCC. It was
> replaced with some other means to introduce the same feature. Search
> for CPP_PREDEFINES in the gccint info manual and you'll see what was
> introduced in its stead.
Glad to see GCC has so good internals documentation. I've fixed it to use
TARGET_{OS,CPU}_CPP_BUILTINS, hacked some other config stuff and got c,c++
to pass "make check" with just a few errors.
I'm not sure how to define the __i386__ macro portably though. I'm forced to
add this define unconditionaly in kfreebsdgnu.h:
#undef TARGET_CPU_CPP_BUILTINS
#define TARGET_CPU_CPP_BUILTINS() \
builtin_define ("__i386__"); \
builtin_define_std ("i386"); \
builtin_assert ("cpu=i386"); \
builtin_assert ("machine=i386");
Otherwise stage1 breaks because of xgcc not defining __i386__. Other systems
don't hardcode cpu macros in their headers; What is the correct way to get
these macros defined?
Thanks,
--
Robert Millan
"[..] but the delight and pride of Aule is in the deed of making, and in the
thing made, and neither in possession nor in his own mastery; wherefore he
gives and hoards not, and is free from care, passing ever on to some new work."
-- J.R.R.T, Ainulindale (Silmarillion)