PATCH to ld fixes the MIPS ECOFF --embedded-relocs BFD check bug

Michael Sokolov msokolov@ivan.Harhan.ORG
Wed Jun 7 17:45:00 GMT 2000


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));
  }
  


More information about the Binutils mailing list