guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

30/35: gnu: commencement: gcc-boot0: Support the 64bit Hurd.


From: guix-commits
Subject: 30/35: gnu: commencement: gcc-boot0: Support the 64bit Hurd.
Date: Tue, 3 Dec 2024 02:45:52 -0500 (EST)

janneke pushed a commit to branch master
in repository guix.

commit 265c54ed03f49f26729d7d1b570c0c4440fc98ca
Author: Janneke Nieuwenhuizen <janneke@gnu.org>
AuthorDate: Tue Nov 19 19:10:47 2024 +0100

    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.
---
 gnu/packages/commencement.scm | 36 +++++++++++++++++++++++++++++-------
 1 file 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]