This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Option to print word size, alignment on the target platform
- From: Igor Bukanov <igor dot bukanov at gmail dot com>
- To: gcc at gcc dot gnu dot org
- Date: Wed, 25 Jan 2006 11:20:27 +0100
- Subject: Option to print word size, alignment on the target platform
Is there any option to ask GCC to print various size and alignment
info on the target platform? This would be very nice during cross
compilation when one can not run the executables to autoconfigure for
such parameters.
Currently I consider for that a hack like copiling the following source:
#include <stddef.h>
union aligned_fields {
double d;
void (*f)();
...
};
struct align_test {
union aligned_fields u1;
char c;
};
const char DATA_POINTER_SIZE[sizeof(void *)];
const char FUNCTION_POINTER_SIZE[sizeof(void (*)())];
const char UNIVERSAL_ALIGN[offsetof(struct align_test, c)];
const char SHORT_SIZE[sizeof(short)];
and then running "nm --print-size" from binutils for the target on it to get:
00000004 00000004 C DATA_POINTER_SIZE
00000004 00000004 C FUNCTION_POINTER_SIZE
00000002 00000002 C SHORT_SIZE
00000008 00000008 C UNIVERSAL_ALIGN
But I doubt that this is reliable. So perhaps there is something like
gcc -print-target-info ?