report for Win32 port
Hi,
I have tested current snapshot (from CVS) to compile and run on Windows NT.
It compiles mostly OK. The only problem is with linking the libpq++, but it
can be a general problem:
pgcursordb.o: In function `_8PgCursorRC12PgConnectionPCc':
/usr/src/pgsql.test/src/interfaces/libpq++/pgcursordb.cc:37: undefined
reference
to `PgTransaction::PgTransaction(PgConnection const &)'
and it also need this small patch:
------------- cut here -------------
--- /usr/src/pgsql/src/interfaces/libpq++/Makefile.in Mon May 24 12:04:49
1999
+++ src/interfaces/libpq++/Makefile.in Wed May 26 15:29:05 1999
@@ -44,7 +44,11 @@
OBJS = pgconnection.o pgdatabase.o pgtransdb.o pgcursordb.o pglobject.o
+ifeq ($(PORTNAME), win)
+SHLIB_LINK+= --driver-name g++ -L../libpq -lpq
+else
SHLIB_LINK= -L../libpq -lpq
+endif
# Shared library stuff, also default 'all' target
include $(SRCDIR)/Makefile.shlib
------------- cut here -------------
Here is current regress.out:
int2 .. failed
int4 .. failed
float8 .. failed
geometry .. failed
-> these are unimportant (libc messages, precision)
datetime .. failed
abstime .. failed
tinterval .. failed
horology .. failed
-> it seems so that there are only differences in strings for timezones
there
random .. failed
*** expected/random.out Wed May 26 13:05:47 1999
--- results/random.out Wed May 26 15:04:57 1999
***************
*** 19,23 ****
WHERE random NOT BETWEEN 80 AND 120;
random
------
! (0 rows)
--- 19,24 ----
WHERE random NOT BETWEEN 80 AND 120;
random
------
! 123
! (1 row)
rules .. failed
-> different order of some lines (unimportant)
The remaining test are OK.
Dan
PS: Change my name in the doc/src/sgml/ports.sgml from "Horak Daniel" to
"Daniel Horak", please.
----------------------------------------------
Daniel Horak
network and system administrator
e-mail: horak@mmp.plzen-city.cz
privat e-mail: dan.horak@email.cz ICQ:36448176
----------------------------------------------
On Wed, 26 May 1999, Horak Daniel wrote:
Hi,
I have tested current snapshot (from CVS) to compile and run on Windows NT.
It compiles mostly OK. The only problem is with linking the libpq++, but it
can be a general problem:pgcursordb.o: In function `_8PgCursorRC12PgConnectionPCc':
/usr/src/pgsql.test/src/interfaces/libpq++/pgcursordb.cc:37: undefined
reference
to `PgTransaction::PgTransaction(PgConnection const &)'
Interesting. I wonder if any other platforms or compilers are also
showing this... I'll submit the patch later today.
Vince.
--
==========================================================================
Vince Vielhaber -- KA8CSH email: vev@michvhf.com flame-mail: /dev/null
# include <std/disclaimers.h> TEAM-OS2
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com
==========================================================================
Applied(the libpq++ part).
[Charset iso-8859-2 unsupported, filtering to ASCII...]
Hi,
I have tested current snapshot (from CVS) to compile and run on Windows NT.
It compiles mostly OK. The only problem is with linking the libpq++, but it
can be a general problem:pgcursordb.o: In function `_8PgCursorRC12PgConnectionPCc':
/usr/src/pgsql.test/src/interfaces/libpq++/pgcursordb.cc:37: undefined
reference
to `PgTransaction::PgTransaction(PgConnection const &)'and it also need this small patch: ------------- cut here ------------- --- /usr/src/pgsql/src/interfaces/libpq++/Makefile.in Mon May 24 12:04:49 1999 +++ src/interfaces/libpq++/Makefile.in Wed May 26 15:29:05 1999 @@ -44,7 +44,11 @@OBJS = pgconnection.o pgdatabase.o pgtransdb.o pgcursordb.o pglobject.o
+ifeq ($(PORTNAME), win) +SHLIB_LINK+= --driver-name g++ -L../libpq -lpq +else SHLIB_LINK= -L../libpq -lpq +endif# Shared library stuff, also default 'all' target
include $(SRCDIR)/Makefile.shlib
------------- cut here -------------Here is current regress.out:
int2 .. failed
int4 .. failed
float8 .. failed
geometry .. failed
-> these are unimportant (libc messages, precision)datetime .. failed
abstime .. failed
tinterval .. failed
horology .. failed
-> it seems so that there are only differences in strings for timezones
thererandom .. failed *** expected/random.out Wed May 26 13:05:47 1999 --- results/random.out Wed May 26 15:04:57 1999 *************** *** 19,23 **** WHERE random NOT BETWEEN 80 AND 120; random ------ ! (0 rows)--- 19,24 ---- WHERE random NOT BETWEEN 80 AND 120; random ------ ! 123 ! (1 row)rules .. failed
-> different order of some lines (unimportant)The remaining test are OK.
Dan
PS: Change my name in the doc/src/sgml/ports.sgml from "Horak Daniel" to
"Daniel Horak", please.----------------------------------------------
Daniel Horak
network and system administrator
e-mail: horak@mmp.plzen-city.cz
privat e-mail: dan.horak@email.cz ICQ:36448176
----------------------------------------------
--
Bruce Momjian | http://www.op.net/~candle
maillist@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
On Wed, 26 May 1999, Horak Daniel wrote:
Hi,
I have tested current snapshot (from CVS) to compile and run on Windows NT.
It compiles mostly OK. The only problem is with linking the libpq++, but it
can be a general problem:pgcursordb.o: In function `_8PgCursorRC12PgConnectionPCc':
/usr/src/pgsql.test/src/interfaces/libpq++/pgcursordb.cc:37: undefined
reference
to `PgTransaction::PgTransaction(PgConnection const &)'Interesting. I wonder if any other platforms or compilers are also
showing this... I'll submit the patch later today.
g++ -Wno-error -Wno-unused -Wl,-Bdynamic -I/usr/local/pgsql/include -o testlibpq0 testlibpq0.cc -L/usr/local/pgsql/lib -lpq++
/tmp/cca280301.o: In function `main':
/tmp/cca280301.o(.text+0x14f): undefined reference to `getline__H2ZcZt18string_char_traits1Zc_R7istreamRt12basic_string2ZX01ZX11X01_R7istream'
/tmp/cca280301.o(.text+0x162): undefined reference to `__ne__H2ZcZt18string_char_traits1Zc_RCt12basic_string2ZX01ZX11PCX01_b'
/usr/local/pgsql/lib/libpq++.so: undefined reference to `crypt'
/usr/local/pgsql/lib/libpq++.so: undefined reference to `PgTransaction::PgTransaction(PgConnection const &)'
make: *** [testlibpq0] Error 1
[pgsql@orion] ~/devel/src/interfaces/libpq++/examples >
Linux 2.1.88, glibc-2, gcc 2.8.1
Whatever these errors mean and whatever they might be good
for.
Up to now I thought it's due to a self made upgrade of shared
libs. That one was a little hairy and didn't worked as I
wanted it. BTW: since glibc-2 crypt() is in it's own library.
Another interesting detail is that I have a Makefile.custom
telling "COPT=-g", but I don't see -g in the compiler
switches in the examples section.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#======================================== jwieck@debis.com (Jan Wieck) #
On 26-May-99 Jan Wieck wrote:
On Wed, 26 May 1999, Horak Daniel wrote:
Hi,
I have tested current snapshot (from CVS) to compile and run on Windows NT.
It compiles mostly OK. The only problem is with linking the libpq++, but it
can be a general problem:pgcursordb.o: In function `_8PgCursorRC12PgConnectionPCc':
/usr/src/pgsql.test/src/interfaces/libpq++/pgcursordb.cc:37: undefined
reference
to `PgTransaction::PgTransaction(PgConnection const &)'Interesting. I wonder if any other platforms or compilers are also
showing this... I'll submit the patch later today.g++ -Wno-error -Wno-unused -Wl,-Bdynamic -I/usr/local/pgsql/include -o
testlibpq0 testlibpq0.cc -L/usr/local/pgsql/lib -lpq++
/tmp/cca280301.o: In function `main':
/tmp/cca280301.o(.text+0x14f): undefined reference to
`getline__H2ZcZt18string_char_traits1Zc_R7istreamRt12basic_string2ZX01ZX11X01_R7is
tream'
/tmp/cca280301.o(.text+0x162): undefined reference to
`__ne__H2ZcZt18string_char_traits1Zc_RCt12basic_string2ZX01ZX11PCX01_b'
/usr/local/pgsql/lib/libpq++.so: undefined reference to `crypt'
/usr/local/pgsql/lib/libpq++.so: undefined reference to
`PgTransaction::PgTransaction(PgConnection const &)'
make: *** [testlibpq0] Error 1
[pgsql@orion] ~/devel/src/interfaces/libpq++/examples >Linux 2.1.88, glibc-2, gcc 2.8.1
Whatever these errors mean and whatever they might be good
for.Up to now I thought it's due to a self made upgrade of shared
libs. That one was a little hairy and didn't worked as I
wanted it. BTW: since glibc-2 crypt() is in it's own library.Another interesting detail is that I have a Makefile.custom
telling "COPT=-g", but I don't see -g in the compiler
switches in the examples section.
I've just discovered that libpq++'s makefile uses whatever is defined as
CXX for the compiler. It's defined as c++, which is ver 2.7.2.1 here.
When I force it to use g++28 (ver 2.8.1), it misses /usr/include/g++.
Adding that to the list of CXXFLAGS fixes that. Now then.. Will it
break something on another platform if I were to leave that in the
list? Anyone know?
Also with g++ 2.7.2.1 and 2.8.1 I can't duplicate the problem that Dan
mentions above. Dan, what compiler/compiler version are you using???
Vince.
--
==========================================================================
Vince Vielhaber -- KA8CSH email: vev@michvhf.com flame-mail: /dev/null
# include <std/disclaimers.h> TEAM-OS2
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com
==========================================================================
Vince Vielhaber <vev@michvhf.com> writes:
I've just discovered that libpq++'s makefile uses whatever is defined as
CXX for the compiler.
As it should ...
When I force it to use g++28 (ver 2.8.1), it misses /usr/include/g++.
Adding that to the list of CXXFLAGS fixes that. Now then.. Will it
break something on another platform if I were to leave that in the
list?
Absolutely. For example: if someone has both g++ and a vendor C++
compiler installed, and tries to compile with the vendor C++, that
would fail because you'd be forcing the vendor C++ to try to eat
g++-specific include files.
The right place to fix any problem along this line is in configure,
*not* by hardwiring platform-dependent assumptions into libpq++'s
makefile.
If it's actually necessary to do what you suggest, then the way to
do it would be for configure to add -I/usr/include/g++ to CXXFLAGS
after checking that CXX is g++. However, I misdoubt that you have
diagnosed the problem correctly, because the versions of gcc/g++
that I've used automatically include their private include areas into
the -I list. This smells more like an incorrect installation of
g++ than a problem that Postgres ought to be solving.
regards, tom lane
Import Notes
Reply to msg id not found: YourmessageofWed26May1999195529-0400XFMail.990526195529.vev@michvhf.com | Resolved by subject fallback
On 27-May-99 Tom Lane wrote:
Vince Vielhaber <vev@michvhf.com> writes:
I've just discovered that libpq++'s makefile uses whatever is defined as
CXX for the compiler.As it should ...
When I force it to use g++28 (ver 2.8.1), it misses /usr/include/g++.
Adding that to the list of CXXFLAGS fixes that. Now then.. Will it
break something on another platform if I were to leave that in the
list?Absolutely. For example: if someone has both g++ and a vendor C++
compiler installed, and tries to compile with the vendor C++, that
would fail because you'd be forcing the vendor C++ to try to eat
g++-specific include files.The right place to fix any problem along this line is in configure,
*not* by hardwiring platform-dependent assumptions into libpq++'s
makefile.If it's actually necessary to do what you suggest, then the way to
do it would be for configure to add -I/usr/include/g++ to CXXFLAGS
after checking that CXX is g++. However, I misdoubt that you have
diagnosed the problem correctly, because the versions of gcc/g++
that I've used automatically include their private include areas into
the -I list. This smells more like an incorrect installation of
g++ than a problem that Postgres ought to be solving.regards, tom lane
More than likely this is the case. FreeBSD comes with a version of gcc
and g++ installed. In this case it's 2.7.2.1. In ports/packages it has
gcc-2.8.1, but being pressed for time I installed the package (20 mins
before trying to build with it). I was a bit surprised to see that it
installed in /usr/local/bin and didn't even put a link in /usr/local/include
or /usr/local/lib, so I probably need to look into the installation more.
The makefile *is* doing a test for g++ tho (it was already there, I didn't
do it :)
Fortunately xemacs saves a backup of the file you're working on with a ~
tacked onto the end. That saved me some work (I have a tape backup but
didn't really want to have to restore from it). I'm referring to libpq++.sgml
that I'm about to send to TommyG before I wipe it out again.
Vince.
--
==========================================================================
Vince Vielhaber -- KA8CSH email: vev@michvhf.com flame-mail: /dev/null
# include <std/disclaimers.h> TEAM-OS2
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com
==========================================================================
pgcursordb.o: In function `_8PgCursorRC12PgConnectionPCc':
/usr/src/pgsql.test/src/interfaces/libpq++/pgcursordb.cc:37: undefined
reference
to `PgTransaction::PgTransaction(PgConnection const &)'Also with g++ 2.7.2.1 and 2.8.1 I can't duplicate the problem that Dan
mentions above. Dan, what compiler/compiler version are you using???
It is egcs-2.91.57 (1.1?) and a bit dirty cygwin installation (used for more
than one year ;-)). I will try it on a clean installation of cygwin with
egcs 1.1.2 during the weekend.
Dan
Import Notes
Resolved by subject fallback
I have tested current snapshot (from CVS) to compile and
run on Windows NT.
It compiles mostly OK. The only problem is with linking the
libpq++, but it
can be a general problem:
pgcursordb.o: In function `_8PgCursorRC12PgConnectionPCc':
/usr/src/pgsql.test/src/interfaces/libpq++/pgcursordb.cc:37: undefined
reference
to `PgTransaction::PgTransaction(PgConnection const &)'Interesting. I wonder if any other platforms or compilers are also
showing this... I'll submit the patch later today.
Because it is still here, I have looked at this and I think this is the
problem:
in file pgtransdb.h there is declared constructor PgTransaction(const
PgConnection&)', but there is no implementation in pgtransdb.cc and possibly
in higher layers of the "call stack" (pgDatabase,....)
The solution can be to remove the constructor pgCursor(const PgConnection&,
const char* cursor) from pgcursordb.h (and .cc).
Dan
Import Notes
Resolved by subject fallback
Hi,
please add this lines to template/.similar:
i386-pc-cygwin=cygwin32
i486-pc-cygwin=cygwin32
i586-pc-cygwin=cygwin32
i686-pc-cygwin=cygwin32
They enable the template autodetection for the Cygwin port.
Dan
Import Notes
Resolved by subject fallback
Done.
[Charset iso-8859-1 unsupported, filtering to ASCII...]
Hi,
please add this lines to template/.similar:
i386-pc-cygwin=cygwin32
i486-pc-cygwin=cygwin32
i586-pc-cygwin=cygwin32
i686-pc-cygwin=cygwin32They enable the template autodetection for the Cygwin port.
Dan
--
Bruce Momjian | http://www.op.net/~candle
maillist@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