>From differential https://reviews.freebsd.org/D20367
https://svnweb.freebsd.org/base?view=revision&revision=348347

Due to missing relocation support, libdwarf was misparsing unlinked object 
files, breaking CTF data generation on FreeBSD PowerPC64.

Sending it in directly so it can land here too.

Thanks!

-- 
  Brandon Bergren
  g...@bdragon.rtk0.net
Index: libdwarf/libdwarf_reloc.c
===================================================================
--- libdwarf/libdwarf_reloc.c	(revision 3740)
+++ libdwarf/libdwarf_reloc.c	(working copy)
@@ -44,7 +44,7 @@
 	case DW_ISA_SPARC:
 		return (is64 ? R_SPARC_UA64 : R_SPARC_UA32);
 	case DW_ISA_PPC:
-		return (R_PPC_ADDR32);
+		return (is64 ? R_PPC64_ADDR64 : R_PPC_ADDR32);
 	case DW_ISA_ARM:
 		return (R_ARM_ABS32);
 	case DW_ISA_MIPS:
@@ -97,6 +97,12 @@
 		if (rel_type == R_PPC_ADDR32)
 			return (4);
 		break;
+	case EM_PPC64:
+		if (rel_type == R_PPC_ADDR32)
+			return (4);
+		else if (rel_type == R_PPC64_ADDR64)
+			return (8);
+		break;
 	case EM_MIPS:
 		if (rel_type == R_MIPS_32)
 			return (4);
_______________________________________________
Elftoolchain-developers mailing list
Elftoolchain-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/elftoolchain-developers

Reply via email to