Hello, we noticed that at a number of places in the coding , the
JNIEXPORT and/or JNICALL modifiers do not match when one compares the
declaration and
The implementation of functions.
While this is ok on most platforms, it seems to fail on Windows 32 bit and
leads to errors like this one :
e:/priv/openjdk/repos/jdk/src/java.desktop/share/native/libmlib_image/mlib_ImageConvKernelConvert.c(87)
: error C2373: 'j2d_mlib_ImageConvKernelConvert' : redefinition; different
type modifiers
e:\priv\openjdk\repos\jdk\src\java.desktop\share\native\libmlib_image\mlib_image_proto.h(2630)
: see declaration of 'j2d_mlib_ImageConvKernelConvert'
(there are quite a few of these e.g. in mlib / splashscreen etc.)
Another example is this one :
diff -r 4d98473ed33e src/java.base/share/native/libjimage/jimage.hpp
--- a/src/java.base/share/native/libjimage/jimage.hpp Thu Apr 05 09:55:16 2018
+0200
+++ b/src/java.base/share/native/libjimage/jimage.hpp Thu Apr 05
17:07:40 2018 +0200
@@ -126,7 +126,7 @@
* JImageLocationRef location = (*JImageFindResource)(image,
* "java.base", "9.0",
"java/lang/String.class", &size);
*/
-extern "C" JNIEXPORT JImageLocationRef JIMAGE_FindResource(JImageFile* jimage,
+extern "C" JNIEXPORT JImageLocationRef JNICALL JIMAGE_FindResource(JImageFile*
jimage,
const char* module_name, const char* version, const char* name,
jlong* size);
Is there some generic way to get the same declarations / impementations in
the code ?
Or should I just add a patch with my findings ?
Best regards, Matthias