Exporting structure layout
Florian Weimer
fw@deneb.enyo.de
Wed May 11 20:37:00 GMT 2005
* Paolo Bonzini:
>> Additional members are permitted, and the fields can be order. In
>> order to create a portable Ada interface, I have to write a short C
>> program which uses sizeof and offsetof to extract the structure
>> layout. In theory, it is possible to create compile-time-only tests
>> suitable for cross-compilation (compile-time constant expressions,
>> invalid zero-length arrays, and a binary search), but this is rather
>> messy.
>
> Look at AC_COMPUTE_INT.
This is exactly the thing I'm scared of. 8-)
> It should be easy to start from there and do a macro like
>
> GCC_COMPUTE_MEMBERS_SIZE_OFFSET([#include <poll.h>],
> [struct pollfd],
> [fd events revents]).
If we'd use such a macro to extract values of various E* constants,
bootstrap times would increase significantly, even while not
cross-compiling. That's why I think it's not a viable approach.
More information about the Gcc
mailing list