PowerPC EABI and segment alignment
Michael Eager
eager@eagercon.com
Mon Jul 24 20:16:00 GMT 2006
The PowerPC SVR4 ABI specifies that segments are to be aligned
on a 64K (0x10000) boundary. The PowerPC EABI specifies that there
are no alignment restrictions for loadable segments. Probably
the best segment alignment value for EABI would be 8 or 16 bytes.
The alignment is controlled by ELF_MAXPAGESIZE and ELF_MINPAGESIZE
in bfd/elf32-ppc.c and MAXPAGESIZE and COMMONPAGESIZE in
ld/emulparams/elf32ppc.sh. These are set to the appropriate values
for SVR4, even when binutils configured for powerpc-eabi.
The configuration in bfd and ld for powerpc-sysv and powerpc-eabi
are identical.
What would be the best way to change binutils to have the correct
segment alignment for powerpc-eabi?
I can separate the powerpc-eabi config in bfd and ld from
powerpc-sysv. Another way is to set a create an EABI define.
There's also some code which creates a define for QNX in the
bfd config and uses this to set ELF_MAXPAGESIZE. (The define is
only set for ARM, and only referenced in PPC, so this seems to be
cruft.)
--
Michael Eager eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306 650-325-8077
More information about the Binutils
mailing list