-----Original Message-----
From: Alexey Ivanov [mailto:alexey.iva...@oracle.com]
Sent: Donnerstag, 12. April 2018 23:53
To: Phil Race <philip.r...@oracle.com>; Baesken, Matthias
<matthias.baes...@sap.com>; Alan Bateman <alan.bate...@oracle.com>;
Magnus Ihse Bursie <magnus.ihse.bur...@oracle.com>
Cc: build-dev@openjdk.java.net; core-libs-...@openjdk.java.net; Doerr,
Martin <martin.do...@sap.com>; 2d-dev <2d-...@openjdk.java.net>;
hotspot-dev <hotspot-...@openjdk.java.net>
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
On 12/04/2018 21:42, Phil Race wrote:
How can JNIEXPORT be different between 32 bit & 64 bit ?
I'm sure you saw compilation errors but I don't get why it failed for
32 only.
JNICALL (_stdcall) may be unnecessary on 64 bit Windows but that
doesn't
explain why the 32 bit compiler would complain about inconsistent
application
of __declspec(dllexport) - ie JNIEXPORT.
Or is that part (adding JNIEXPORT) pure clean up and the compilation
errors were all down to JNICALL ?
Adding missing JNIEXPORT is for cleanup only.
The compiler complained about mismatched JNICALL / non-JNICALL
declarations as the macro changes calling convention from the default
__cdecl to __stdcall on 32 bit Windows.
Another issue is that __stdcall decorates the functions: prefixes with
underscore and postfixes with @ + size of parameters. Because of the
decorations, classLoader.cpp can't lookup the required functions by
name
from zip.dll and jimage.dll. The functions are exported but with
different name.
I hope this information adds more details to the picture.
I was a bit puzzled at the removals I saw here :
http://cr.openjdk.java.net/~mbaesken/webrevs/8201226.2/src/java.deskto
p/share/native/libsplashscreen/splashscreen_impl.h.udiff.html
.. I needed to look at the whole file to realise that you were
removing a duplicate
declaration.
That was tricky. I could have been mentioned in the review.
Regards,
Alexey
-phil.
On 04/12/2018 04:04 AM, Baesken, Matthias wrote:
Hi Alan , this is the up to date webrev .
However we want to add Alexey Ivanov as additional author .
As I read it, this changes the calling convention of these
functions on
32-bit Windows but it will have no impact on 64-bit Windows (as
__stdcall is ignored) or other platforms, is that correct?
The change adds JNIEXPORT at some places where it is ben
forgotten , for example :
http://cr.openjdk.java.net/~mbaesken/webrevs/8201226.2/src/java.desktop/share/native/libmlib_image/mlib_c_ImageLookUp.c.udiff.html
This might have potential impact on other platforms (fixes the
mismatches) .
Best regards, Matthias
-----Original Message-----
From: Alan Bateman [mailto:alan.bate...@oracle.com]
Sent: Donnerstag, 12. April 2018 12:54
To: Baesken, Matthias <matthias.baes...@sap.com>; Magnus Ihse
Bursie <magnus.ihse.bur...@oracle.com>
Cc: build-dev@openjdk.java.net; Doerr, Martin
<martin.do...@sap.com>; core-libs-...@openjdk.java.net
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
Adding core-libs-dev as this is change code in libjava, libzip,
libjimage, ...
Can you confirm that this is the up to date webrev:
http://cr.openjdk.java.net/~mbaesken/webrevs/8201226.2/
As I read it, this changes the calling convention of these
functions on
32-bit Windows but it will have no impact on 64-bit Windows (as
__stdcall is ignored) or other platforms, is that correct?
-Alan
<SNIP>