Re: [HACKERS] libpq++ build problems

2002-07-07 Thread Peter Eisentraut

Bruce Momjian writes:

 jtv wrote:
  On Wed, Jul 03, 2002 at 01:45:56PM -0400, Bruce Momjian wrote:
  
   Actually, I am confused. In src/template/freebsd I see:
  
 CFLAGS='-pipe'
  
 case $host_cpu in
   alpha*)   CFLAGS=$CFLAGS -O;;
   i386*)CFLAGS=$CFLAGS -O2;;
 esac
  
   so why is he seeing the -O2 flag on FreeBSD/alpha?
 
  Probably because CXXFLAGS still has -O2 set.

 Interesting.  I thought -O2 was only set in /template files, but I now
 see it is set in configure too.  The following patch fixes the libpqxx
 compile problem on FreeBSD/alpha.  The old code set -O2 for
 FreeBSD/i386, but that is already set earlier.  The new patch just
 updates the FreeBSD/alpha compile.

Except that it now fails to set CFLAGS correctly.  Please avoid expr
too.  case is fine.

Actually, you can't really set CXXFLAGS in the template file, because at
that point you don't know what kind of C++ compiler is going to be used
yet.  That's why it's handled in configure later.

-- 
Peter Eisentraut   [EMAIL PROTECTED]




---(end of broadcast)---
TIP 6: Have you searched our list archives?

http://archives.postgresql.org





Re: [HACKERS] libpq++ build problems

2002-07-07 Thread Peter Eisentraut

Tom Lane writes:

 As a general rule, anything that affects one *BSD affects them all.
 I am always very suspicious of any patch that changes only one of
 the *BSD templates or makefiles.  I'm not even convinced we should
 have separate makefiles/templates for 'em ...

If they could retroactively agree on a way to build shared libraries, we
might have a shot.

-- 
Peter Eisentraut   [EMAIL PROTECTED]




---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/users-lounge/docs/faq.html





Re: [HACKERS] libpq++ build problems

2002-07-07 Thread Bruce Momjian

Peter Eisentraut wrote:
  Interesting.  I thought -O2 was only set in /template files, but I now
  see it is set in configure too.  The following patch fixes the libpqxx
  compile problem on FreeBSD/alpha.  The old code set -O2 for
  FreeBSD/i386, but that is already set earlier.  The new patch just
  updates the FreeBSD/alpha compile.
 
 Except that it now fails to set CFLAGS correctly.  Please avoid expr
 too.  case is fine.

Changed, I assume for portability.

 Actually, you can't really set CXXFLAGS in the template file, because at
 that point you don't know what kind of C++ compiler is going to be used
 yet.  That's why it's handled in configure later.

Looking at configure.in, it looks pretty safe:

  if test $ac_env_CXXFLAGS != set; then
if test $GXX = yes; then
  CXXFLAGS=-O2
else
  case $template in
osf)CXXFLAGS='-O4 -Olimit 2000' ;;
unixware)   CXXFLAGS='-O' ;;
*)  CXXFLAGS= ;;
  esac
fi
  fi

Because CXXFLAGS is already set for freebsd/alpha, it falls through,
missing the -O2 setting.

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 853-3000
  +  If your life is a hard drive, |  830 Blythe Avenue
  +  Christ can be your backup.|  Drexel Hill, Pennsylvania 19026



---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]





Re: [HACKERS] libpq++ build problems

2002-07-07 Thread Tom Lane

Bruce Momjian [EMAIL PROTECTED] writes:
 Looking at configure.in, it looks pretty safe:

   if test $ac_env_CXXFLAGS != set; then
 if test $GXX = yes; then
   CXXFLAGS=-O2
 else
   case $template in
 osf)CXXFLAGS='-O4 -Olimit 2000' ;;
 unixware)   CXXFLAGS='-O' ;;
 *)  CXXFLAGS= ;;
   esac
 fi
   fi

 Because CXXFLAGS is already set for freebsd/alpha, it falls through,

I don't think so; the ac_env_ flag presumably indicates whether
configure inherited CXXFLAGS from its environment, not whether it
set it internally.

But even if setting CXXFLAGS in the template did override this code,
it would be a mistake, because the point of this code is to allow a
choice between g++-specific and vendor's-compiler-specific CXXFLAGS.

Perhaps we could do something like this:

# set defaults for most platforms
GCC_CXXFLAGS=-O2
VENDOR_CXXFLAGS=

# now include template, which may override either of the above

# now select proper CXXFLAGS
if test $ac_env_CXXFLAGS != set; then
if test $GXX = yes; then
  CXXFLAGS=$GCC_CXXFLAGS
else
  CXXFLAGS=$VENDOR_CXXFLAGS
fi
fi

This would allow us to push the special cases for osf and unixware out
into their template files, which would be a Good Thing.

regards, tom lane



---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])





Re: [HACKERS] libpq++ build problems

2002-07-07 Thread Bruce Momjian


Good idea.  Patch attached.  autoconf run.

---

Tom Lane wrote:
 Bruce Momjian [EMAIL PROTECTED] writes:
  Looking at configure.in, it looks pretty safe:
 
if test $ac_env_CXXFLAGS != set; then
  if test $GXX = yes; then
CXXFLAGS=-O2
  else
case $template in
  osf)CXXFLAGS='-O4 -Olimit 2000' ;;
  unixware)   CXXFLAGS='-O' ;;
  *)  CXXFLAGS= ;;
esac
  fi
fi
 
  Because CXXFLAGS is already set for freebsd/alpha, it falls through,
 
 I don't think so; the ac_env_ flag presumably indicates whether
 configure inherited CXXFLAGS from its environment, not whether it
 set it internally.
 
 But even if setting CXXFLAGS in the template did override this code,
 it would be a mistake, because the point of this code is to allow a
 choice between g++-specific and vendor's-compiler-specific CXXFLAGS.
 
 Perhaps we could do something like this:
 
   # set defaults for most platforms
   GCC_CXXFLAGS=-O2
   VENDOR_CXXFLAGS=
 
   # now include template, which may override either of the above
 
   # now select proper CXXFLAGS
   if test $ac_env_CXXFLAGS != set; then
   if test $GXX = yes; then
 CXXFLAGS=$GCC_CXXFLAGS
   else
 CXXFLAGS=$VENDOR_CXXFLAGS
   fi
   fi
 
 This would allow us to push the special cases for osf and unixware out
 into their template files, which would be a Good Thing.
 
   regards, tom lane
 
 
 
 ---(end of broadcast)---
 TIP 2: you can get off all lists at once with the unregister command
 (send unregister YourEmailAddressHere to [EMAIL PROTECTED])
 
 
 

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 853-3000
  +  If your life is a hard drive, |  830 Blythe Avenue
  +  Christ can be your backup.|  Drexel Hill, Pennsylvania 19026


Index: configure.in
===
RCS file: /cvsroot/pgsql/configure.in,v
retrieving revision 1.186
diff -c -r1.186 configure.in
*** configure.in28 May 2002 16:57:53 -  1.186
--- configure.in7 Jul 2002 20:05:54 -
***
*** 243,248 
--- 243,252 
  # variable.
  PGAC_ARG_REQ(with, CC, [], [CC=$with_CC])
  
+ # Set here so it can be over-ridden in the template file
+ GCC_CXXFLAGS=-O2
+ VENDOR_CXXFLAGS=
+ 
  case $template in
aix) pgac_cc_list=gcc xlc;;
   irix) pgac_cc_list=cc;; # no gcc
***
*** 593,605 
AC_PROG_CXX
if test $ac_env_CXXFLAGS != set; then
  if test $GXX = yes; then
!   CXXFLAGS=-O2
  else
!   case $template in
!   osf)CXXFLAGS='-O4 -Olimit 2000' ;;
! unixware) CXXFLAGS='-O' ;;
!   *)  CXXFLAGS= ;;
!   esac
  fi
fi
if test $enable_debug = yes  test $ac_cv_prog_cxx_g = yes; then
--- 597,605 
AC_PROG_CXX
if test $ac_env_CXXFLAGS != set; then
  if test $GXX = yes; then
!   CXXFLAGS=$GCC_CXXFLAGS
  else
!   CXXFLAGS=$VENDOR_CXXFLAGS
  fi
fi
if test $enable_debug = yes  test $ac_cv_prog_cxx_g = yes; then
Index: src/template/freebsd
===
RCS file: /cvsroot/pgsql/src/template/freebsd,v
retrieving revision 1.12
diff -c -r1.12 freebsd
*** src/template/freebsd7 Jul 2002 14:24:13 -   1.12
--- src/template/freebsd7 Jul 2002 20:05:57 -
***
*** 2,6 
  
  case $host_cpu in
alpha*)   CFLAGS=$CFLAGS -O;;
! CXXFLAGS=$CXXFLAGS -O
  esac
--- 2,6 
  
  case $host_cpu in
alpha*)   CFLAGS=$CFLAGS -O;;
! GCC_CXXFLAGS=-O
  esac
Index: src/template/osf
===
RCS file: /cvsroot/pgsql/src/template/osf,v
retrieving revision 1.3
diff -c -r1.3 osf
*** src/template/osf31 Oct 2000 18:16:20 -  1.3
--- src/template/osf7 Jul 2002 20:05:57 -
***
*** 6,8 
--- 6,10 
CFLAGS='-O4 -Olimit 2000'
CCC=cxx
  fi
+ VENDOR_CXXFLAGS='-O4 -Olimit 2000'
+ 
Index: src/template/unixware
===
RCS file: /cvsroot/pgsql/src/template/unixware,v
retrieving revision 1.9
diff -c -r1.9 unixware
*** src/template/unixware   22 Oct 2000 22:15:09 -  1.9
--- src/template/unixware   7 Jul 2002 20:05:57 -
***
*** 3,5 
--- 3,7 
  else
CFLAGS='-O -K inline'
  fi
+ VENDOR_CXXFLAGS=-O
+ 



---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster



Re: [HACKERS] libpq++ build problems

2002-07-04 Thread Bruce Momjian

Tom Lane wrote:
 Bruce Momjian [EMAIL PROTECTED] writes:
  ... The following patch fixes the libpqxx
  compile problem on FreeBSD/alpha.  The old code set -O2 for
  FreeBSD/i386, but that is already set earlier.  The new patch just
  updates the FreeBSD/alpha compile.
 
 As a general rule, anything that affects one *BSD affects them all.
 I am always very suspicious of any patch that changes only one of
 the *BSD templates or makefiles.  I'm not even convinced we should
 have separate makefiles/templates for 'em ...

Well, in this case FreeBSD/alpha -O2 thows that warning.  Hard to miss
that one.  It _is_ a unique case for that platform.

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 853-3000
  +  If your life is a hard drive, |  830 Blythe Avenue
  +  Christ can be your backup.|  Drexel Hill, Pennsylvania 19026



---(end of broadcast)---
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to [EMAIL PROTECTED] so that your
message can get through to the mailing list cleanly





[HACKERS] libpq++ build problems

2002-07-03 Thread Christopher Kings-Lynne

OK, this is what I'm seeing on FreeBSD/Alpha for libpq++.  I haven't figured
out how to build libpqxx yet.:

gmake[3]: Entering directory
`/home/chriskl/pgsql-head/src/interfaces/libpq++'
g++ -O2 -g -Wall -fpic -DPIC -I../../../src/interfaces/libpq -I../../../src/
include   -c -o pgconnection.o pgconnection.cc -MMD
cc1plus: warning:
***
*** The -O2 flag TRIGGERS KNOWN OPTIMIZER BUGS ON THIS PLATFORM
***

g++ -O2 -g -Wall -fpic -DPIC -I../../../src/interfaces/libpq -I../../../src/
include   -c -o pgdatabase.o pgdatabase.cc -MMD
cc1plus: warning:
***
*** The -O2 flag TRIGGERS KNOWN OPTIMIZER BUGS ON THIS PLATFORM
***

g++ -O2 -g -Wall -fpic -DPIC -I../../../src/interfaces/libpq -I../../../src/
include   -c -o pgtransdb.o pgtransdb.cc -MMD
cc1plus: warning:
***
*** The -O2 flag TRIGGERS KNOWN OPTIMIZER BUGS ON THIS PLATFORM
***

g++ -O2 -g -Wall -fpic -DPIC -I../../../src/interfaces/libpq -I../../../src/
include   -c -o pgcursordb.o pgcursordb.cc -MMD
cc1plus: warning:
***
*** The -O2 flag TRIGGERS KNOWN OPTIMIZER BUGS ON THIS PLATFORM
***

g++ -O2 -g -Wall -fpic -DPIC -I../../../src/interfaces/libpq -I../../../src/
include   -c -o pglobject.o pglobject.cc -MMD
cc1plus: warning:
***
*** The -O2 flag TRIGGERS KNOWN OPTIMIZER BUGS ON THIS PLATFORM
***

ar cr libpq++.a `lorder pgconnection.o pgdatabase.o pgtransdb.o pgcursordb.o
pglobject.o | tsort`
ranlib libpq++.a
g++ -O2 -g -Wall -fpic -DPIC -shared -Wl,-x,-soname,libpq++.so.4
pgconnection.o pgdatabase.o pgtransdb.o pgcursordb.o
lobject.o   -L../../../src/interfaces/libpq -lpq -R/home/chriskl/local/lib -
o libpq++.so.4
rm -f libpq++.so
ln -s libpq++.so.4 libpq++.so
gmake[3]: Leaving directory
`/home/chriskl/pgsql-head/src/interfaces/libpq++'





---(end of broadcast)---
TIP 6: Have you searched our list archives?

http://archives.postgresql.org





Re: [HACKERS] libpq++ build problems

2002-07-03 Thread jtv

On Wed, Jul 03, 2002 at 02:25:46PM +0800, Christopher Kings-Lynne wrote:
 OK, this is what I'm seeing on FreeBSD/Alpha for libpq++.  

[cut]
[paste]

 cc1plus: warning:
 ***
 *** The -O2 flag TRIGGERS KNOWN OPTIMIZER BUGS ON THIS PLATFORM
 ***

Doesn't say it doesn't work though...  Have you tried running the
resulting code?


 I haven't figured out how to build libpqxx yet.:

Basically, ./configure; make; make check; make install.  You may have to
use configure options --with-postgres=/your/postgres/dir or its cousins.
Plus, you'll also run into the same gcc warning so you may have to set
the environment variable CXXFLAGS to something like -O before running 
configure.  The same will probably help with libpq++ as well BTW.


Jeroen





---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])





Re: [HACKERS] libpq++ build problems

2002-07-03 Thread Bruce Momjian


Actually, I am confused. In src/template/freebsd I see:

CFLAGS='-pipe'

case $host_cpu in
  alpha*)   CFLAGS=$CFLAGS -O;;
  i386*)CFLAGS=$CFLAGS -O2;;
esac

so why is he seeing the -O2 flag on FreeBSD/alpha?

---

jtv wrote:
 On Wed, Jul 03, 2002 at 02:25:46PM +0800, Christopher Kings-Lynne wrote:
  OK, this is what I'm seeing on FreeBSD/Alpha for libpq++.  
 
 [cut]
 [paste]
 
  cc1plus: warning:
  ***
  *** The -O2 flag TRIGGERS KNOWN OPTIMIZER BUGS ON THIS PLATFORM
  ***
 
 Doesn't say it doesn't work though...  Have you tried running the
 resulting code?
 
 
  I haven't figured out how to build libpqxx yet.:
 
 Basically, ./configure; make; make check; make install.  You may have to
 use configure options --with-postgres=/your/postgres/dir or its cousins.
 Plus, you'll also run into the same gcc warning so you may have to set
 the environment variable CXXFLAGS to something like -O before running 
 configure.  The same will probably help with libpq++ as well BTW.
 
 
 Jeroen
 
 
 
 
 
 ---(end of broadcast)---
 TIP 2: you can get off all lists at once with the unregister command
 (send unregister YourEmailAddressHere to [EMAIL PROTECTED])
 
 
 

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 853-3000
  +  If your life is a hard drive, |  830 Blythe Avenue
  +  Christ can be your backup.|  Drexel Hill, Pennsylvania 19026



---(end of broadcast)---
TIP 6: Have you searched our list archives?

http://archives.postgresql.org





Re: [HACKERS] libpq++ build problems

2002-07-03 Thread jtv

On Wed, Jul 03, 2002 at 01:45:56PM -0400, Bruce Momjian wrote:
 
 Actually, I am confused. In src/template/freebsd I see:
   
   CFLAGS='-pipe'
   
   case $host_cpu in
 alpha*)   CFLAGS=$CFLAGS -O;;
 i386*)CFLAGS=$CFLAGS -O2;;
   esac
 
 so why is he seeing the -O2 flag on FreeBSD/alpha?

Probably because CXXFLAGS still has -O2 set.


Jeroen




---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster





Re: [HACKERS] libpq++ build problems

2002-07-03 Thread Bruce Momjian

jtv wrote:
 On Wed, Jul 03, 2002 at 01:45:56PM -0400, Bruce Momjian wrote:
  
  Actually, I am confused. In src/template/freebsd I see:
  
  CFLAGS='-pipe'
  
  case $host_cpu in
alpha*)   CFLAGS=$CFLAGS -O;;
i386*)CFLAGS=$CFLAGS -O2;;
  esac
  
  so why is he seeing the -O2 flag on FreeBSD/alpha?
 
 Probably because CXXFLAGS still has -O2 set.

Interesting.  I thought -O2 was only set in /template files, but I now
see it is set in configure too.  The following patch fixes the libpqxx
compile problem on FreeBSD/alpha.  The old code set -O2 for
FreeBSD/i386, but that is already set earlier.  The new patch just
updates the FreeBSD/alpha compile.

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 853-3000
  +  If your life is a hard drive, |  830 Blythe Avenue
  +  Christ can be your backup.|  Drexel Hill, Pennsylvania 19026


Index: src/template/freebsd
===
RCS file: /cvsroot/pgsql/src/template/freebsd,v
retrieving revision 1.10
diff -c -r1.10 freebsd
*** src/template/freebsd16 Nov 2000 05:51:07 -  1.10
--- src/template/freebsd3 Jul 2002 19:45:14 -
***
*** 1,7 
  CFLAGS='-pipe'
  
! case $host_cpu in
!   alpha*)   CFLAGS=$CFLAGS -O;;
!   i386*)CFLAGS=$CFLAGS -O2;;
! esac
! 
--- 1,6 
  CFLAGS='-pipe'
  
! if [ `expr $host_cpu : alpha` -ge 5 ]
! then  CFLAGS=$CFLAGS -O
!   CXXFLAGS=$CFLAGS -O
! fi



---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])



Re: [HACKERS] libpq++ build problems

2002-07-03 Thread Tom Lane

Bruce Momjian [EMAIL PROTECTED] writes:
 ... The following patch fixes the libpqxx
 compile problem on FreeBSD/alpha.  The old code set -O2 for
 FreeBSD/i386, but that is already set earlier.  The new patch just
 updates the FreeBSD/alpha compile.

As a general rule, anything that affects one *BSD affects them all.
I am always very suspicious of any patch that changes only one of
the *BSD templates or makefiles.  I'm not even convinced we should
have separate makefiles/templates for 'em ...

regards, tom lane



---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]