jextract on Windows - possible regression
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Wed Dec 13 12:56:02 UTC 2023
Hi Duncan,
we're going through some heavy refactoring of the jextract code in the
panama branch. As a result, the code is not yet in a state where it is
usable for real-world header files. There are some issues we are aware
of and we're working through them.
I will send an email when we think things are back in a good state. In
the meantime folks should stick to the 22 branch.
Apologies for the inconvenience (jextract has been in maintenance mode
for a while, and it was time to step back and bring the implementation
in sync with where the FFM API actually landed).
Cheers
Maurizio
On 13/12/2023 12:51, Duncan Gittins wrote:
> Hi
>
> I've just switched my local jextract from branch jdk22 to the panama
> branch to see the effect of some of the recent code merges in emails
> of last 2 weeks. The jextract in panama did not generate my Java
> bindings for all projects.
>
> Advapi32.h is:
> #include <shlobj_core.h>
>
> Extract command with jdk22 / panama branch:
> jextract.bat --source -ladvapi32 -t advapi --output genxxx
> --include-struct _SERVICE_TABLE_ENTRYW Advapi32.h
>
> In older generated code for _SERVICE_TABLE_ENTRYW I see this
> definition using LPSERVICE_MAIN_FUNCTIONW:
>
> public static LPSERVICE_MAIN_FUNCTIONW lpServiceProc(MemorySegment
> segment, Arena scope) {
> return
> LPSERVICE_MAIN_FUNCTIONW.ofAddress(lpServiceProc$get(segment), scope);
> }
>
> In the new generated code for _SERVICE_TABLE_ENTRYW I see this
> definition which has a cross over "W" to "A" for method
> LPSERVICE_MAIN_FUNCTIONA which does not look right:
>
> public static LPSERVICE_MAIN_FUNCTIONA lpServiceName(MemorySegment
> segment, Arena scope) {
> return
> LPSERVICE_MAIN_FUNCTIONA.ofAddress(lpServiceName$get(segment), scope);
> }
>
> Ignore this message if this is expected.
>
> Kind regards
>
> Duncan
More information about the jextract-dev
mailing list