This is the mail archive of the
binutils@sourceware.cygnus.com
mailing list for the binutils project.
PATCH to ld fixes the MIPS ECOFF --embedded-relocs BFD check bug
- To: binutils at sourceware dot cygnus dot com
- Subject: PATCH to ld fixes the MIPS ECOFF --embedded-relocs BFD check bug
- From: msokolov at ivan dot Harhan dot ORG (Michael Sokolov)
- Date: Wed, 7 Jun 00 19:45:17 CDT
The patch below fixes the bug just discussed with Ian. While fixing it I also
fixed an obvious bug nearby under the obviously-correct rule.
Does this patch need a copyright assignment? I snailed my form to the FSF on
2000-05-02, but still no response. Does it always take this long? I'm in the
USA.
--
Michael Sokolov Harhan Engineering Laboratory
Public Service Agent International Free Computing Task Force
International Engineering and Science Task Force
615 N GOOD LATIMER EXPY STE #4
DALLAS TX 75204-5852 USA
Phone: +1-214-824-7693 (Harhan Eng Lab office)
E-mail: msokolov@ivan.Harhan.ORG (ARPA TCP/SMTP) (UUCP coming soon)
2000-06-07 Michael Sokolov <msokolov@ivan.Harhan.ORG>
* emultempl/mipsecoff.em (gld{EMULATION_NAME}_after_open): Require all
input objects to be ECOFF.
(check_sections): einfo takes %B, not %P, to print a BFD name.
Index: emultempl/mipsecoff.em
===================================================================
RCS file: /cvs/src/src/ld/emultempl/mipsecoff.em,v
retrieving revision 1.4
diff -c -3 -p -r1.4 mipsecoff.em
*** mipsecoff.em 2000/02/29 05:53:53 1.4
--- mipsecoff.em 2000/06/08 00:29:31
*************** gld${EMULATION_NAME}_after_open ()
*** 69,74 ****
--- 69,79 ----
{
asection *datasec;
+ /* As first-order business, make sure that each input BFD is ECOFF. It
+ better be, as we are directly calling an ECOFF backend function. */
+ if (strncmp (bfd_get_target (abfd), "ecoff", 5))
+ einfo ("%F%B: all input objects must be ECOFF for --embedded-relocs\n");
+
datasec = bfd_get_section_by_name (abfd, ".sdata");
/* Note that we assume that the reloc_count field has already
*************** check_sections (abfd, sec, sdatasec)
*** 113,119 ****
if ((bfd_get_section_flags (abfd, sec) & SEC_CODE) == 0
&& sec != (asection *) sdatasec
&& sec->reloc_count != 0)
! einfo ("%P%X: section %s has relocs; can not use --embedded-relocs\n",
abfd, bfd_get_section_name (abfd, sec));
}
--- 118,124 ----
if ((bfd_get_section_flags (abfd, sec) & SEC_CODE) == 0
&& sec != (asection *) sdatasec
&& sec->reloc_count != 0)
! einfo ("%B%X: section %s has relocs; can not use --embedded-relocs\n",
abfd, bfd_get_section_name (abfd, sec));
}