@@ -172,28 +172,53 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
172172 DISABLE_WARNING_PREFIX="-wd"
173173 BUILD_CC_DISABLE_WARNING_PREFIX="-wd"
174174 CFLAGS_WARNINGS_ARE_ERRORS="-WX"
175+
176+ WARNINGS_ENABLE_ALL="-W3"
177+ DISABLED_WARNINGS="4800"
175178 ;;
179+
176180 solstudio)
177181 DISABLE_WARNING_PREFIX="-erroff="
178- CFLAGS_WARNINGS_ARE_ERRORS="-errtags -errwarn=%all"
182+ CFLAGS_WARNINGS_ARE_ERRORS="-errwarn=%all"
183+
184+ WARNINGS_ENABLE_ALL_CFLAGS="-v"
185+ WARNINGS_ENABLE_ALL_CXXFLAGS="+w"
186+
187+ DISABLED_WARNINGS_C=""
188+ DISABLED_WARNINGS_CXX=""
179189 ;;
190+
180191 gcc)
181192 DISABLE_WARNING_PREFIX="-Wno-"
182193 BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
183194 CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
184195 ;;
196+
185197 clang)
186198 DISABLE_WARNING_PREFIX="-Wno-"
187199 CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
200+
201+ WARNINGS_ENABLE_ALL="-Wall -Wextra -Wformat=2"
202+ WARNINGS_ENABLE_ADDITIONAL_JVM="-Wpointer-arith -Wsign-compare -Wunused-function -Wundef -Wunused-value -Woverloaded-virtual -Wreorder"
203+
204+ DISABLED_WARNINGS="unused-parameter unused"
188205 ;;
206+
189207 xlc)
190208 DISABLE_WARNING_PREFIX="-qsuppress="
191209 CFLAGS_WARNINGS_ARE_ERRORS="-qhalt=w"
210+
211+ # Possibly a better subset than "all" is "lan:trx:ret:zea:cmp:ret"
212+ WARNINGS_ENABLE_ALL="-qinfo=all -qformat=all"
213+ DISABLED_WARNINGS=""
192214 ;;
193215 esac
194216 AC_SUBST ( DISABLE_WARNING_PREFIX )
195217 AC_SUBST ( BUILD_CC_DISABLE_WARNING_PREFIX )
196218 AC_SUBST ( CFLAGS_WARNINGS_ARE_ERRORS )
219+ AC_SUBST ( DISABLED_WARNINGS )
220+ AC_SUBST ( DISABLED_WARNINGS_C )
221+ AC_SUBST ( DISABLED_WARNINGS_CXX )
197222] )
198223
199224AC_DEFUN ( [ FLAGS_SETUP_QUALITY_CHECKS] ,
@@ -527,18 +552,22 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
527552 TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX
528553 fi
529554 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
530- TOOLCHAIN_CFLAGS_JDK="-mt"
531- TOOLCHAIN_CFLAGS_JDK_CONLY="-xCC -Xa -v -W0,-noglobal" # C only
555+ TOOLCHAIN_FLAGS="-errtags -errfmt"
556+ TOOLCHAIN_CFLAGS="-errshort=tags"
557+
558+ TOOLCHAIN_CFLAGS_JDK="-mt $TOOLCHAIN_FLAGS"
559+ TOOLCHAIN_CFLAGS_JDK_CONLY="-xc99=%none -xCC -Xa -W0,-noglobal $TOOLCHAIN_CFLAGS" # C only
532560 TOOLCHAIN_CFLAGS_JDK_CXXONLY="-features=no%except -norunpath -xnolib" # CXX only
533561 TOOLCHAIN_CFLAGS_JVM="-template=no%extdef -features=no%split_init \
534- -library=stlport4 -mt -features=no%except"
562+ -library=stlport4 -mt -features=no%except $TOOLCHAIN_FLAGS "
535563 if test "x$DEBUG_LEVEL" = xslowdebug; then
536564 # Previously -g was used instead of -g0 for slowdebug; this is equivalent
537565 # to setting +d.
538566 TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM +d"
539567 fi
540568
541569 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
570+ # Suggested additions: -qsrcmsg to get improved error reporting
542571 # set -qtbtable=full for a better traceback table/better stacks in hs_err when xlc16 is used
543572 TOOLCHAIN_CFLAGS_JDK="-qtbtable=full -qchars=signed -qfullpath -qsaveopt -qstackprotect" # add on both CFLAGS
544573 TOOLCHAIN_CFLAGS_JVM="-qtbtable=full -qtune=balanced \
@@ -550,37 +579,26 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
550579
551580 # CFLAGS WARNINGS STUFF
552581 # Set JVM_CFLAGS warning handling
553- if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
554- # COMMON to gcc and clang
555- WARNING_CFLAGS_JVM="-Wpointer-arith -Wsign-compare -Wunused-function"
556- if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then
557- # Non-zero builds have stricter warnings
558- WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wundef -Wformat=2"
559- fi
560-
561- fi
562582 if test "x$TOOLCHAIN_TYPE" = xgcc; then
563- WARNING_CFLAGS_JDK="-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 "
564- WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wunused-value -Woverloaded-virtual "
583+ WARNING_CFLAGS_JDK="$WARNINGS_ENABLE_ALL "
584+ WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL $WARNINGS_ENABLE_ADDITIONAL_JVM "
565585
566- if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then
567- # Non-zero builds have stricter warnings
568- WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wreturn-type"
569- fi
570586 elif test "x$TOOLCHAIN_TYPE" = xclang; then
571- WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wno-deprecated"
572587 if test "x$OPENJDK_TARGET_OS" = xlinux; then
573- WARNING_CFLAGS_JVM="$WARNING_CFLAGS_JVM -Wno-sometimes-uninitialized"
574- WARNING_CFLAGS_JDK="-Wall -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2"
588+ WARNING_CFLAGS_JDK="$WARNINGS_ENABLE_ALL"
589+ else
590+ WARNING_CFLAGS_JDK="" # currently left empty
575591 fi
592+ WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL $WARNINGS_ENABLE_ADDITIONAL_JVM"
593+
576594 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
577- WARNING_CFLAGS_JDK_CONLY="-errshort=tags "
578- WARNING_CFLAGS_JDK_CXXONLY="+w "
579- WARNING_CFLAGS_JDK="-errtags=yes -errfmt"
595+ WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS "
596+ WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS "
597+ WARNING_CFLAGS_JVM="" # currently left empty
580598 elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
581- WARNING_CFLAGS="-W3 "
582- WARNING_CFLAGS_JDK="-wd4800"
583- WARNING_CFLAGS_JVM="-wd4800"
599+ WARNING_CFLAGS="$WARNINGS_ENABLE_ALL "
600+ elif test "x$TOOLCHAIN_TYPE" = xxlc; then
601+ WARNING_CFLAGS="" # currently left empty
584602 fi
585603
586604 # Set some additional per-OS defines.
0 commit comments