Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Oct 2015 18:49:16 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        Craig Rodrigues <rodrigc@crodrigues.org>
Cc:        FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>
Subject:   Re: bt_split.c error: dereferencing type-punned pointer will break strict-aliasing rules (powerpc64-xtoolchain use)
Message-ID:  <D7C0D022-B756-44F0-9CB1-84952FE90064@dsl-only.net>
In-Reply-To: <CAG=rPVe-wZp4VkxD9przXU3Dx69BhXvc6R3-U4oQxrWi%2B4-xjw@mail.gmail.com>
References:  <191CDC2D-7A74-41D2-B433-B6D9F6D87D32@dsl-only.net> <CAG=rPVe-wZp4VkxD9przXU3Dx69BhXvc6R3-U4oQxrWi%2B4-xjw@mail.gmail.com>

index | next in thread | previous in thread | raw e-mail

On 2015-Oct-9, at 4:58 PM, Craig Rodrigues <rodrigc@crodrigues.org> wrote:

> On Sun, Oct 4, 2015 at 4:06 AM, Mark Millard <markmi@dsl-only.net <mailto:markmi@dsl-only.net>> wrote:
> 
> /usr/src/lib/libc/db/btree/bt_split.c:548:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
>        bt_preserve(t, *(pgno_t *)bl->bytes) == RET_ERROR)
> 
> You will get many of these warnings all over the codebase.
> You should add NO_WERROR=
> to your make invocation, or put NO_WERROR= in make.conf.
> 
> That's what I do here:
> https://jenkins.freebsd.org/job/FreeBSD_HEAD_amd64_gcc4.9/631/consoleFull <https://jenkins.freebsd.org/job/FreeBSD_HEAD_amd64_gcc4.9/631/consoleFull>;
Yes. Thanks for the reference to FreeBSD_HEAD_amd64_gcc4.9/631/consoleFull . It is interesting to see.

Type-punned pointer vs. strict-aliasing leaves me more worried about source-code-assumption vs. code-generator-assumption mismatches. Many warnings/errors are more like initialized-but-unused and various others that I did not mention. Since powerpc64-xtoolchain and its powerpc64-gcc are gcc5.2 based these days it might give more warnings/errors than gcc4.9 or earlier. (I've not checked.)

I switched to use NO_WERROR (and WERROR) after I sent in the note and had looked at some of the other generated warnings/errors.


===
Mark Millard
markmi at dsl-only.net

On 2015-Oct-9, at 4:58 PM, Craig Rodrigues <rodrigc@crodrigues.org> wrote:

On Sun, Oct 4, 2015 at 4:06 AM, Mark Millard <markmi@dsl-only.net <mailto:markmi@dsl-only.net>> wrote:

/usr/src/lib/libc/db/btree/bt_split.c:548:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
       bt_preserve(t, *(pgno_t *)bl->bytes) == RET_ERROR)

You will get many of these warnings all over the codebase.
You should add NO_WERROR=
to your make invocation, or put NO_WERROR= in make.conf.

That's what I do here:
https://jenkins.freebsd.org/job/FreeBSD_HEAD_amd64_gcc4.9/631/consoleFull <https://jenkins.freebsd.org/job/FreeBSD_HEAD_amd64_gcc4.9/631/consoleFull>;

--
Craig
 



home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D7C0D022-B756-44F0-9CB1-84952FE90064>