From: | Jan Wieck <JanWieck(at)Yahoo(dot)com> |
---|---|
To: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
Cc: | Peter Eisentraut <peter_e(at)gmx(dot)net>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Greg Stark <gsstark(at)mit(dot)edu>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Still a few flaws in configure's default CFLAGS selection |
Date: | 2003-10-27 21:41:29 |
Message-ID: | 3F9D9109.4090904@Yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Bruce Momjian wrote:
> pgman wrote:
>> Jan Wieck wrote:
>> > >> >> > What Peter was advocating in that thread was that we enable -g by
>> > >> >> > default *when building with gcc*. I have no problem with that, since
>> > >> >> > there is (allegedly) no performance penalty for -g with gcc. However,
>> > >> >> > the actual present behavior of our configure script is to default to -g
>> > >> >> > for every compiler, and I think that that is a big mistake. On most
>> > >> >> > non-gcc compilers, -g disables optimizations, which is way too high a
>> > >> >> > price to pay for production use.
>> > >> >>
>> > >> >> You do realize that as of now, -g is the default for gcc? Was that the
>> > >> >> intent?
>> > >> >
>> > >> > I was going to ask that myself. It seems strange to include -g by default ---
>> > >> > we have --enable-debug, and that should control -g on all platforms.
>> > >>
>> > >> Could it be that there ought to be a difference between the defaults of
>> > >> a devel CVS tree, a BETA tarball and a final "production" release?
>> > >
>> > > I am afraid that adds too much confusion to the debug situation. We
>> > > have a flag to do -g; let people use it if they want it.
>> > >
>> >
>> > Well, -g eats up some disk space, but for a gcc it doesn't need CPU
>> > cycles or anything else. I doubt many people who pay the horrible
>> > storage capacity overhead for PostgreSQL are that concerned about some
>> > extra symbols stored with their binaries, but let's not argue about that
>> > one.
>>
>> Well, people are stripping the executable, so some of them must care.
>> In fact, if we enable -g by default for gcc, how do compile with default
>> symbols? We would need another configure option. Strip is not the same
>> as default symbols.
>
> Let me also add that on my old dual P3 550 256MB RAM -g significantly
> slowed down the build because linking took a long time, probably because
> it had to read in all those debug symbols for the link --- I remember
> the backend link taking quite a lot of time.
>
> In fact, even though I was debugging the backend regularly, I removed -g
> and added it only when I wanted to debug.
>
It did somethimes in the past proove to be good luck to have symbols in
a core file accidentially. If you want to find them in an arbitrary out
of the box installation, they have to be in the default configuration.
That they cannot be there if a non-gcc does not optimize the code then,
sure. But I don't really see the confusion you're talking about. Nor do
I see the importance of link-time when setting up a production system
from sources. Do not mix up developer usage with DBA usage. You can ask
a developer to use "--disable-debug", and when he complains about slow
compiles it's still time to tell him. But if you expect a DBA to
configure "--enable-debug" you will get core files that are plain
useless and it's too late.
What I would like to maintain is the best possible support capability
(finding symbols wherever possible to do the aftermath of a crashed
backend), while providing the best possible performance - with
performance having priority. That this leads to different options used
on different platforms and compilers, so be it.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck(at)Yahoo(dot)com #
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2003-10-27 21:59:50 | Re: Still a few flaws in configure's default CFLAGS selection |
Previous Message | D'Arcy J.M. Cain | 2003-10-27 21:05:45 | Two serial numbers in one table |