variables optimized out

Joerg Sonnenberger joerg at britannica.bec.de
Sun Jan 3 18:11:49 UTC 2016


On Sun, Jan 03, 2016 at 03:59:23PM +0100, Bertram Scharpf wrote:
> Hi,
> 
> On Sunday, 03. Jan 2016, 14:38:33 +0100, robbinson defau wrote:
> > Im debugging some issues in the kernel and as the kernel is compiled by
> > default with -O2, a lot of variables are optimized out. So i made changes
> > to make.conf (CFLAGS and COPTFLAGS).\
> > 
> > All builds fine, but I get the weirdest of panics that most certainly not
> > happen with -O2. [...]
> 
> I just had a look at "man make.conf" and that says:
> 
>      CFLAGS	   (str) Controls the compiler setting when compiling C code.
> 		   Optimization levels other than -O and -O2 are not sup‐
> 		   ported.
> 
> At least to me this is a surprise. I'm really disappointed
> about what programming style has become common.

There are two strong historical reasons from GCC behavior:
- a lot of the -O3 optimisations has been known to break questionable
code
- a lot of the warnings significantly change behavior depending on the
optmizer.

While the former is not a big problem for disabling optimisation, the
latter certainly is. Note that with clang there is no difference between
-O and -O2.

Joerg


More information about the freebsd-hackers mailing list