xlc : using clang-style warning disabling
Baesken, Matthias
matthias.baesken at sap.com
Thu Jul 18 11:36:27 UTC 2019
Hello, we recently switched to xlc16 / xlclang in the AIX build .
( jdk11 stays on the so-called "legacy" xlc 12 )
I would suggest to switch to the clang-style warning disabling - style now in jdk/jdk ( = jdk14) to avoid some warnings in the build .
I think we are pretty close to reduce the compiler warnings to 0 on AIX , which would make it possible to build with warnings as errors at some point in the future .
Any thoughts / comments / opinions?
For now I would start with those warnings disabled for hotspot :
tautological-compare :
/jdk/src/hotspot/os/aix/os_aix.cpp:2400:15: warning: comparison of unsigned expression >= 0 is always true [-Wtautological-compare]
if (bytes >= Use64KPagesThreshold) {
~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~
/jdk/src/hotspot/os/aix/os_aix.cpp:2607:15: warning: comparison of unsigned expression >= 0 is always true [-Wtautological-compare]
if (bytes >= Use64KPagesThreshold) {
In the product build the "Use64KPagesThreshold" is a constant so clang complains . However in the (fast)debug builds one can set Use64KPagesThreshold with an -XX setting.
So I think it is best to disable the warning.
shift-negative-value :
/jdk/src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp:429:97: warning: shifting a negative signed value is undefined [-Wshift-negative-value]
(x->op() == Bytecodes::_lsub && right.value()->type()->as_LongConstant()->value() == ((-1)<<15)) ) {
~~~~^
/jdk/src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp:483:96: warning: shifting a negative signed value is undefined [-Wshift-negative-value]
(x->op() == Bytecodes::_isub && right.value()->type()->as_IntConstant()->value() == ((-1)<<15)) ) {
We could probably replace the -1 shift by a constant but I think it is nicely readable .
A patch is below .
Best regards, Matthias
diff -r 1b0c0af50d4e make/autoconf/flags-cflags.m4
--- a/make/autoconf/flags-cflags.m4 Wed Jul 17 15:40:27 2019 +0200
+++ b/make/autoconf/flags-cflags.m4 Thu Jul 18 13:21:24 2019 +0200
@@ -229,7 +229,7 @@
;;
xlc)
- DISABLE_WARNING_PREFIX="-qsuppress="
+ DISABLE_WARNING_PREFIX="-Wno-"
CFLAGS_WARNINGS_ARE_ERRORS="-qhalt=w"
# Possibly a better subset than "all" is "lan:trx:ret:zea:cmp:ret"
diff -r 1b0c0af50d4e make/hotspot/lib/CompileJvm.gmk
--- a/make/hotspot/lib/CompileJvm.gmk Wed Jul 17 15:40:27 2019 +0200
+++ b/make/hotspot/lib/CompileJvm.gmk Thu Jul 18 13:21:24 2019 +0200
@@ -95,8 +95,7 @@
unknownpragma doubunder w_enumnotused w_toomanyenumnotused \
wvarhidenmem wunreachable wnoretvalue notemsource
-DISABLED_WARNINGS_xlc := 1540-0216 1540-0198 1540-1090 1540-1639 1540-1088 \
- 1500-010
+DISABLED_WARNINGS_xlc := tautological-compare shift-negative-value
DISABLED_WARNINGS_microsoft :=
diff -r 1b0c0af50d4e make/lib/Awt2dLibraries.gmk
--- a/make/lib/Awt2dLibraries.gmk Wed Jul 17 15:40:27 2019 +0200
+++ b/make/lib/Awt2dLibraries.gmk Thu Jul 18 13:21:24 2019 +0200
@@ -471,7 +471,6 @@
$(LIBAWT_HEADLESS_CFLAGS), \
EXTRA_HEADER_DIRS := $(LIBAWT_HEADLESS_EXTRA_HEADER_DIRS), \
DISABLED_WARNINGS_gcc := unused-function, \
- DISABLED_WARNINGS_xlc := 1506-356, \
DISABLED_WARNINGS_solstudio := E_EMPTY_TRANSLATION_UNIT, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
@@ -481,10 +480,6 @@
LIBS_solaris := $(LIBM) $(LIBDL) $(LIBCXX), \
))
- # AIX warning explanation:
- # 1506-356 : (W) Compilation unit is empty.
- # This happens during the headless build
-
$(BUILD_LIBAWT_HEADLESS): $(BUILD_LIBAWT)
TARGETS += $(BUILD_LIBAWT_HEADLESS)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/ppc-aix-port-dev/attachments/20190718/93eb2e15/attachment-0001.html>
More information about the ppc-aix-port-dev
mailing list