This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: FreeBSD 4.0
- To: morganw AT engr.sc dot edu
- Subject: Re: FreeBSD 4.0
- From: Loren James Rittle <rittle AT latour.rsch.comm.mot dot com>
- Date: Wed, 15 Sep 1999 00:33:59 -0500 (CDT)
- CC: rth AT cygnus dot com, gcc AT gcc.gnu dot org, obrien AT nuxi dot com, pfeifer AT dbai.tuwien.ac.at
- References: <Pine.BSF.4.10.9909142230060.33324-100000@volatile.by-tor.tacorp.net>
- Reply-to: rittle AT rsch.comm.mot dot com
Wes Morgan wrote:
> Trying to build the latest CVS snapshot under freebsd 4.0 fails with these
> errors:
...
> include/stdio.h:245: parse error before `__gnuc_va_list'
...
> There are a few mentions of fixing _BSD_VA_LIST_ to __gnuc_va_list in some
> of the changelogs, but I haven't seen anything conclusive... Is this a
> known problem, or is my CVS tree out of sync somehow? Or maybe I need to
> set some different CFLAGS?
I have built gcc_ss_19990913 on FreeBSD 3.2-RELEASE with the patches
in http://egcs.cygnus.com/ml/gcc-patches/1999-08/msg00728.html (they
have been *REQUIRED* on FreeBSD for some time). The issue is that
ports may no longer override USER_T in order to keep fixinc from running.
Richard Henderson wrote:
> I just checked in a much simplified version of stdarg.h.
> Would you send me a preprocessed copy and we can figure
> out what went wrong.
Cool! If you have upgraded past gcc_ss_19990913 and picked up
Richard's latest changes, then I can now confirm (since I just
finished a bootstrap on the mainline with his changes) that the
gcc/ginclude/stdarg.h and gcc/ginclude/varargs.h patches are no longer
needed (since he removed the code that those patches affected ;-)!
Unfortunately (although extremely minor), that means that until I get
around to investigating the root issue in fixinc, any C++ code that
relies on system headers which use _BSD_VA_LIST_ instead of va_list
(not including stdio.h which is now correctly fixed) will fail with
errors of this form:
cannot convert `void *' to `char *' for argument `X' to `foo(...)'
Richard, is it your position that all system headers must be fixed to
only reference __gnuc_va_list instead of va_list and/or
system-specific macros such as _BSD_VA_LIST_ (as was historically used
by BSD systems)? If so, then fixinc's rule to mung _BSD_VA_LIST_ into
__gnuc_va_list must be expanded to operate on 10-15 other standard BSD
system headers...
Wes, if you could tell me if the referenced patches work for you under
FreeBSD 4.0, that could be helpful.
Regards,
Loren