* write.c (write_contents): Don't crash if seginfo is NULL.
* config/obj-ecoff.c (ecoff_frob_file): Write out register masks by modifying .reginfo section, not by directly modifying BFD backend data.
This commit is contained in:
parent
a785321604
commit
f37449aaf3
3 changed files with 34 additions and 8 deletions
|
@ -1,3 +1,11 @@
|
|||
Mon Oct 11 17:18:51 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
||||
|
||||
* write.c (write_contents): Don't crash if seginfo is NULL.
|
||||
|
||||
* config/obj-ecoff.c (ecoff_frob_file): Write out register masks
|
||||
by modifying .reginfo section, not by directly modifying BFD
|
||||
backend data.
|
||||
|
||||
Mon Oct 11 14:11:32 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
|
||||
|
||||
* config/ho-sunos.h: remove extern time declaration
|
||||
|
|
|
@ -4605,16 +4605,33 @@ ecoff_frob_file ()
|
|||
|
||||
#undef SET
|
||||
|
||||
/* Fill in the register masks. */
|
||||
{
|
||||
asection *regsec;
|
||||
struct ecoff_reginfo s;
|
||||
|
||||
regsec = bfd_make_section (stdoutput, REGINFO);
|
||||
know (regsec != NULL);
|
||||
|
||||
if (bfd_get_section_contents (stdoutput, regsec, (PTR) &s,
|
||||
(file_ptr) 0, sizeof s) == false)
|
||||
as_fatal ("Can't read REGINFO section");
|
||||
|
||||
#ifdef TC_MIPS
|
||||
/* Get the MIPS register masks. It's probably not worth setting up
|
||||
a generic interface for this. */
|
||||
ecoff_data (stdoutput)->gprmask = mips_gprmask;
|
||||
ecoff_data (stdoutput)->cprmask[0] = mips_cprmask[0];
|
||||
ecoff_data (stdoutput)->cprmask[1] = mips_cprmask[1];
|
||||
ecoff_data (stdoutput)->cprmask[2] = mips_cprmask[2];
|
||||
ecoff_data (stdoutput)->cprmask[3] = mips_cprmask[3];
|
||||
/* Fill in the MIPS register masks. It's probably not worth
|
||||
setting up a generic interface for this. */
|
||||
s.gprmask = mips_gprmask;
|
||||
s.cprmask[0] = mips_cprmask[0];
|
||||
s.cprmask[1] = mips_cprmask[1];
|
||||
s.cprmask[2] = mips_cprmask[2];
|
||||
s.cprmask[3] = mips_cprmask[3];
|
||||
#endif
|
||||
|
||||
if (bfd_set_section_contents (stdoutput, regsec, (PTR) &s,
|
||||
(file_ptr) 0, sizeof s) == false)
|
||||
as_fatal ("Can't write REGINFO section");
|
||||
}
|
||||
|
||||
ecoff_data (stdoutput)->raw_size = offset;
|
||||
ecoff_data (stdoutput)->raw_syments = buf;
|
||||
|
||||
|
|
|
@ -718,7 +718,8 @@ write_contents (abfd, sec, xxx)
|
|||
fragS *f;
|
||||
|
||||
/* Write out the frags. */
|
||||
if (! (bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS))
|
||||
if (seginfo == NULL
|
||||
|| ! (bfd_get_section_flags (abfd, sec) & SEC_HAS_CONTENTS))
|
||||
return;
|
||||
|
||||
for (f = seginfo->frchainP->frch_root;
|
||||
|
|
Loading…
Reference in a new issue