From: Nick Clifton Date: Wed, 6 Dec 2006 14:36:41 +0000 (+0000) Subject: Define ATTRIBUTE_PACKED and use as necessary. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4fd454c89d63c73fd5e99ce5eb2a3174fcfd4f5d;p=binutils-gdb.git Define ATTRIBUTE_PACKED and use as necessary. --- diff --git a/include/ChangeLog b/include/ChangeLog index e7e2895c7f1..7f3966ca1f6 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,8 @@ +2006-12-05 Michael Tautschnig + Nick Clifton + + * ansidecl.h (ATTRIBUTE_PACKED): Define. + 2006-11-30 Andrew Stubbs J"orn Rennecke diff --git a/include/ansidecl.h b/include/ansidecl.h index a1a765d63f3..793b1e654df 100644 --- a/include/ansidecl.h +++ b/include/ansidecl.h @@ -361,6 +361,12 @@ So instead we use the macro below and test it against specific values. */ # endif /* GNUC >= 3.0 */ #endif /* ATTRIBUTE_ALIGNED_ALIGNOF */ +/* Useful for structures whoes layout must much some binary specification + regardless of the alignment and padding qualities of the compiler. */ +#ifndef ATTRIBUTE_PACKED +# define ATTRIBUTE_PACKED __attribute__ ((packed)) +#endif + /* We use __extension__ in some places to suppress -pedantic warnings about GCC extensions. This feature didn't work properly before gcc 2.8. */ diff --git a/include/coff/ChangeLog b/include/coff/ChangeLog index 60a85873fe9..b8af0fe5b5e 100644 --- a/include/coff/ChangeLog +++ b/include/coff/ChangeLog @@ -1,3 +1,10 @@ +2006-12-05 Michael Tautschnig + Nick Clifton + + * external.h (struct external_aouthdr): Add ATTRIBUTE_PACKED. + (struct external_syment): Likewise. + (union external_auxent): Likewise. + 2006-11-14 Phil Lello * pe.h: Added defines for IMAGE_SUBSYSTEM_EFI_ROM and diff --git a/include/coff/external.h b/include/coff/external.h index e38fb1bab4e..8dabc8ab484 100644 --- a/include/coff/external.h +++ b/include/coff/external.h @@ -50,7 +50,7 @@ typedef struct external_aouthdr char entry[4]; /* entry pt. */ char text_start[4]; /* base of text used for this file */ char data_start[4]; /* base of data used for this file */ - } + } ATTRIBUTE_PACKED AOUTHDR; #define AOUTHDRSZ 28 @@ -164,7 +164,7 @@ struct external_syment char e_type[2]; char e_sclass[1]; char e_numaux[1]; -}; +} ATTRIBUTE_PACKED ; #define SYMENT struct external_syment #define SYMESZ 18 @@ -256,7 +256,7 @@ union external_auxent char x_tvlen[2]; /* length of .tv */ char x_tvran[2][2]; /* tv range */ } x_tv; /* info about .tv section (in auxent of symbol .tv)) */ -}; +} ATTRIBUTE_PACKED ; #define AUXENT union external_auxent #define AUXESZ 18 diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index 3a661cbeb3e..47d9d478fae 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,8 @@ +2006-12-05 Michael Tautschnig + Nick Clifton + + * external.h (struct Elf_External_Versym): Use ATTRIBUTE_PACKED. + 2006-10-28 Richard Sandiford * mips.h (R_MIPS_GLOB_DAT): Define diff --git a/include/elf/external.h b/include/elf/external.h index 5985e94b022..21450f00595 100644 --- a/include/elf/external.h +++ b/include/elf/external.h @@ -245,11 +245,7 @@ typedef struct { typedef struct { unsigned char vs_vers[2]; -} -#ifdef __GNUC__ - __attribute__ ((packed)) -#endif - Elf_External_Versym; +} ATTRIBUTE_PACKED Elf_External_Versym; /* Structure for syminfo section. */ typedef struct