From mboxrd@z Thu Jan 1 00:00:00 1970 From: Loren James Rittle To: morganw@engr.sc.edu Cc: rth@cygnus.com, gcc@gcc.gnu.org, obrien@nuxi.com, pfeifer@dbai.tuwien.ac.at Subject: Re: FreeBSD 4.0 Date: Thu, 30 Sep 1999 18:02:00 -0000 Message-ID: <199909150533.AAA14241@latour.rsch.comm.mot.com> References: X-SW-Source: 1999-09n/msg00580.html Message-ID: <19990930180200.qZXXJ8StlK9Ak3SAg4V_PwXFvSjyHRJ_c3t9t_kLp7M@z> 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