New jextract build released (22-jextract+6-47)
Jorn Vernee
jorn.vernee at oracle.com
Thu Nov 7 14:32:30 UTC 2024
Hey all,
We just published a new jextract build. We've added a new build for the
Linux/AArch64 platform. Besides that, these are the other user-facing
changes that are worth highlighting:
7903782: clang warnings and diagnostics below warning level should be
logged as well [1]
7903779: unify logger messages to show position whenever possible [2]
7903776: jextract generates uncompilable code when C identifier with the
name from "java.lang" classes is used [3]
7903777: jextract layout for enum with big constant values is wrong [4]
7903755: multi header support and special syntax for header file [5]
I want to call special attention to the last entry in this list: It is
no longer required to specify the full path of the header file you want
to extract. The header file just has to be findable in one of the
locations specified through the -I options. This should simplify the
command line somewhat. It is also possible to use the form <foo.h> to
pass a file to jextract (given sufficient shell quoting [6]). Doing this
mimics the behavior of a header file included like #include <foo.h>
within a C source file, which looks in a standard list of system
directories for the included header file. Though the exact directories
that are searched is platform dependent, it's possible to show the
header file search directories by using a compile_flags.txt [7] file
with the --verbose option. For example, by default, on my Windows
machine, this prints something like:
#include "..." search starts here:
#include <...> search starts here:
C:\<path to>\jextract\runtime\conf\jextract
C:\<path to>\<current directory>
C:\Program Files\Microsoft Visual
Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\winrt
End of search list.
This latest version of jextract still targets Java 22 as a baseline, but
the generated bindings will work on Java 23 as well. If you find any
issues with the new build, please report them back to this mailing list
(jextract-dev at openjdk.org).
Thanks,
Jorn
[1]: https://bugs.openjdk.org/browse/CODETOOLS-7903782
[2]: https://bugs.openjdk.org/browse/CODETOOLS-7903779
[3]: https://bugs.openjdk.org/browse/CODETOOLS-7903776
[4]: https://bugs.openjdk.org/browse/CODETOOLS-7903777
[5]: https://bugs.openjdk.org/browse/CODETOOLS-7903755
[6]: '<foo.h>' in most shells, ^^<foo.h^^> in cmd.exe
[7]:
https://github.com/openjdk/jextract/blob/master/doc/GUIDE.md#additional-clang-options
More information about the jextract-dev
mailing list