* libecoff.h (ecoff_data_type): Add linker field.
* ecoff.c (ecoff_write_object_contents): Check new tdata linker field, rather than outsymbols being non-NULL, to decide whether to output the symbols and relocs. (ecoff_bfd_final_link): Set new tdata linker field to true.
This commit is contained in:
parent
d2c71068e8
commit
469984d1f6
@ -1,5 +1,11 @@
|
||||
Mon Jun 6 10:57:28 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
||||
|
||||
* libecoff.h (ecoff_data_type): Add linker field.
|
||||
* ecoff.c (ecoff_write_object_contents): Check new tdata linker
|
||||
field, rather than outsymbols being non-NULL, to decide whether to
|
||||
output the symbols and relocs.
|
||||
(ecoff_bfd_final_link): Set new tdata linker field to true.
|
||||
|
||||
* ecoff.c (ecoff_bfd_copy_private_bfd_data): Don't try to copy
|
||||
data to a non-ECOFF file.
|
||||
|
||||
|
11
bfd/ecoff.c
11
bfd/ecoff.c
@ -2918,11 +2918,10 @@ ecoff_write_object_contents (abfd)
|
||||
goto error_return;
|
||||
|
||||
/* Build the external symbol information. This must be done before
|
||||
writing out the relocs so that we know the symbol indices. The
|
||||
condition checks makes sure this object was not created by
|
||||
ecoff_bfd_final_link, since if it was we do not want to tamper
|
||||
with the external symbols. */
|
||||
if (bfd_get_outsymbols (abfd) != (asymbol **) NULL)
|
||||
writing out the relocs so that we know the symbol indices. We
|
||||
don't do this if this BFD was created by the backend linker,
|
||||
since it will have already handled the symbols and relocs. */
|
||||
if (! ecoff_data (abfd)->linker)
|
||||
{
|
||||
symhdr->iextMax = 0;
|
||||
symhdr->issExtMax = 0;
|
||||
@ -4388,6 +4387,8 @@ ecoff_bfd_final_link (abfd, info)
|
||||
|
||||
bfd_get_symcount (abfd) = symhdr->iextMax + symhdr->isymMax;
|
||||
|
||||
ecoff_data (abfd)->linker = true;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -121,6 +121,9 @@ typedef struct ecoff_tdata
|
||||
linking. */
|
||||
asection **symndx_to_section;
|
||||
|
||||
/* True if this BFD was written by the backend linker. */
|
||||
boolean linker;
|
||||
|
||||
} ecoff_data_type;
|
||||
|
||||
/* Each canonical asymbol really looks like this. */
|
||||
@ -233,7 +236,7 @@ extern boolean ecoff_get_section_contents PARAMS ((bfd *abfd,
|
||||
file_ptr offset,
|
||||
bfd_size_type count));
|
||||
|
||||
#define ecoff_bfd_copy_private_bfd_data _bfd_generic_bfd_copy_private_bfd_data
|
||||
extern boolean ecoff_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *));
|
||||
#define ecoff_bfd_copy_private_section_data \
|
||||
_bfd_generic_bfd_copy_private_section_data
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user