summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJanneke Nieuwenhuizen <janneke@gnu.org>2024-11-19 19:10:47 +0100
committerJanneke Nieuwenhuizen <janneke@gnu.org>2024-11-24 08:27:08 +0100
commit636bfab83864d614e1bb7e74db3810fe8f9b0fc9 (patch)
tree882389952d445e1db004985f0fb5e2c0fe30f87a
parent5f6e1725357abea8b870ce7272053961be6dc52f (diff)
gnu: commencement: gcc-boot0: Support the 64bit Hurd.
Asking gcc to "--disable-shared" is overridden for libcc1 by the build system, which lateron fails with install: cannot stat '.libs/libcc1.so.0.0.0': No such file or directory because no shared libcc1.so.0.0.0 could actually be built. * gnu/packages/commencement.scm (gcc-boot0)[arguments]: When building for the 64bit Hurd, add CC_FOR_BUILD to #:make-flags to convince gmp's configure that gcc works. Also, add phase "patch-libcc1-static" to avoid attempting a shared libcc1.
-rw-r--r--gnu/packages/commencement.scm36
1 files changed, 29 insertions, 7 deletions
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 2a32485fc0..3dbd27b660 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2391,13 +2391,21 @@ exec " gcc "/bin/" program
`(let* ((libc (assoc-ref %build-inputs "libc"))
(libc-native (or (assoc-ref %build-inputs "libc-native")
libc)))
- `(,(string-append "LDFLAGS="
- "-Wl,-rpath=" libc-native "/lib "
- "-Wl,-dynamic-linker "
- "-Wl," libc-native ,(glibc-dynamic-linker
- (match (%current-system)
- ("x86_64-linux" "i686-linux")
- (_ (%current-system))))))))
+ `(,,@(append
+ `((string-append "LDFLAGS="
+ "-Wl,-rpath=" libc-native "/lib "
+ "-Wl,-dynamic-linker "
+ "-Wl," libc-native
+ ,(glibc-dynamic-linker
+ (match (%current-system)
+ ("x86_64-linux" "i686-linux")
+ (_ (%current-system))))))
+ (if (target-hurd64?)
+ ;;Convince gmp's configure that gcc works
+ (list (string-append
+ "CC_FOR_BUILD=gcc"
+ " -Wno-implicit-function-declaration"))
+ '())))))
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'unpack-gmp&co
@@ -2421,6 +2429,20 @@ exec " gcc "/bin/" program
char-set:letter)
#$(package-name lib)))
(list gmp-6.0 mpfr mpc)))))
+ #$@(if (target-hurd64?)
+ #~((add-after 'unpack 'patch-libcc1-static
+ (lambda _
+ ;;Attempting to build libcc1 shared gives:
+ ;; install: cannot stat '.libs/libcc1.so.0.0.0':
+ ;; No such file or directory
+ ;;convince gcc harder to not build a shared libcc1
+ (substitute* "Makefile.def"
+ (("module= libcc1; [^;]*;") "module= libcc1;"))
+ (substitute* "Makefile.in"
+ (("(--target=[$][{]target_alias[}]) --enable-shared \\\\"
+ all target)
+ (string-append target " \\"))))))
+ #~())
#$(match (%current-system)
((or "i686-linux" "x86_64-linux")
#~(add-before 'configure 'fix-libcc1