This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Exporting structure layout


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]