summary refs log tree commit diff
path: root/gnu/packages/patches/binutils-loongson-workaround.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/binutils-loongson-workaround.patch')
-rw-r--r--gnu/packages/patches/binutils-loongson-workaround.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/gnu/packages/patches/binutils-loongson-workaround.patch b/gnu/packages/patches/binutils-loongson-workaround.patch
new file mode 100644
index 0000000000..f43572a53d
--- /dev/null
+++ b/gnu/packages/patches/binutils-loongson-workaround.patch
@@ -0,0 +1,34 @@
+Enable the workaround for the Loongson 2F bug by default.
+
+Patch by Mark H Weaver <mhw@netris.org>.
+
+--- binutils/gas/config/tc-mips.c.orig	2012-09-04 10:21:03.000000000 -0400
++++ binutils/gas/config/tc-mips.c	2013-10-06 02:23:21.651983768 -0400
+@@ -910,10 +910,10 @@
+ };
+ 
+ /* ...likewise -mfix-loongson2f-jump.  */
+-static bfd_boolean mips_fix_loongson2f_jump;
++static bfd_boolean mips_fix_loongson2f_jump = FALSE;
+ 
+ /* ...likewise -mfix-loongson2f-nop.  */
+-static bfd_boolean mips_fix_loongson2f_nop;
++static bfd_boolean mips_fix_loongson2f_nop = TRUE;
+ 
+ /* True if -mfix-loongson2f-nop or -mfix-loongson2f-jump passed.  */
+ static bfd_boolean mips_fix_loongson2f;
+--- binutils/gas/testsuite/gas/mips/mips.exp.orig	2012-09-04 10:17:13.000000000 -0400
++++ binutils/gas/testsuite/gas/mips/mips.exp	2013-10-06 02:23:21.663983768 -0400
+@@ -91,6 +91,12 @@
+ 
+     # Catch because the variable won't be set the first time through.
+     catch {unset mips_arches}
++
++    # Disable the loongson2f nop fix by default, because most of the
++    # existing test cases for mips will fail otherwise.
++    global ASFLAGS
++    set old_ASFLAGS "$ASFLAGS"
++    set ASFLAGS "$ASFLAGS -mno-fix-loongson2f-nop"
+ }
+ 
+ # mips_arch_create ARCH GPRSIZE EXTENDS PROPS AS_FLAGS OBJDUMP_FLAGS \