<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>Hi Remy,<br>
We have fixed a related issue here:</p>
<p><a class="moz-txt-link-freetext" href="https://github.com/openjdk/jextract/pull/101">https://github.com/openjdk/jextract/pull/101</a></p>
<p>Hopefully this addresses your problem.</p>
<p>Cheers<br>
Maurizio<br>
</p>
<div class="moz-cite-prefix">On 30/01/2023 16:39, Maurizio
Cimadamore wrote:<br>
</div>
<blockquote type="cite" cite="mid:0f263042-9186-50ae-18e3-50a00efd5496@oracle.com">
<div class="markdown-here-wrapper" data-md-url="" style="">
<p style="margin: 0px 0px 1.2em !important;">Hey Remi,<br>
while jextract does not support bitfields, it should also not
crash when seeing them :-)</p>
<p style="margin: 0px 0px 1.2em !important;">I have tried
extracting a simple header containing the struct in your email
using the jextract binary at [1].</p>
<p style="margin: 0px 0px 1.2em !important;">I could
successfully extract it, and obtain a <code style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;">my_struct</code>
Java wrapper, with this layout:</p>
<pre style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;"><code style="font-size: 0.85em; font-family: Consolas, Inconsolata, Courier, monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block !important;">static final GroupLayout $struct$LAYOUT = MemoryLayout.structLayout(
MemoryLayout.structLayout(
MemoryLayout.paddingLayout(1).withName("foo"),
MemoryLayout.paddingLayout(31)
)
).withName("my_struct");
</code></pre>
<p style="margin: 0px 0px 1.2em !important;">As expected, the
contents of the struct are just padding.</p>
<p style="margin: 0px 0px 1.2em !important;">That said, I’m
beginnin to suspect that you are seeing this issue with a more
recent version of jextract, perhaps the one for the “panama”
branch? We have made recent changes to how padding layouts are
defined - e.g. so that their size/alignment must be a multiple
of 8. This would cause the issue you are seeing.</p>
<p style="margin: 0px 0px 1.2em !important;">Maurizio</p>
<p style="margin: 0px 0px 1.2em !important;">On 30/01/2023
13:25, Rémy Maucherat wrote:</p>
<div class="markdown-here-exclude">
<blockquote type="cite" cite="mid:CANwj8Zr=TWZ-DMDLb0q9rNOmCAf0Mz0vE6yyouHM6140Ux2Xzw@mail.gmail.com">
<pre class="moz-quote-pre" wrap="">Hi,
When processing certain bit-fields, jextract produces an error:
"Invalid bitSize: 1"
In addition to not being really helpful (it took me some time to find
out what the problem was since no reference to a location is given,
nor that this is about a bit-field).
A typical example causing the error is something like:
struct my_struct {
unsigned int foo : 1;
};
Obviously we don't have these sort of memory saving "smart" fancy
tricks in Java (which is probably good since they can cause serious
problems when misused ...).
Is support for this planned eventually, or should bit-fields be
avoided for Panama compatibility ?
Thanks !
Rémy
</pre>
</blockquote>
</div>
<div title="MDH:PHA+SGV5IFJlbWksPGJyPndoaWxlIGpleHRyYWN0IGRvZXMgbm90IHN1cHBvcnQgYml0ZmllbGRzLCBpdCBzaG91bGQgYWxzbyBub3QgY3Jhc2ggd2hlbiBzZWVpbmcgdGhlbSA6LSk8L3A+PHA+SSBoYXZlIHRyaWVkIGV4dHJhY3RpbmcgYSBzaW1wbGUgaGVhZGVyIGNvbnRhaW5pbmcgdGhlIHN0cnVj
dCBpbiB5b3VyIGVtYWlsIHVzaW5nIHRoZSBqZXh0cmFjdCBiaW5hcnkgYXQgWzFdLjwvcD48cD5J
IGNvdWxkIHN1Y2Nlc3NmdWxseSBleHRyYWN0IGl0LCBhbmQgb2J0YWluIGEgYG15X3N0cnVjdGAg
SmF2YSB3cmFwcGVyLCB3aXRoIHRoaXMgbGF5b3V0OjwvcD48cD5gYGA8YnI+c3RhdGljIGZpbmFs
Jm5ic3A7IEdyb3VwTGF5b3V0ICRzdHJ1Y3QkTEFZT1VUID0gTWVtb3J5TGF5b3V0LnN0cnVjdExh
eW91dCg8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IE1lbW9y
eUxheW91dC5zdHJ1Y3RMYXlvdXQoPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBNZW1vcnlMYXlvdXQucGFkZGluZ0xh
eW91dCgxKS53aXRoTmFtZSgiZm9vIiksPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBNZW1vcnlMYXlvdXQucGFkZGlu
Z0xheW91dCgzMSk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
ICk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICkud2l0aE5hbWUoIm15X3N0cnVjdCIpOzxicj5gYGA8
L3A+PHA+QXMgZXhwZWN0ZWQsIHRoZSBjb250ZW50cyBvZiB0aGUgc3RydWN0IGFyZSBqdXN0IHBh
ZGRpbmcuPC9wPjxwPlRoYXQgc2FpZCwgSSdtIGJlZ2lubmluIHRvIHN1c3BlY3QgdGhhdCB5b3Ug
YXJlIHNlZWluZyB0aGlzIGlzc3VlIHdpdGggYSBtb3JlIHJlY2VudCB2ZXJzaW9uIG9mIGpleHRy
YWN0LCBwZXJoYXBzIHRoZSBvbmUgZm9yIHRoZSAicGFuYW1hIiBicmFuY2g/IFdlIGhhdmUgbWFk
ZSByZWNlbnQgY2hhbmdlcyB0byBob3cgcGFkZGluZyBsYXlvdXRzIGFyZSBkZWZpbmVkIC0gZS5n
LiBzbyB0aGF0IHRoZWlyIHNpemUvYWxpZ25tZW50IG11c3QgYmUgYSBtdWx0aXBsZSBvZiA4LiBU
aGlzIHdvdWxkIGNhdXNlIHRoZSBpc3N1ZSB5b3UgYXJlIHNlZWluZy48L3A+PHA+TWF1cml6aW88
YnI+PC9wPjxwPjxicj48L3A+PGRpdiBjbGFzcz0ibW96LWNpdGUtcHJlZml4Ij5PbiAzMC8wMS8y
MDIzIDEzOjI1LCBSw6lteSBNYXVjaGVyYXQgd3JvdGU6PGJyPjwvZGl2PjxibG9ja3F1b3RlIHR5
cGU9ImNpdGUiIGNpdGU9Im1pZDpDQU53ajhacj1UV1otRE1ETGIwcTlyTk9tQ0FmME16MHZFNnl5
b3VITTYxNDBVeDJYendAbWFpbC5nbWFpbC5jb20iPjxwcmUgY2xhc3M9Im1vei1xdW90ZS1wcmUi
IHdyYXA9IiI+SGksCgpXaGVuIHByb2Nlc3NpbmcgY2VydGFpbiBiaXQtZmllbGRzLCBqZXh0cmFj
dCBwcm9kdWNlcyBhbiBlcnJvcjoKIkludmFsaWQgYml0U2l6ZTogMSIKSW4gYWRkaXRpb24gdG8g
bm90IGJlaW5nIHJlYWxseSBoZWxwZnVsIChpdCB0b29rIG1lIHNvbWUgdGltZSB0byBmaW5kCm91
dCB3aGF0IHRoZSBwcm9ibGVtIHdhcyBzaW5jZSBubyByZWZlcmVuY2UgdG8gYSBsb2NhdGlvbiBp
cyBnaXZlbiwKbm9yIHRoYXQgdGhpcyBpcyBhYm91dCBhIGJpdC1maWVsZCkuCgpBIHR5cGljYWwg
ZXhhbXBsZSBjYXVzaW5nIHRoZSBlcnJvciBpcyBzb21ldGhpbmcgbGlrZToKc3RydWN0IG15X3N0
cnVjdCB7CiAgIHVuc2lnbmVkIGludCBmb28gOiAxOwp9OwoKT2J2aW91c2x5IHdlIGRvbid0IGhh
dmUgdGhlc2Ugc29ydCBvZiBtZW1vcnkgc2F2aW5nICJzbWFydCIgZmFuY3kKdHJpY2tzIGluIEph
dmEgKHdoaWNoIGlzIHByb2JhYmx5IGdvb2Qgc2luY2UgdGhleSBjYW4gY2F1c2Ugc2VyaW91cwpw
cm9ibGVtcyB3aGVuIG1pc3VzZWQgLi4uKS4KCklzIHN1cHBvcnQgZm9yIHRoaXMgcGxhbm5lZCBl
dmVudHVhbGx5LCBvciBzaG91bGQgYml0LWZpZWxkcyBiZQphdm9pZGVkIGZvciBQYW5hbWEgY29t
cGF0aWJpbGl0eSA/CgpUaGFua3MgIQoKUsOpbXkKPC9wcmU+PC9ibG9ja3F1b3RlPg==" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0;"></div>
</div>
</blockquote>
</body>
</html>