summary refs log tree commit diff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-09-28 22:32:44 +0200
committerLudovic Courtès <ludo@gnu.org>2016-09-28 22:44:38 +0200
commit789f09a073a7239aee2e551d52b5b5ea9f41bb90 (patch)
tree22cac442d56dafa055f2049e5d6278dbfa46ab8f /gnu/packages/patches
parent9e01589469abd89e035450d29026f0e14add6801 (diff)
downloadguix-789f09a073a7239aee2e551d52b5b5ea9f41bb90.tar.gz
gnu: binutils: Work around Bash 4.2 bug.
Fixes a 'binutils-cross-boot0' build failure on mips64el.

Reported at
<https://lists.gnu.org/archive/html/guix-devel/2016-09/msg01083.html>.

* gnu/packages/patches/binutils-mips-bash-bug.patch: New file.
* gnu/packages/base.scm (binutils)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add it.
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/binutils-mips-bash-bug.patch22
1 files changed, 22 insertions, 0 deletions
diff --git a/gnu/packages/patches/binutils-mips-bash-bug.patch b/gnu/packages/patches/binutils-mips-bash-bug.patch
new file mode 100644
index 0000000000..08d3a79749
--- /dev/null
+++ b/gnu/packages/patches/binutils-mips-bash-bug.patch
@@ -0,0 +1,22 @@
+Bash 4.2.0(1)-release, which we use during bootstrap, does not yield the
+"x" case in:
+
+  case x"$EMULATION_NAME" in x) ;; *) ;; esac
+
+when 'EMULATION_NAME' is undefined.  Bash 4.3.30(1)-release doesn't have this
+problem.  Work around it.
+
+This Bash bug was fixed
+in <http://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-007>.
+
+--- a/ld/emulparams/elf32bmipn32-defs.sh
++++ b/ld/emulparams/elf32bmipn32-defs.sh
+@@ -13,7 +13,7 @@ LITTLE_OUTPUT_FORMAT="elf32-littlemips"
+ TEMPLATE_NAME=elf32
+ EXTRA_EM_FILE=mipself
+ 
+-case x"$EMULATION_NAME" in
++case "x$EMULATION_NAME" in
+ xelf32*n32*) ELFSIZE=32 ;;
+ xelf64*) ELFSIZE=64 ;;
+ x) ;;