Date: Tue, 5 Jan 1999 17:47:29 +0100 From: Martin Cracauer <cracauer@cons.org> To: freebsd-arch@FreeBSD.ORG Subject: C++ compatible include files (Re: egcs chokes on netinet/in.h) Message-ID: <19990105174729.A22338@cons.org> In-Reply-To: <Pine.BSF.4.05.9812310146490.42452-100000@zippy.dyn.ml.org>; from Alex Zepeda on Thu, Dec 31, 1998 at 01:49:11AM -0800 References: <Pine.BSF.4.05.9812310146490.42452-100000@zippy.dyn.ml.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[moved to -arch]
In <Pine.BSF.4.05.9812310146490.42452-100000@zippy.dyn.ml.org>, Alex Zepeda wrote:
> /usr/include/netinet/in.h:291: ANSI C++ forbids data member `ip_opts' with
> same name as enclosing class
> struct ip_opts {
> struct in_addr ip_dst; /* first hop, 0 w/o src rt */
> char ip_opts[40]; /* actually variable in size */
There's also the key_t issue, a struct in console.h and a typedef to
long in types.h (for SysV IPC). Since C++ handles structs
automatically as 'typedef struct structname structname;', this breaks
C++ as well.
I think we need a decision whether we will fix FreeBSD include files
to be compatible with ANSI C++. If we decide to do so, the options
are:
- change the definion
- change the definition for C++ only
- disable the definition for C++
In my opinion, only the first one makes sense and also in my opinion
we should have C++-compatible include files.
In case of a decision in this line, I volunteer to:
- search for all uses of ip_opts and change these to the new name of
the second member in the base FreeBSD system. [If we rename the
second member].
- Do the same for key_t. If we rename the struct for the console code
I'll change everything in the base FreeBSD system, add a temporary
patch to the XFree port and the Linux svga lib and notify
XFree to use the new name in the next release.
- I'll also fix any port that I suspect will use these or that people
point to. This includes monitoring -bugs and -ports for such reports.
- Of course, commits are done after a successful `make world`.
Yes, I use C++ sometimes :-)
Martin
--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin Cracauer <cracauer@cons.org> http://www.cons.org/cracauer/
BSD User Group Hamburg, Germany http://www.bsdhh.org/
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990105174729.A22338>
