Re: [PATCHES] [BUGS] solaris non gcc compiler debug options

2004-12-02 Thread Bruce Momjian

OK, I see now.  I backed out my previous patch and did one so Solaris
has no optimization for debug.  Patch attached.

---

Kris Jurka wrote:
 
 
 On Sat, 27 Nov 2004, Bruce Momjian wrote:
 
  Kris Jurka wrote:
   
   Compiling on solaris with a non gcc compiler does not correctly enable 
   debugging when --enable-debug is specified.  src/template/solaris is 
   specifying CFLAGS=-O -v and -O overrides the -g that --enable-debug 
   adds.
  
  Good point.  Our template files should be _adding_ to CFLAGS and
  CPPFLAGS, not overriding them.  Later optimization flags on the
  command line override earlier ones, so this patch should fix the
  problem, and it exists in a few platforms.  Applied.
  
 
 I don't believe you've fixed an actual problem.  Manually set CFLAGS are 
 already accounted for in configure.in (line 234) here:
 
 # CFLAGS are selected so:
 # If the user specifies something in the environment, that is used.
 # else:  If the template file set something, that is used.
 # else:  If the compiler is GCC, then we use -O2.
 # else:  If the compiler is something else, then we use -0.
 
 if test $ac_env_CFLAGS_set = set; then
   CFLAGS=$ac_env_CFLAGS_value
 elif test ${CFLAGS+set} = set; then
   : # (keep what template set)
 elif test $GCC = yes; then
   CFLAGS=-O2
 else
   # if the user selected debug mode, don't use -O
   if test $enable_debug != yes; then
 CFLAGS=-O
   fi
 fi
 
 It seems the test at the end of this (enable_debug != yes) needs to be
 added to the solaris template instead of unconditionally adding -O to
 CFLAGS. I was trying to debug a problem and --enable-debug wasn't really
 helping until I took -O out of this src/template/solaris line.  The man
 page isn't particularly clear on what best-effort is, but it wasn't good
 enough for me.
 
   If you issue -g, and the optimization level is -x03 or
   lower, the compiler provides best-effort symbolic
   information with almost full optimization. Tail-call
   optimization and back-end inlining are disabled.
 
 Kris Jurka
 
 
 ---(end of broadcast)---
 TIP 8: explain analyze is your friend
 

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 359-1001
  +  If your life is a hard drive, |  13 Roberts Road
  +  Christ can be your backup.|  Newtown Square, Pennsylvania 19073
Index: src/template/aix
===
RCS file: /cvsroot/pgsql/src/template/aix,v
retrieving revision 1.16
diff -c -c -r1.16 aix
*** src/template/aix27 Nov 2004 05:03:26 -  1.16
--- src/template/aix2 Dec 2004 18:07:45 -
***
*** 1,10 
  if test $GCC != yes ; then
case $host_os in
  aix3.2.5 | aix4.1*)
!   CFLAGS=$CFLAGS -O -qmaxmem=16384 -qsrcmsg
;;
  *)
!   CFLAGS=$CFLAGS -O2 -qmaxmem=16384 -qsrcmsg -qlonglong
;;
esac
  fi
--- 1,10 
  if test $GCC != yes ; then
case $host_os in
  aix3.2.5 | aix4.1*)
!   CFLAGS=-O -qmaxmem=16384 -qsrcmsg
;;
  *)
!   CFLAGS=-O2 -qmaxmem=16384 -qsrcmsg -qlonglong
;;
esac
  fi
Index: src/template/freebsd
===
RCS file: /cvsroot/pgsql/src/template/freebsd,v
retrieving revision 1.33
diff -c -c -r1.33 freebsd
*** src/template/freebsd27 Nov 2004 05:03:26 -  1.33
--- src/template/freebsd2 Dec 2004 18:07:45 -
***
*** 1,3 
  case $host_cpu in
!   alpha*)   CFLAGS=$CFLAGS -O;;  # alpha has problems with -O2
  esac
--- 1,3 
  case $host_cpu in
!   alpha*)   CFLAGS=-O;;  # alpha has problems with -O2
  esac
Index: src/template/hpux
===
RCS file: /cvsroot/pgsql/src/template/hpux,v
retrieving revision 1.13
diff -c -c -r1.13 hpux
*** src/template/hpux   27 Nov 2004 05:03:26 -  1.13
--- src/template/hpux   2 Dec 2004 18:07:45 -
***
*** 1,8 
! CPPFLAGS=$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED
  
  if test $GCC != yes ; then
CC=$CC -Ae
!   CFLAGS=$CFLAGS +O2
  fi
  
  # Pick right test-and-set (TAS) code.  We need out-of-line assembler
--- 1,8 
! CPPFLAGS=-D_XOPEN_SOURCE_EXTENDED
  
  if test $GCC != yes ; then
CC=$CC -Ae
!   CFLAGS=+O2
  fi
  
  # Pick right test-and-set (TAS) code.  We need out-of-line assembler
Index: src/template/linux
===
RCS file: /cvsroot/pgsql/src/template/linux,v
retrieving revision 1.26
diff -c -c -r1.26 linux
*** src/template/linux  27 Nov 2004 05:03:26 -  1.26
--- src/template/linux  2 Dec 2004 18:07:45 -
***
*** 1,2 
  # Force _GNU_SOURCE on; plperl is broken with Perl 5.8.0 otherwise
! CPPFLAGS=$CPPFLAGS -D_GNU_SOURCE
--- 1,2 
  

Re: [PATCHES] [BUGS] solaris non gcc compiler debug options

2004-11-28 Thread Kris Jurka


On Sat, 27 Nov 2004, Bruce Momjian wrote:

 Kris Jurka wrote:
  
  Compiling on solaris with a non gcc compiler does not correctly enable 
  debugging when --enable-debug is specified.  src/template/solaris is 
  specifying CFLAGS=-O -v and -O overrides the -g that --enable-debug 
  adds.
 
 Good point.  Our template files should be _adding_ to CFLAGS and
 CPPFLAGS, not overriding them.  Later optimization flags on the
 command line override earlier ones, so this patch should fix the
 problem, and it exists in a few platforms.  Applied.
 

I don't believe you've fixed an actual problem.  Manually set CFLAGS are 
already accounted for in configure.in (line 234) here:

# CFLAGS are selected so:
# If the user specifies something in the environment, that is used.
# else:  If the template file set something, that is used.
# else:  If the compiler is GCC, then we use -O2.
# else:  If the compiler is something else, then we use -0.

if test $ac_env_CFLAGS_set = set; then
  CFLAGS=$ac_env_CFLAGS_value
elif test ${CFLAGS+set} = set; then
  : # (keep what template set)
elif test $GCC = yes; then
  CFLAGS=-O2
else
  # if the user selected debug mode, don't use -O
  if test $enable_debug != yes; then
CFLAGS=-O
  fi
fi

It seems the test at the end of this (enable_debug != yes) needs to be
added to the solaris template instead of unconditionally adding -O to
CFLAGS. I was trying to debug a problem and --enable-debug wasn't really
helping until I took -O out of this src/template/solaris line.  The man
page isn't particularly clear on what best-effort is, but it wasn't good
enough for me.

  If you issue -g, and the optimization level is -x03 or
  lower, the compiler provides best-effort symbolic
  information with almost full optimization. Tail-call
  optimization and back-end inlining are disabled.

Kris Jurka


---(end of broadcast)---
TIP 8: explain analyze is your friend