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.
This commit is contained in:
Janneke Nieuwenhuizen 2024-11-19 19:10:47 +01:00
parent 62130a7f4d
commit 265c54ed03
No known key found for this signature in database
GPG key ID: F3C1A0D9C1D65273

View file

@ -2391,13 +2391,21 @@ (define gcc-boot0
`(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 @@ (define gcc-boot0
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