Blob Blame Raw
Common subdirectories: ../binutils-2.24.orig/ld/emulparams and ld/emulparams
Common subdirectories: ../binutils-2.24.orig/ld/emultempl and ld/emultempl
diff -up ../binutils-2.24.orig/ld/ldlang.c ld/ldlang.c
--- a/ld/ldlang.c	2014-05-09 10:35:04.589504928 +0100
+++ b/ld/ldlang.c	2014-05-09 10:35:55.515661478 +0100
@@ -7096,6 +7096,18 @@
 	       && little != NULL)
 	format = little;
 
+      if (getenv ("LD_FORCE_LE") != NULL)
+	{
+	  if (strcmp (format, "elf64-powerpc") == 0)
+	    format = "elf64-powerpcle";
+	  else if (strcmp (format, "elf32-powerpc") == 0)
+	    format = "elf32-powerpcle";
+	  else if (strcmp (format, "elf64-big") == 0)
+	    format = "elf64-little";
+	  else if (strcmp (format, "elf32-big") == 0)
+	    format = "elf32-little";
+	}
+
       output_target = format;
     }
 }
Only in ld: ldlang.c.orig
diff -up ../binutils-2.24.orig/ld/ldmain.c ld/ldmain.c
--- a/ld/ldmain.c	2014-05-09 10:35:04.593504941 +0100
+++ b/ld/ldmain.c	2014-05-09 10:35:55.515661478 +0100
@@ -603,6 +603,18 @@
 	}
     }
 
+  if ((strncmp (emulation, "elf64ppc", 8) == 0
+       || strncmp (emulation, "elf32ppc", 8) == 0)
+      && getenv ("LD_FORCE_LE") != NULL)
+    {
+      size_t len = strlen (emulation);
+      char *le = xmalloc (len + 2);
+      memcpy (le, emulation, 5);
+      le[5] = 'l';
+      memcpy (le + 6, emulation + 5, len - 4);
+      emulation = le;
+    }
+
   return emulation;
 }
 
Only in ld: ldmain.c.orig
Common subdirectories: ../binutils-2.24.orig/ld/ldscripts and ld/ldscripts
Common subdirectories: ../binutils-2.24.orig/ld/.libs and ld/.libs
Common subdirectories: ../binutils-2.24.orig/ld/po and ld/po
Common subdirectories: ../binutils-2.24.orig/ld/scripttempl and ld/scripttempl
Common subdirectories: ../binutils-2.24.orig/ld/testsuite and ld/testsuite
Common subdirectories: ../binutils-2.24.orig/ld/tmpdir and ld/tmpdir