<div dir="ltr">I meant to send this months ago, but after commit aa5f25003554dffa18289f1be535ea23f75c29c3, which is from January 18, 2024, I can no longer use this tool on OSX (Arm) as the generated wrapper for in6 is invalid and cannot compile. I think the commit after this one is where the "--source" flag was removed.<div><br></div><div><font face="arial, sans-serif">Basically, there are "unnamed at /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/netinet6/in6.h:153:2" within the generated java that does not allow it to compile.<br></font><div><br></div><div>I am not able to share the 3rd party library that I am using jextract on due to licensing, but in.h is from the OS. I am assuming this is being generated due to the library including these:</div><div><br></div><div>```</div><div><font face="monospace">#include <signal.h><br>#include <sys/socket.h><br>#include <arpa/inet.h><br>#include <netinet/tcp.h><br>#include <netinet/in.h><br>#include <netdb.h></font><br></div><div>```</div><div><br></div><div><div>Back in January, the generated in6_addr.java looked like this:</div><div><br><font face="monospace">```</font></div><div><font face="monospace">import java.lang.invoke.MethodHandle;<br>import java.lang.invoke.VarHandle;<br>import java.nio.ByteOrder;<br>import java.lang.foreign.*;<br>import static java.lang.foreign.ValueLayout.*;<br>/**<br> * {@snippet :<br> * struct in6_addr {<br> *     union  __u6_addr;<br> * };<br> * }<br> */<br>public class in6_addr {<br><br>    public static MemoryLayout $LAYOUT() {<br>        return constants$41.const$0;<br>    }<br>    /**<br>     * {@snippet :<br>     * union {<br>     *     unsigned char __u6_addr8[16];<br>     *     unsigned short __u6_addr16[8];<br>     *     unsigned int __u6_addr32[4];<br>     * };<br>     * }<br>     */<br>    public static final class __u6_addr {<br><br>        // Suppresses default constructor, ensuring non-instantiability.<br>        private __u6_addr() {}<br>        public static MemoryLayout $LAYOUT() {<br>            return constants$41.const$1;<br>        }<br>        public static MemorySegment __u6_addr8$slice(MemorySegment seg) {<br>            return seg.asSlice(0, 16);<br>        }<br>        public static MemorySegment __u6_addr16$slice(MemorySegment seg) {<br>            return seg.asSlice(0, 16);<br>        }<br>        public static MemorySegment __u6_addr32$slice(MemorySegment seg) {<br>            return seg.asSlice(0, 16);<br>        }<br>        public static long sizeof() { return $LAYOUT().byteSize(); }<br>        public static MemorySegment allocate(SegmentAllocator allocator) { return allocator.allocate($LAYOUT()); }<br>        public static MemorySegment allocateArray(long len, SegmentAllocator allocator) {<br>            return allocator.allocate(MemoryLayout.sequenceLayout(len, $LAYOUT()));<br>        }<br>        public static MemorySegment ofAddress(MemorySegment addr, Arena scope) { return RuntimeHelper.asArray(addr, $LAYOUT(), 1, scope); }<br>    }<br><br>    public static MemorySegment __u6_addr$slice(MemorySegment seg) {<br>        return seg.asSlice(0, 16);<br>    }<br>    public static long sizeof() { return $LAYOUT().byteSize(); }<br>    public static MemorySegment allocate(SegmentAllocator allocator) { return allocator.allocate($LAYOUT()); }<br>    public static MemorySegment allocateArray(long len, SegmentAllocator allocator) {<br>        return allocator.allocate(MemoryLayout.sequenceLayout(len, $LAYOUT()));<br>    }<br>    public static MemorySegment ofAddress(MemorySegment addr, Arena scope) { return RuntimeHelper.asArray(addr, $LAYOUT(), 1, scope); }<br>}</font><br></div><div>```</div></div><div><br></div><div>Now I get lines like this in the generated java. I attached the full version:</div><div><span style="font-family:monospace">private static final GroupLayout $LAYOUT = MemoryLayout.structLayout(</span><br style="font-family:monospace"><span style="font-family:monospace">        in6_addr.union (unnamed at /Library/Developer/</span><span style="font-family:monospace">CommandLineTools/SDKs/</span><span style="font-family:monospace">MacOSX14.sdk/usr/include/</span><span style="font-family:monospace">netinet6/in6.h:153:2).layout()</span><span style="font-family:monospace">.withName("__u6_addr")</span><br style="font-family:monospace"><span style="font-family:monospace">    ).withName("in6_addr");</span><br></div><div><br></div><div><br></div></div></div>