<div dir="ltr">Hi Panama team<div><br></div><div>Thanks again for quickly addressing the issues. I was able to upgrade my library to JDK 22 using the latest jextract version on all three platforms.</div><div><br></div><div>All issues that I have reported previously are fixed.</div><div><br></div><div><br></div><div>I've discovered one more issue. For a particular type (on macOS), jextract creates code because a dependency was not specified. I guess it would be supposed to abort with an error regarding the missing dependency. The problem is quickly fixed if the dependency is included.</div><div><br></div><div>The minimal commands to reproduce it is:</div><div><br></div><div>JEXTRACT=../../../../jextract/build/jextract/bin/jextract<br>SDK_DIR=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk<br><br>$JEXTRACT --output ../../src/main/java \<br>  -I $SDK_DIR/usr/include \<br>  -lIOKit.framework \<br>  --header-class-name IOKit \<br>  --target-package net.codecrete.usb.macos.gen.iokit \<br>  --include-struct IOCFPlugInInterfaceStruct \<br>  iokit_helper.h<br></div><div><br></div><div>The file iokit_helper.h:</div><div><br></div><div>#include <IOKit/usb/IOUSBLib.h><br>#include <IOKit/IOCFPlugIn.h><br></div><div><br></div><div>The missing dependency is CFUUIDBytes and the path to it is that a typedef (REFIID) referring to it is used in a parameter of a function pointer (QueryInterface) of IOCFPlugInInterfaceStruct.</div><div><br></div><div><br></div><div>I notice that I don't use any "--include-typedef" anymore. Since jextract resolves typedefs to the underlying type, only the referred struct needs to be included. Is there any use left for "--include-typedef"?</div><div><br></div><div><br></div><div>The biggest annoyance is that the generated code still needs to be manually modified (unless I've overlooked a jextract option). The details can be found here: <a href="https://github.com/manuelbl/JavaDoesUSB/blob/jdk22/java-does-usb/jextract/README.md">https://github.com/manuelbl/JavaDoesUSB/blob/jdk22/java-does-usb/jextract/README.md</a></div><div><br></div><div>It's related to two cases of locating the library at run-time: referring to major version 1 of libudev in Linux, and referring to a system framework on macOS.</div><div><br></div><div>Regards</div><div>Manuel</div><div><br></div></div>