Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 04 Feb 2006 08:51:34 -0700 (MST)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        des@des.no
Cc:        src-committers@freebsd.org, kris@obsecurity.org, stable@freebsd.org, sparc64@freebsd.org
Subject:   Re: [releng_6 tinderbox] failure on sparc64/sparc64
Message-ID:  <20060204.085134.44793895.imp@bsdimp.com>
In-Reply-To: <86bqxntixy.fsf@xps.des.no>
References:  <861wykr9vx.fsf@xps.des.no> <20060203.105305.71186162.imp@bsdimp.com> <86bqxntixy.fsf@xps.des.no>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <86bqxntixy.fsf@xps.des.no>
            des@des.no (Dag-Erling Sm=F8rgrav) writes:
: Warner Losh <imp@bsdimp.com> writes:
: > Can we not have special flags for tinderbox builds?  It make
: > pre-commit testing a big pita.  How about just -O on both head and
: > in RELENG_6?
: =

: As I have repeatedly pointed out in the past, -O2 catches more bugs
: because it enables optimizations which require more extensive coverag=
e
: analysis.

Then it should be the default, standard flag.

: > The kernel make files have special magic to disable the parts of -O=
2
: > that are known to be bad because tinderbox uses -O2, despite effort=
s
: > in the past to stop the practice.
: =

: The kernel has special magic to disable strict aliasing checks becaus=
e
: certain people regularly commit kernel code which violates C aliasing=

: rules and refuse to fix it.  The userland code does not need these
: hacks because I spent a lot of time and effort fixing aliasing bugs i=
n
: e.g. libalias.

The optimizations are disable because they do not work.  It is really
that simple.  The kernel has lots and lots of these problems, it is
true.

: Aliasing violations are not trivial matters; they prevent the compile=
r
: from optimizing code which (for instance) accesses structure members
: through pointers to the structure.  There is a lot of this in the
: kernel.

I agree.  However, I think it is unreasonable to have one set of
defaults, then another set that committers are held to.  This leads to
lots of problems.

My bottom line is that as a committer, you are expected to not break
the builds with the default flags.  The tinderbox runs at a different
level, thereby creating the impression that someone has done something
wrong when it happens to blow up, when in fact they have not.  If -O2
is so good w/o the -fno-strict-alias, then it should be the default so
we catch these bugs.

I'm not arguing against -O2 because it isn't useful.  I'm arguing
because it isn't the default.

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060204.085134.44793895.imp>