* 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.

Reply via email to