<div><div dir="auto">Thanks Mikael.</div></div><div dir="auto">Any others thoughts ?</div><div dir="auto"><br></div><div dir="auto">/Frank</div><div dir="auto"><br></div><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">You'll need to use C's offsetof() and sizeof() to discover (a) any<br>
internal padding between end of a previous field and the start of a<br>
new field, basically offsetof(struct, f2) - (offsetof(struct, f1) +<br>
sizeof(struct.f1)) gives that internal padding, and (2) any trailing<br>
padding, given by sizeof(struct) - (offsetof(struct, lastField) +<br>
sizeof(struct.lastField)).  Beware that the contents of padding is<br>
unspecified, so might not be all-bits-zero.<br>
<br>
You'll need to derive these values via the C compiler.  In theory you<br>
could derive them in pure Erlang given the types involved, but that'd<br>
require not only a C type parser but also a complete description of<br>
the machine's C ABI.  I would't go that way.<br>
On Fri, Dec 7, 2018 at 9:49 AM Frank Muller <<a href="mailto:frank.muller.erl@gmail.com" target="_blank">frank.muller.erl@gmail.com</a>> wrote:<br>
><br>
> Hello Vance<br>
><br>
> Fantastic!!!<br>
><br>
> It would be great if you can share some code.<br>
> I’m totally lost with this tricky problem and no one was able to help me.<br>
><br>
> Thanks in advance...<br>
><br>
> /Frank<br>
>><br>
>> On Fri, Dec 7, 2018 at 9:51 AM Frank Muller <<a href="mailto:frank.muller.erl@gmail.com" target="_blank">frank.muller.erl@gmail.com</a>> wrote:<br>
>> > Question: how can I derive the GCC's padding, and automatically add it to my Erlang binary?<br>
>><br>
>> Frank,<br>
>><br>
>> I used to write linked-in drivers for embedded systems which provided<br>
>> C library APIs. Back in those days I was building for 32 & 64 bit, x86<br>
>> & SPARC. I used GNU autotools to figure out the target environment and<br>
>> generate macros in my Erlang header files. It all worked quite<br>
>> smoothly in the end.  I'd be happy to send you an example project if<br>
>> you think it'd helpful.<br>
>><br>
>> To your specific question I think the autoconf macro AC_CHECK_ALIGNOF<br>
>> does what you want:<br>
>>      <a href="https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Generic-Compiler-Characteristics.html" rel="noreferrer" target="_blank">https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Generic-Compiler-Characteristics.html</a><br>
>><br>
>> --<br>
>>      -Vance<br>
><br>
> _______________________________________________<br>
> erlang-questions mailing list<br>
> <a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
> <a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div></div>