This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: Fix "FAIL: objcopy (simple copy)" for tic54x-coff


TI relocation has a r_reserved field. But we never initialize it and
we get some random values. This patch makes sure that it is always
initialized.


H.J.
----
bfd/

2005-02-21  H.J. Lu  <hongjiu.lu@intel.com>

	* coffcode.h (coff_write_relocs): Clear the r_reserved field
	if COFF_REL_HAS_R_RESERVED is defined before swapping out
	relocation.

include/coff/

2005-02-21  H.J. Lu  <hongjiu.lu@intel.com>

	* ti.h (COFF_REL_HAS_R_RESERVED): Defined.
	* tic80.h (COFF_REL_HAS_R_RESERVED): Defined.

--- binutils/bfd/coffcode.h.ti	2005-02-21 10:18:36.000000000 -0800
+++ binutils/bfd/coffcode.h	2005-02-21 13:03:05.178091748 -0800
@@ -2510,6 +2510,10 @@ coff_write_relocs (abfd, first_undef)
       if (bfd_seek (abfd, s->rel_filepos, SEEK_SET) != 0)
 	return FALSE;
 
+#ifdef COFF_REL_HAS_R_RESERVED
+      memset (&dst.r_reserved, 0, sizeof (dst.r_reserved));
+#endif
+
 #ifdef COFF_WITH_PE
       if (obj_pe (abfd) && s->reloc_count >= 0xffff)
 	{
--- binutils/include/coff/ti.h.ti	2003-08-07 09:02:59.000000000 -0700
+++ binutils/include/coff/ti.h	2005-02-21 12:49:58.767373577 -0800
@@ -441,6 +441,9 @@ union external_auxent {
 
 /********************** RELOCATION DIRECTIVES **********************/
 
+/* Relocation has r_reserved.  */
+#define COFF_REL_HAS_R_RESERVED 1
+
 struct external_reloc_v0
 {
   char r_vaddr[4];
--- binutils/include/coff/tic80.h.ti	2001-03-15 15:06:40.000000000 -0800
+++ binutils/include/coff/tic80.h	2005-02-21 12:50:23.729673155 -0800
@@ -81,6 +81,9 @@ struct external_scnhdr
 
 /********************** RELOCATION DIRECTIVES **********************/
 
+/* Relocation has r_reserved.  */
+#define COFF_REL_HAS_R_RESERVED 1
+
 /* The external reloc has an offset field, because some of the reloc
    types on the h8 don't have room in the instruction for the entire
    offset - eg the strange jump and high page addressing modes.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]