* elf32-arm.c (elf32_arm_symbian_begin_write_processing): Clear

D_PAGED.
	(elf32_arm_symbian_modify_segment_map): Don't
	reset includes_filehdr and includes_phdrs here.
This commit is contained in:
Mark Mitchell 2004-11-04 18:57:34 +00:00
parent 7bea7009e2
commit c3c766200a
2 changed files with 30 additions and 10 deletions

View File

@ -1,3 +1,10 @@
2004-11-01 Mark Mitchell <mark@codesourcery.com>
* elf32-arm.c (elf32_arm_symbian_begin_write_processing): Clear
D_PAGED.
(elf32_arm_symbian_modify_segment_map): Don't
reset includes_filehdr and includes_phdrs here.
2004-11-04 Daniel Jacobowitz <dan@debian.org>
* Makefile.am (BFD32_BACKENDS, BFD32_BACKENDS_CFILES): Replace

View File

@ -5575,6 +5575,25 @@ static struct bfd_elf_special_section const
static bfd_boolean
elf32_arm_symbian_modify_segment_map
PARAMS ((bfd *, struct bfd_link_info *));
static void
elf32_arm_symbian_begin_write_processing
PARAMS ((bfd *, bfd_boolean));
static void
elf32_arm_symbian_begin_write_processing (abfd, linker)
bfd *abfd;
bfd_boolean linker;
{
/* BPABI objects are never loaded directly by an OS kernel; they are
processed by a postlinker first, into an OS-specific format. If
the D_PAGED bit is set on the file, BFD will align segments on
page boundaries, so that an OS can directly map the file. With
BPABI objects, that just results in wasted space. In addition,
because we clear the D_PAGED bit, map_sections_to_segments will
recognize that the program headers should not be mapped into any
loadable segment. */
abfd->flags &= ~D_PAGED;
}
static bfd_boolean
elf32_arm_symbian_modify_segment_map (abfd, info)
@ -5584,16 +5603,6 @@ elf32_arm_symbian_modify_segment_map (abfd, info)
struct elf_segment_map *m;
asection *dynsec;
/* The first PT_LOAD segment will have the program headers and file
headers in it by default -- but BPABI object files should not
include these headers in any loadable segment. */
for (m = elf_tdata (abfd)->segment_map; m != NULL; m = m->next)
if (m->p_type == PT_LOAD)
{
m->includes_filehdr = 0;
m->includes_phdrs = 0;
}
/* BPABI shared libraries and executables should have a PT_DYNAMIC
segment. However, because the .dynamic section is not marked
with SEC_LOAD, the generic ELF code will not create such a
@ -5625,6 +5634,10 @@ elf32_arm_symbian_modify_segment_map (abfd, info)
#undef elf_backend_special_sections
#define elf_backend_special_sections elf32_arm_symbian_special_sections
#undef elf_backend_begin_write_processing
#define elf_backend_begin_write_processing \
elf32_arm_symbian_begin_write_processing
#undef elf_backend_modify_segment_map
#define elf_backend_modify_segment_map elf32_arm_symbian_modify_segment_map