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

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