mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 18:44:20 +08:00
Set vma and lma for segment when using the BFD_ASSEMBLER for COFF format files.
This commit is contained in:
parent
cda43a1d52
commit
dbddefbfe6
@ -1,3 +1,8 @@
|
||||
2000-06-29 Mark Elbrecht <snowball3@bigfoot.com>
|
||||
|
||||
* write.c (set_segment_vma): New: Set vma and lma for a segment.
|
||||
(write_object_file) [BFD_ASSEMBLER && OBJ_COFF && !TE_PE]: Use it.
|
||||
|
||||
2000-06-27 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* config/tc-mips.c (mips_ip): handle "(foo-.-4)" type of
|
||||
|
24
gas/write.c
24
gas/write.c
@ -132,6 +132,9 @@ static void cvt_frag_to_fill PARAMS ((object_headers *, segT, fragS *));
|
||||
static void remove_subsegs PARAMS ((frchainS *, int, fragS **, fragS **));
|
||||
static void relax_and_size_all_segments PARAMS ((void));
|
||||
#endif
|
||||
#if defined (BFD_ASSEMBLER) && defined (OBJ_COFF) && !defined (TE_PE)
|
||||
static void set_segment_vma PARAMS ((bfd *, asection *, PTR));
|
||||
#endif
|
||||
|
||||
/*
|
||||
* fix_new()
|
||||
@ -1348,6 +1351,20 @@ set_symtab ()
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined (BFD_ASSEMBLER) && defined (OBJ_COFF) && !defined (TE_PE)
|
||||
static void
|
||||
set_segment_vma (abfd, sec, xxx)
|
||||
bfd *abfd;
|
||||
asection *sec;
|
||||
PTR xxx ATTRIBUTE_UNUSED;
|
||||
{
|
||||
static bfd_vma addr = 0;
|
||||
|
||||
bfd_set_section_vma (abfd, sec, addr);
|
||||
addr += bfd_section_size (abfd, sec);
|
||||
}
|
||||
#endif /* BFD_ASSEMBLER && OBJ_COFF && !TE_PE */
|
||||
|
||||
/* Finish the subsegments. After every sub-segment, we fake an
|
||||
".align ...". This conforms to BSD4.2 brane-damage. We then fake
|
||||
".fill 0" because that is the kind of frag that requires least
|
||||
@ -1480,6 +1497,13 @@ write_object_file ()
|
||||
relax_and_size_all_segments ();
|
||||
#endif /* BFD_ASSEMBLER */
|
||||
|
||||
#if defined (BFD_ASSEMBLER) && defined (OBJ_COFF) && !defined (TE_PE)
|
||||
/* Now that the segments have their final sizes, run through the
|
||||
sections and set their vma and lma. The !BFD_ASSEMBLER case takes
|
||||
care of this in write_object_file in config/obj-coff.c. */
|
||||
bfd_map_over_sections (stdoutput, set_segment_vma, (char *) 0);
|
||||
#endif
|
||||
|
||||
#ifndef BFD_ASSEMBLER
|
||||
/*
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user