On Thu, Feb 10, 2005 at 03:21:11PM -0800, Christopher Dobbs wrote:
[...]
#define PACKED __attribute__ ((__packed__))
typedef struct { // 512 byte header
unsigned char bc[3]; // Boot Code Signature
unsigned char signature[8]; // signature string "LIBV10"
PACKED unsigned long dir; // offset of first dir block
PACKED unsigned long freechain; // offset of first block
PACKED unsigned long eof; // offset of end of
freechain
unsigned char label[41]; // Volume Label
unsigned long attr; // Volume Attributes
char passcode[16]; // Volume Password
unsigned char fill[428]; // Filler
} header;
This compiled to 512 for me, but when I put it in my header, it came out
516.
If you mean that this exact same structure (word for word) with the
same attribute settings produces different field offsets when you put
it in your header file instead of compiling it by itself, then that
suggests either:
- there's something else in your header interfering with this, such
as a #define or typedef; or
- there's a bug in tcc.
It would be useful if you can at least figure out which of these is
the case. For example you could try inserting the structure at
different positions in your header file, or you could start with just
the structure by itself and progressively add pieces of your header
file, until the size change is observed.
-Dave Dodge
_______________________________________________
Tinycc-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/tinycc-devel