aboutsummaryrefslogtreecommitdiff
path: root/gnu/build/cross-toolchain.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/build/cross-toolchain.scm')
-rw-r--r--gnu/build/cross-toolchain.scm8
1 files changed, 8 insertions, 0 deletions
diff --git a/gnu/build/cross-toolchain.scm b/gnu/build/cross-toolchain.scm
index 9746be3e50..1933b3e49a 100644
--- a/gnu/build/cross-toolchain.scm
+++ b/gnu/build/cross-toolchain.scm
@@ -48,6 +48,12 @@
;; Search path for target headers when cross-compiling.
(map (cut string-append "CROSS_" <>) %gcc-include-paths))
+(define* (patch-genmultilib-shebang #:key inputs native-inputs #:allow-other-keys)
+ "Patch-shebang in the gcc/genmultilib file doesn't work as it contains several
+scripts inside, each with a #!/bin/sh that needs patching."
+ (substitute* "gcc/genmultilib"
+ (("#!/bin/sh") (string-append "#!" (which "sh")))))
+
(define* (make-cross-binutils-visible #:key outputs inputs target
#:allow-other-keys)
"Create symlinks for 'as', 'nm', and 'ld' in the \"out\" output, under
@@ -173,6 +179,8 @@ C_*INCLUDE_PATH."
"Modify PHASES to include everything needed to build a cross-GCC for TARGET,
a target triplet."
(modify-phases phases
+ (add-after 'unpack 'patch-genmultilib-shebang
+ patch-genmultilib-shebang)
(add-before 'configure 'set-cross-path
;; This mingw32 target checking logic should match that of target-mingw?
;; in (guix utils), but (guix utils) is too large too copy over to the