[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: binutils 2.16.1: objcopy broken on solaris x86?
From: |
Nick Clifton |
Subject: |
Re: binutils 2.16.1: objcopy broken on solaris x86? |
Date: |
Fri, 29 Jul 2005 15:28:17 +0100 |
User-agent: |
Mozilla Thunderbird 1.0 (X11/20041206) |
Hi Andrew,
< LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**16
> LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
According to the solaris linker and library guide
http://docs.sun.com/app/docs/doc/817-1984/6mhm7pl2a?a=view#chapter6-34713
p_align should be 2**16 for 32 bit segments, and 2**20 for 64 bit
segments. There seems to be a little inconsistency here, because on
x86-64, the solaris linker generates p_align as 2**16, but the solaris
documentation suggests it should be 2**20. Either way, the p_align
values after objcopy do not meet the requirements.
[I do not have access to an x86 Solaris 10 environment, so the following
is guesswork].
For the 32-bit case I think that the problem might be because of this
definition in the file ld/emulparams/elf_i386_ldso.sh:
MAXPAGESIZE=0x1000
If you change this to:
MAXPAGESIZE=0x10000
and then rebuild the linker, does the (32-bit) problem go away ?
(We will need to make a different version of this file for Solaris if
this is so, but that can be done later).
You may also find that it is necessary to change the definition of
ELF_MAXPAGESIZE in bfd/elf_i386.c:
#define ELF_MAXPAGESIZE 0x1000
I am not sure about the 64-bit case though. so lets leave that for now.
Cheers
Nick