This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libstdc++/1773] __cplusplus defined to 1, should be 199711L


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=1773



------- Additional Comments From gdr at integrable-solutions dot net  2003-08-04 08:01 -------
Subject: Re:  __cplusplus defined to 1, should be 199711L

"pme at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org> writes:

| > You missed the point.  I'm not sure we're going to reach anywhere with
| > that start.
| 
| No, he hasn't missed the point.

Sure he missed the point.  To see why you need to consider the whole
previous comments.  

He proposed to use fixinclude hacks to remove stuff from "headers that
are C++ correct" (borrowing words from you).  I told him that in
reality, we don't want to remove those fine things.  We just want to
change our logic about those headers.  He jumped to the conclusion:

  So the conclusion is that changing __cplusplus to 199711L, which should
  benefit everyone, is being postponed indefinitly *solely* because you want
  better treatment of Solaris 8 headers?

which just missed the point I was making.  I was not telling him that we
should indefinitely postpone better treatements:  I was point out the
the approach he proposed to the solaris 8 is not correct.  

I would help if people could refrain from jumping to quick
conclusions, especially confused ones phrased as above.

[...]

| Then, somewhere else in the path of things, g++ sees our own version of
| std::size_t, and pukes on the 'using' line with a "conflicting declaration"
| error.  It's been a while since I tried it, but the exact analysis is in
| the archives somewhere.

That is why I said we should change our logic about those headers.

| The /ideal/ solution -- and the solution which Gaby and I and others have
| been hoping for -- is either to notice the Sol8 correct declarations and not
| do anything ourselves, or to look at the conflict, deduce that proper_type
| is in fact the proper type, and conclude that there isn't a conflict.  Using
| fixincludes to hack up correct headers because g++ isn't quite smart enough
| is a mistake in this case.

Up to this point we're on the same page.  The above is what I
conveyed in "I don't think this is a case where would like to use
fixincludes hacks".

| However, the bug has been there for over two years.  Sun has moved on and
| made things different in Sol9 apparently (haven't seen the 9 headers myself).
| Nobody has volunteered a fix for g++.  We may simply have to throw in the
| towel on this issue and run Sol8 through fixincludes.

There is an alternate option: Define __cplucplus on target (os or
cpu) basis.  For example have V3/config/os/generic/os_defines.h define
__cplusplus to the correct value (which should be something higher
than 199711l, I don't recall the exact value) and have solaris8
override it.

| > | Remember that Solaris 8 is the *only* platform causing trouble.
| >
| > Don't be afraid that I'm forgetting bits.
| 
| "(Remember|Recall) that <point of observation>" is just an English-language
| rhetorical technique used to bring a statement full circle.  No one is
| questioning anyone's memory, especially when the entire audit trail is
| present on the screen.

"not to forget" is an  English-language rhetorical technique use to
say that one has statements/facts in full circle.  I'm not saying he is
questioning my memory.

-- Gaby


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]