On Thu, Jun 12, 2014 at 3:53 PM, Andrew Haley <a...@redhat.com> wrote: > Hi, > > On 06/11/2014 06:03 PM, Andrew Hughes wrote: >> >> I just stumbled across this when trying to work out why we are seeing >> aliasing >> warnings in the demo code only on PPC builds. They get flagged by our build >> process. >> This exclusion of fno-strict-aliasing on PPC seems to date back to 7027910 >> in OpenJDK >> 7, where we are seeing the warnings, and there seems to be no explanation as >> to why >> it was added in either the code or reviews. >> >> Given -fno-strict-aliasing is now being used on all architectures in 9, do >> you think >> it's ok to do the same in 7? I could also turn it off on the individual >> files, but >> this would duplicate the flag on other architectures and we may then get >> more PPC-only >> warnings in future. > > Never mind the warnings, -fno-strict-aliasing is essential for correctness. >
I agree that we should set this just to be on the safe side. Notice that for the HotSpot build this is set unconditionally for all GCC platfoms in make/{bsd,linux,solaris}/makefiles/gcc.make from jdk 7 through 9. There's also a bug in GCC < 4.4.1 which incorrectly prints this waring even in cases where it shouldn't (see "Bug 41874 - Incorrect "dereferencing type-punned pointer will break strict-aliasing rules" warning", https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41874) I just realized that we did all our internal OpenJDK 8/9 Linux/PPC64 builds with "--with-extra-cflags=-Wno-strict-aliasing" because of that bug. So I'd appreciate if you'd downport your fix to 7 and 8. Notice that for OpenJDK 7 this issue only affects 32-bit builds, because it checks for "($(ARCH),ppc)" and ARCH is 'ppc' for 32-bit builds and ppc64 for 64-bit builds. In 8 this affects both, 32- and 64-bit ppc because it checks for $OPENJDK_TARGET_CPU_ARCH which is 'ppc' for both, the 32- and the 64-bit variant. Thank you and best regards, Volker > Andrew. >