-
Bug
-
Resolution: Fixed
-
P4
-
None
-
None
-
b08
-
ppc
-
aix
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.
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.
- links to
-
Commit(master) openjdk/jdk/a4942a2f
-
Review(master) openjdk/jdk/23236