aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJanneke Nieuwenhuizen <janneke@gnu.org>2024-11-19 19:10:47 +0100
committerJanneke Nieuwenhuizen <janneke@gnu.org>2024-12-03 08:39:01 +0100
commit265c54ed03f49f26729d7d1b570c0c4440fc98ca (patch)
tree59d314d33761e02b6accd1c013538b8cfc254ba0
parent62130a7f4dc6aa3c364b1eec1f33d5a5d6177795 (diff)
downloadguix-265c54ed03f49f26729d7d1b570c0c4440fc98ca.tar
guix-265c54ed03f49f26729d7d1b570c0c4440fc98ca.tar.gz
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