Re: Should --enable-debug set CFLAGS to -O0 instead of -O2?

From: Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Should --enable-debug set CFLAGS to -O0 instead of -O2?
Date: 2025-08-01 04:01:39
Message-ID: CAEoWx2=KoWkCm2_uovt4TSkRTSEUxAmaqwXuh7O-O-n6P9ZnYA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Tom,

Thanks for the explanation. W.R.T the PROFILE variable, I tried:

# ./configure --enable-debug
# PROFILE="-O0" make

As a result, both "-O2" and "-O0" presented to gcc. In that case, I believe
"-O0" will be ignored by gcc.

Did you mean to something else?

Chao Li (Evan)
------------------------------
HighGo Software Inc.
https://www.highgo.com/

Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> 于2025年8月1日周五 11:30写道:

> Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> writes:
> > I noticed that "./configure --enable-debug" will set "-O2" to CFLAGS. To
> > better debug/trace the code, I have to manually change "-O2" to "-O0" in
> > src/Makefile.global.
>
> This has been intentional for decades. It is not a bug. You're
> certainly welcome to use different CFLAGS locally if that suits
> your habits better.
>
> In my mind, at least, the rationale is that we don't want to
> give up more performance than we have to in debug builds, nor
> let the behavior deviate from what it would be in production.
>
> It is true than in some cases it's too hard to trace the behavior of
> optimized code. What I usually do if I get frustrated while debugging
> is to recompile specific file(s) at -O0. The PROFILE variable is
> handy for injecting that switch.
>
> regards, tom lane
>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2025-08-01 04:07:03 Re: Should --enable-debug set CFLAGS to -O0 instead of -O2?
Previous Message shveta malik 2025-08-01 03:44:05 Re: Conflict detection for update_deleted in logical replication