* elf.c (assign_file_positions_for_load_sections): We can
	require fewer phdrs than expected.
ld/
	* emultempl/elf-generic.em (gdl_map_segments): Only allow header
	shrinkage for the first few iterations.
ld/testsuite/
	* ld-elf/header.d: New.
	* ld-elf/header.t: New.
	* ld-elf/header.s: New.
This commit is contained in:
Nathan Sidwell 2007-01-11 12:23:53 +00:00
parent e2204714e2
commit 59e0647f0d
8 changed files with 56 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2007-01-11 Nathan Sidwell <nathan@codesourcery.com>
* elf.c (assign_file_positions_for_load_sections): We can
require fewer phdrs than expected.
2007-01-08 Kazu Hirata <kazu@codesourcery.com>
* archures.c (bfd_mach_cpu32_fido): Rename to bfd_mach_fido.

View File

@ -4275,7 +4275,7 @@ assign_file_positions_for_load_sections (bfd *abfd,
elf_tdata (abfd)->program_header_size = alloc * bed->s->sizeof_phdr;
else
BFD_ASSERT (elf_tdata (abfd)->program_header_size
== alloc * bed->s->sizeof_phdr);
>= alloc * bed->s->sizeof_phdr);
if (alloc == 0)
{

View File

@ -1,3 +1,8 @@
2007-01-11 Nathan Sidwell <nathan@codesourcery.com>
* emultempl/elf-generic.em (gdl_map_segments): Only allow header
shrinkage for the first few iterations.
2007-01-08 Kai Tietz <kai.tietz@onevision.com>
* configure.tgt: Renamed target x86_64-*-mingw64 to

View File

@ -60,7 +60,17 @@ gld${EMULATION_NAME}_map_segments (bfd_boolean need_layout)
einfo ("%F%P: map sections to segments failed: %E\n");
if (phdr_size != elf_tdata (output_bfd)->program_header_size)
need_layout = TRUE;
{
if (tries > 6)
/* The first few times we allow any change to
phdr_size . */
need_layout = TRUE;
else if (phdr_size < elf_tdata (output_bfd)->program_header_size)
/* After that we only allow the size to grow. */
need_layout = TRUE;
else
elf_tdata (output_bfd)->program_header_size = phdr_size;
}
}
}
while (need_layout && --tries);

View File

@ -1,3 +1,9 @@
2007-01-11 Nathan Sidwell <nathan@codesourcery.com>
* ld-elf/header.d: New.
* ld-elf/header.t: New.
* ld-elf/header.s: New.
2007-01-08 Kai Tietz <kai.tietz@onevision.com>
* ld-fastcall/fastcall.exp: Renamed target x86_64-*-mingw64 to

View File

@ -0,0 +1,12 @@
# ld: -T header.t -z max-page-size=0x10000
# objdump: -hpw
#...
Program Header:
LOAD off 0x0*0000000 vaddr 0x0*0010000 paddr 0x0*0010000 align 2..16
filesz 0x0*001002[48] memsz 0x0*001002[48] flags rwx
Sections:
Idx Name Size VMA *LMA *File off Algn Flags
0 .text 0*000ffac 0*001007[48] 0*001007[48] 0*000007[48] 2... CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 0*0000004 0*002002[04] 0*002002[04] 0*001002[04] 2... CONTENTS, ALLOC, LOAD, DATA

View File

@ -0,0 +1,8 @@
.text
.globl main
main:
.rept 0x4000 - 0x15
.long 0xfedcba98
.endr
.data
.long 0x76543210

View File

@ -0,0 +1,8 @@
ENTRY(main)
SECTIONS
{
. = 0x10000 + SIZEOF_HEADERS;
.text : { *(.text) }
.data : { *(.data) }
}