RFR: JDK-8074796 Disabling warnings on clang triggers compiler bug for libunpack
Erik Joelsson
erik.joelsson at oracle.com
Thu Mar 12 15:23:33 UTC 2015
Looks good to me.
/Erik
On 2015-03-12 16:04, Magnus Ihse Bursie wrote:
> With JDK-8074096, some warnings produced by libunpack was silenced.
>
> However, it turned out that the version of clang shipped with Xcode
> 5.1 has some weird behavior, which I would classify as a compiler bug.
> The generated output differs markedly, if -Wno-foo is present on the
> command line. Enough to trigger a failure in an Oracle-internal test
> of libunpack.
>
> Removing the disabled warnings restore the previous behaviour.
>
> While I've spent too much time on this already, I have not been able
> to pinpoint exactly what triggers this behavior. It seems that all
> files in libunpack are affected, but no other libs. (However there are
> also some minor changes in ./java.desktop/libawt_lwawt/OGLPaints.o
> ./java.desktop/liblcms/cmsps2.o
> ./java.desktop/libmlib_image/mlib_ImageColorTrue2Index.o which there
> really should not be.) And it only affects libunpack, not the
> unpack200 exe which shares part of the code. I have no explanation for
> this.
>
> The simple solution at this point is to back out the warning changes
> for clang. There is already a fix on the way to resolve the root cause
> of this failures. (And yes, I tried running that patch. It did indeed
> remove the warnings. But when running with the -Wno-foo flags, clang
> *still* generated broken code.)
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8074796
> Patch inline:
>
> diff --git a/make/lib/Lib-jdk.pack200.gmk b/make/lib/Lib-jdk.pack200.gmk
> --- a/make/lib/Lib-jdk.pack200.gmk
> +++ b/make/lib/Lib-jdk.pack200.gmk
> @@ -42,7 +42,6 @@
> CFLAGS_release := -DPRODUCT, \
> DISABLED_WARNINGS_gcc := conversion-null sign-compare
> format-security \
> format-nonliteral parentheses, \
> - DISABLED_WARNINGS_clang := bool-conversion format-security, \
> DISABLED_WARNINGS_solstudio := truncwarn, \
> DISABLED_WARNINGS_microsoft := 4267 4018, \
> MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libunpack/mapfile-vers, \
>
> /Magnus
More information about the build-dev
mailing list