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. ------------- Commit messages: - JDK-8348286 Changes: https://git.openjdk.org/jdk/pull/23236/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23236&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8348286 Stats: 6 lines in 1 file changed: 6 ins; 0 del; 0 mod Patch: https://git.openjdk.org/jdk/pull/23236.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/23236/head:pull/23236 PR: https://git.openjdk.org/jdk/pull/23236