libpq++ current sources don't compile with older C++ compilers
Today I did something I usually do about once per release cycle: try to
build the system with HP's vendor cc, rather than gcc which I prefer.
This usually turns up some portability issues, and indeed I found some.
One that I'm not entirely sure about how to fix is that libpq++ no
longer builds at all:
aCC +z -I../../../src/interfaces/libpq -I../../../src/include -I/usr/local/include -c -o pgconnection.o pgconnection.cc
Error 56: "pgconnection.cc", line 20 # Namespaces are not yet implemented.
using namespace std;
^^^^^^^^^^^^^^^^^^^^
Given that we have a HAVE_NAMESPACE_STD configure symbol, I do not
understand why unconditional "using"s have been inserted into the
libpq++ files. Shouldn't these be protected by #ifdef
HAVE_NAMESPACE_STD? Or is there a different fix that's more
appropriate?
regards, tom lane
On Mon, Aug 27, 2001 at 04:16:57PM -0400, Tom Lane wrote:
Today I did something I usually do about once per release cycle: try to
build the system with HP's vendor cc, rather than gcc which I prefer.
This usually turns up some portability issues, and indeed I found some.
One that I'm not entirely sure about how to fix is that libpq++ no
longer builds at all:aCC +z -I../../../src/interfaces/libpq -I../../../src/include -I/usr/local/include -c -o pgconnection.o pgconnection.cc
Error 56: "pgconnection.cc", line 20 # Namespaces are not yet implemented.
using namespace std;
^^^^^^^^^^^^^^^^^^^^Given that we have a HAVE_NAMESPACE_STD configure symbol, I do not
understand why unconditional "using"s have been inserted into the
libpq++ files. Shouldn't these be protected by #ifdef
HAVE_NAMESPACE_STD? Or is there a different fix that's more
appropriate?
What version of aCC are you using? Newer releases support -AA which
provide the std namespace. This, of course, doesn't answer your
question.
--
albert chin (china@thewrittenword.com)
pgsql-hackers@thewrittenword.com writes:
What version of aCC are you using?
$ what /opt/aCC/bin/aCC
/opt/aCC/bin/aCC:
HP aC++ B3910B A.01.00
HP ANSI C++ B3910B A.00.03
/usr/lib/libc: $Revision: 76.3 $
It's whatever shipped with HPUX 10.20, AFAIR. For my purposes, the
fact that it's not the latest and greatest is exactly the point ...
Newer releases support -AA which provide the std namespace. This, of
course, doesn't answer your question.
No, but it does point up the fact that we do not select -AA anyway.
regards, tom lane
Tom, I am sure it is an oversight. Can you fix it?
Today I did something I usually do about once per release cycle: try to
build the system with HP's vendor cc, rather than gcc which I prefer.
This usually turns up some portability issues, and indeed I found some.
One that I'm not entirely sure about how to fix is that libpq++ no
longer builds at all:aCC +z -I../../../src/interfaces/libpq -I../../../src/include -I/usr/local/include -c -o pgconnection.o pgconnection.cc
Error 56: "pgconnection.cc", line 20 # Namespaces are not yet implemented.
using namespace std;
^^^^^^^^^^^^^^^^^^^^Given that we have a HAVE_NAMESPACE_STD configure symbol, I do not
understand why unconditional "using"s have been inserted into the
libpq++ files. Shouldn't these be protected by #ifdef
HAVE_NAMESPACE_STD? Or is there a different fix that's more
appropriate?regards, tom lane
---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026