On Wed, 22 Jan 2025 15:34:36 GMT, Joachim Kern <jk...@openjdk.org> wrote:
> We (SAP) try to introduce the ‘IBM Open XL C/C++ for AIX 17.1.2’ (based on > clang 17) as a feasible compiler for jdk25, because in combination with the > 17.1.3 runtime this would enable the support for ubsan. > Unfortunately, the new compiler comes along with a new set of compiler > warnings turned into errors by -Werror. > One of the warnings is -Wtentative-definitions. It is fired when a variable > definition in a header is found: > /jdk/src/java.desktop/share/native/libawt/awt/image/imageInitIDs.h:36:20: > error: possible missing 'extern' on global variable definition in header > [-Werror,-Wtentative-definitions] > 36 | IMGEXTERN jfieldID g_BImgRasterID; > | ^ > From now on headers allow only extern declarations of variables. The > definition must take place in a c/cpp file. This means e.g. > imageInitIDs.h:36:20 > 36 extern jfieldID g_BImgRasterID; > and the corresponding c-File > jfieldID g_BImgRasterID; > > The other possible solution would be to compile everything with > -Wno-tentative-definitions > which could be set in flags-cflags.m4, if compiling with clang 17. Try this instead: diff --git a/make/autoconf/flags-cflags.m4 b/make/autoconf/flags-cflags.m4 index 729e508cc26..04831c07d97 100644 --- a/make/autoconf/flags-cflags.m4 +++ b/make/autoconf/flags-cflags.m4 @@ -263,7 +263,7 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS], # These warnings will never be turned on, since they generate too many # false positives. - DISABLED_WARNINGS="unknown-warning-option unused-parameter" + DISABLED_WARNINGS="unknown-warning-option unused-parameter tentative-definitions" ;; esac AC_SUBST(DISABLE_WARNING_PREFIX) ------------- PR Comment: https://git.openjdk.org/jdk/pull/23236#issuecomment-2608561423