I did  not add   JNICALL decorations  to  any  libzip functions , please see my 
webrev :

http://cr.openjdk.java.net/~mbaesken/webrevs/8201226/

> , the problem here
> is the added JNICALL decoration, which affects only win32 (and incorrectly,
> that is).

so I wonder  which added  JNICALL  decoration   you are refering to .

Best regards, Matthias 


> -----Original Message-----
> From: Magnus Ihse Bursie [mailto:magnus.ihse.bur...@oracle.com]
> Sent: Montag, 9. April 2018 13:29
> To: Baesken, Matthias <matthias.baes...@sap.com>
> Cc: Alexey Ivanov <alexey.iva...@oracle.com>; build-dev <build-
> d...@openjdk.java.net>; Doerr, Martin <martin.do...@sap.com>
> Subject: Re: 8201226 missing JNIEXPORT / JNICALL at some places in function
> declarations/implementations - was : RE: missing JNIEXPORT / JNICALL at
> some places in function declarations/implementations
> 
> Reinstating the -export command line options is not the way forward here.
> As I understood it from private conversation with Alexey, the problem here
> is the added JNICALL decoration, which affects only win32 (and incorrectly,
> that is).
> 
> /Magnus
> 
> 9 apr. 2018 kl. 12:46 skrev Baesken, Matthias <matthias.baes...@sap.com>:
> 
> >>
> >> I think adding prototype of ZIP_CRC32 to zip_util.h is unnecessary as
> >> this function is correctly decorated in CRC32.c and is exported.
> >>
> >
> > Hi  Alexey,  you are correct  on this one .   The added  declaration does  
> > not
> help  with the  "Corrupted ZIP library"  error .
> > This  one can be  fixed  by  bringing back  the  exports  in the makefile
> make/lib/CoreLibraries.gmk        (same for some  JIMAGE functions) :
> >
> >
> > --- a/make/lib/CoreLibraries.gmk       Sun Apr 08 17:01:20 2018 +0800
> > +++ b/make/lib/CoreLibraries.gmk       Mon Apr 09 12:44:08 2018 +0200
> > @@ -191,6 +191,9 @@
> >     DISABLED_WARNINGS_gcc := implicit-fallthrough, \
> >     LDFLAGS := $(LDFLAGS_JDKLIB) \
> >         $(call SET_SHARED_LIBRARY_ORIGIN), \
> > +    LDFLAGS_windows := -export:ZIP_Open -export:ZIP_Close -
> export:ZIP_FindEntry \
> > +        -export:ZIP_ReadEntry -export:ZIP_GetNextEntry \
> > +        -export:ZIP_InflateFully -export:ZIP_CRC32 -export:ZIP_FreeEntry, \
> >     LIBS_unix := -ljvm -ljava $(LIBZ_LIBS), \
> >     LIBS_windows := jvm.lib $(WIN_JAVA_LIB), \
> > ))
> > @@ -221,6 +224,10 @@
> >     CFLAGS_unix := -UDEBUG, \
> >     LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
> >         $(call SET_SHARED_LIBRARY_ORIGIN), \
> > +    LDFLAGS_windows := -export:JIMAGE_Open -export:JIMAGE_Close \
> > +        -export:JIMAGE_PackageToModule \
> > +        -export:JIMAGE_FindResource -export:JIMAGE_GetResource \
> > +        -export:JIMAGE_ResourceIterator -export:JIMAGE_ResourcePath, \
> >     LIBS_unix := -ljvm -ldl $(LIBCXX), \
> >     LIBS_macosx := -lc++, \
> >     LIBS_windows := jvm.lib, \
> >
> >
> > I wonder why the 64bit windows build can  live without the  exports  , any
> ideas ?
> >
> >
> > Best regards , Matthias
> >
> >
> >> -----Original Message-----
> >> From: Alexey Ivanov [mailto:alexey.iva...@oracle.com]
> >> Sent: Samstag, 7. April 2018 00:14
> >> To: Magnus Ihse Bursie <magnus.ihse.bur...@oracle.com>; Baesken,
> >> Matthias <matthias.baes...@sap.com>
> >> Cc: build-dev <build-dev@openjdk.java.net>; Doerr, Martin
> >> <martin.do...@sap.com>
> >> Subject: Re: 8201226 missing JNIEXPORT / JNICALL at some places in
> function
> >> declarations/implementations - was : RE: missing JNIEXPORT / JNICALL at
> >> some places in function declarations/implementations
> >>
> >> Hi Magnus, Matthias,
> >>
> >> I tried to build 32 bit Windows but it fails to run for me with
> >> Corrupted ZIP library:
> >> c:\work\jdk-dev\build\windows-x86-normal-server-
> release\jdk\bin\zip.dll
> >>
> >> The problem is that zip.dll exports all symbols as C++ rather than C.
> >> For example, ZIP_CRC32 is exported as _ZIP_CRC32@12, and
> classLoader.cpp
> >> cannot find the function.
> >>
> >>
> >> I think adding prototype of ZIP_CRC32 to zip_util.h is unnecessary as
> >> this function is correctly decorated in CRC32.c and is exported.
> >>
> >> Regards,
> >> Alexey
> >>
> >>> On 06/04/2018 17:33, Magnus Ihse Bursie wrote:
> >>> I think it's reasonable to update the existing webrev.
> >>>
> >>> /Magnus
> >>>
> >>>> 6 apr. 2018 kl. 15:20 skrev Baesken, Matthias
> >> <matthias.baes...@sap.com>:
> >>>>
> >>>> Hello, I just noticed  2  additonal  issues  regarding mapfile-removal :
> >>>>
> >>>> The   follow up change  that removed   mapfiles for  exes  as well    
> >>>> leads
> >> on Win32 bit  to  this link error :
> >>>>
> >>>>   Creating library
> >> C:/JVM/jdk_jdk_ntintel/support/native/java.base/java/java.lib and
> object
> >> C:/JVM/jdk_jdk_ntintel/support/native/java.base/java/java.exp
> >>>> LIBCMT.lib(crt0.obj) : error LNK2019: unresolved external symbol _main
> >> referenced in function ___tmainCRTStartup
> >>>> C:/JVM/jdk_jdk_ntintel/support/native/java.base/java_objs/java.exe
> :
> >> fatal error LNK1120: 1 unresolved externals
> >>>>
> >>>>
> >>>> Looks like we  cannot have   JNICALL   in main.c   :
> >>>>
> >>>> diff -r 4f6887eade94 src/java.base/share/native/launcher/main.c
> >>>> --- a/src/java.base/share/native/launcher/main.c        Thu Apr 05
> 14:39:04
> >> 2018 -0700
> >>>> +++ b/src/java.base/share/native/launcher/main.c        Fri Apr 06
> 15:16:40
> >> 2018 +0200
> >>>> @@ -93,7 +93,7 @@
> >>>>      __initenv = _environ;
> >>>>
> >>>> #else /* JAVAW */
> >>>> -JNIEXPORT int JNICALL
> >>>> +JNIEXPORT int
> >>>> main(int argc, char **argv)
> >>>> {
> >>>>      int margc;
> >>>>
> >>>>
> >>>> Zip-library  has runtime issues   when  symbols  are resolved  in
> >> src/hotspot/share/classfile/classLoader.cpp.
> >>>> I added  the declaration of the missing symbol, this seems to fix it .
> >>>>
> >>>>
> >>>> diff -r 4f6887eade94 src/java.base/share/native/libzip/zip_util.h
> >>>> --- a/src/java.base/share/native/libzip/zip_util.h      Thu Apr 05 
> >>>> 14:39:04
> >> 2018 -0700
> >>>> +++ b/src/java.base/share/native/libzip/zip_util.h      Fri Apr 06 
> >>>> 15:16:40
> >> 2018 +0200
> >>>> @@ -284,4 +284,7 @@
> >>>> JNIEXPORT jboolean JNICALL
> >>>> ZIP_InflateFully(void *inBuf, jlong inLen, void *outBuf, jlong outLen,
> char
> >> **pmsg);
> >>>>
> >>>> +JNIEXPORT jint JNICALL
> >>>> +ZIP_CRC32(jint crc, const jbyte *buf, jint len);
> >>>> +
> >>>>
> >>>>
> >>>> Should I  prepare  another  bug,  or  add this to the existing one and
> post
> >> a second webrev ?
> >>>>
> >>>> Best regards, Matthias
> >>>>
> >>>>
> >>>> From: Baesken, Matthias
> >>>> Sent: Freitag, 6. April 2018 09:54
> >>>> To: 'Magnus Ihse Bursie' <magnus.ihse.bur...@oracle.com>
> >>>> Cc: build-dev@openjdk.java.net; Doerr, Martin
> <martin.do...@sap.com>
> >>>> Subject: RFR: 8201226 missing JNIEXPORT / JNICALL at some places in
> >> function declarations/implementations - was : RE: missing JNIEXPORT /
> >> JNICALL at some places in function declarations/implementations
> >>>>
> >>>> Hello, please review :
> >>>>
> >>>> Bug :
> >>>>
> >>>> https://bugs.openjdk.java.net/browse/JDK-8201226
> >>>>
> >>>> change :
> >>>>
> >>>> http://cr.openjdk.java.net/~mbaesken/webrevs/8201226/
> >>>>
> >>>> mostly I added  JNIEXPORT / JNICALL at some places  where  the
> win32bit
> >> build missed it .
> >>>>
> >>>> A difference is
> >> src/java.desktop/share/native/libsplashscreen/splashscreen_impl.h
> >>>> Where I removed   a few  declarations  (one  decl   with one without
> >> JNIEXPORT / JNICALL – looked a bit strange ) .
> >>>>
> >>>> Best regards , Matthias
> >>>>
> >>>>
> >>>> From: Magnus Ihse Bursie [mailto:magnus.ihse.bur...@oracle.com]
> >>>> Sent: Donnerstag, 5. April 2018 17:45
> >>>> To: Baesken, Matthias <matthias.baes...@sap.com>
> >>>> Cc: build-dev@openjdk.java.net; Doerr, Martin
> <martin.do...@sap.com>
> >>>> Subject: Re: missing JNIEXPORT / JNICALL at some places in function
> >> declarations/implementations
> >>>>
> >>>> That's most likely a result of the new JNIEXPORT I added as part of the
> >> mapfile removal.
> >>>>
> >>>> I tried to match header file and C file, but I can certainly have missed
> >> cases. If I didn't get any warnings, it was hard to know what I missed.
> >>>>
> >>>> Please do submit your patch.
> >>>>
> >>>> I'm a bit surprised 32-bit Window is still buildable. :)
> >>>>
> >>>> /Magnus
> >>>>
> >>>> 5 apr. 2018 kl. 17:20 skrev Baesken, Matthias
> >> <matthias.baes...@sap.com>:
> >>>>
> >>>> 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/ml
> >> ib_ImageConvKernelConvert.c(87) : error C2373:
> >> 'j2d_mlib_ImageConvKernelConvert' : redefinition; different type
> modifiers
> >>>>
> >>
> e:\priv\openjdk\repos\jdk\src\java.desktop\share\native\libmlib_image\ml
> >> ib_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
> >>>>
> >

Reply via email to