Blame SOURCES/binutils-gas-build-note-relocs.patch

38fe89
--- binutils.orig/gas/write.c	2019-07-01 16:23:28.133707500 +0100
38fe89
+++ binutils-2.32/gas/write.c	2019-07-01 16:24:50.699130611 +0100
38fe89
@@ -1891,7 +1891,8 @@ create_obj_attrs_section (void)
38fe89
 static void
38fe89
 create_note_reloc (segT           sec,
38fe89
 		   symbolS *      sym,
38fe89
-		   bfd_size_type  offset,
38fe89
+		   bfd_size_type  note_offset,
38fe89
+		   bfd_size_type  desc2_offset,
38fe89
 		   int            reloc_type,
38fe89
 		   bfd_vma        addend,
38fe89
 		   char *         note)
38fe89
@@ -1901,10 +1902,10 @@ create_note_reloc (segT           sec,
38fe89
   reloc = XNEW (struct reloc_list);
38fe89
 
38fe89
   /* We create a .b type reloc as resolve_reloc_expr_symbols() has already been called.  */
38fe89
-  reloc->u.b.sec   = sec;
38fe89
-  reloc->u.b.s     = symbol_get_bfdsym (sym);
38fe89
+  reloc->u.b.sec           = sec;
38fe89
+  reloc->u.b.s             = symbol_get_bfdsym (sym);
38fe89
   reloc->u.b.r.sym_ptr_ptr = & reloc->u.b.s;
38fe89
-  reloc->u.b.r.address     = offset;
38fe89
+  reloc->u.b.r.address     = note_offset + desc2_offset;
38fe89
   reloc->u.b.r.addend      = addend;
38fe89
   reloc->u.b.r.howto       = bfd_reloc_type_lookup (stdoutput, reloc_type);
38fe89
 
38fe89
@@ -1929,12 +1930,12 @@ create_note_reloc (segT           sec,
38fe89
       if (target_big_endian)
38fe89
 	{
38fe89
 	  if (bfd_arch_bits_per_address (stdoutput) <= 32)
38fe89
-	    note[offset + 3] = addend;
38fe89
+	    note[desc2_offset + 3] = addend;
38fe89
 	  else
38fe89
-	    note[offset + 7] = addend;
38fe89
+	    note[desc2_offset + 7] = addend;
38fe89
 	}
38fe89
       else
38fe89
-	note[offset] = addend;
38fe89
+	note[desc2_offset] = addend;
38fe89
     }
38fe89
 }
38fe89
 
38fe89
@@ -2037,10 +2038,10 @@ maybe_generate_build_notes (void)
38fe89
 	memcpy (note + 12, "GA$?3a1", 8);
38fe89
 
38fe89
 	/* Create a relocation to install the start address of the note...  */
38fe89
-	create_note_reloc (sec, sym, total_size + 20, desc_reloc, 0, note);
38fe89
+	create_note_reloc (sec, sym, total_size, 20, desc_reloc, 0, note);
38fe89
 
38fe89
 	/* ...and another one to install the end address.  */
38fe89
-	create_note_reloc (sec, sym, total_size + desc2_offset, desc_reloc,
38fe89
+	create_note_reloc (sec, sym, total_size, desc2_offset, desc_reloc,
38fe89
 			   bfd_get_section_size (bsym->section),
38fe89
 			   note);
38fe89