X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/f17e1802ec325e5cc86d4908f05ac69aafdf39da..7bf82f5ede57c9c5344ddb1d4dcfe694eb306bef:/gnu/packages/commencement.scm diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index cc86d06c65..d4511ed914 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2019, 2020 Marius Bakke ;;; Copyright © 2020 Timothy Sample ;;; Copyright © 2020 Guy Fleury Iteriteka +;;; Copyright © 2021 Chris Marusich ;;; ;;; This file is part of GNU Guix. ;;; @@ -381,7 +382,7 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\" (inputs '()) (propagated-inputs '()) (native-inputs - `(("nyacc-source" ,(origin (inherit (package-source nyacc)) + `(("nyacc-source" ,(origin (inherit (package-source nyacc-0.99)) (snippet #f))) ("mes" ,%bootstrap-mes-rewired) ("mescc-tools" ,%bootstrap-mescc-tools) @@ -477,7 +478,7 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\" (propagated-inputs '()) (native-inputs `(("mes" ,mes-boot) - ("nyacc-source" ,(origin (inherit (package-source nyacc)) + ("nyacc-source" ,(origin (inherit (package-source nyacc-0.99)) (snippet #f))) ("mescc-tools" ,%bootstrap-mescc-tools) ,@(%boot-gash-inputs))) @@ -788,14 +789,17 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\" (substitute* "config.h" (("#define GETCWD_BROKEN 1") "#undef GETCWD_BROKEN")) (let ((config.h (open-file "config.h" "a"))) - (display (string-append " + (display (string-append + ;; XXX TODO: remove nested ,(string-append ...) and + ;; store file name on next rebuild cycle + ,(string-append " // tcc: error: undefined symbol 'enable_hostname_completion' #define enable_hostname_completion(on_or_off) 0 -// /gnu/store/cq0cmv35s9dhilx14zaghlc08gpc0hwr-tcc-boot0-0.9.26-6.c004e9a/lib/libc.a: error: 'sigprocmask' defined twice +// /gnu/store/" "cq0cmv35s9dhilx14zaghlc08gpc0hwr-tcc-boot0-0.9.26-6.c004e9a/lib/libc.a: error: 'sigprocmask' defined twice #define HAVE_POSIX_SIGNALS 1 #define endpwent(x) 0 -") +")) config.h) (close config.h)) #t)) @@ -2815,6 +2819,13 @@ exec " gcc "/bin/" program "--disable-shared" "--enable-languages=c,c++" + ;; boot-triplet inserts "guix" in the triplet. + ,@(if (equal? "powerpc64le-guix-linux-gnu" (boot-triplet)) + ;; On POWER9 (little endian) glibc needs the + ;; 128-bit long double type. + '("--with-long-double-128") + '()) + ;; libstdc++ cannot be built at this stage ;; ("Link tests are not allowed after ;; GCC_NO_EXECUTABLES."). @@ -3304,7 +3315,11 @@ memoized as a function of '%current-system'." `(("bison" ,bison-boot0) ("texinfo" ,texinfo-boot0) ("perl" ,perl-boot0) - ("python" ,python-boot0))) + ("python" ,python-boot0) + ,@(if (target-powerpc?) + `(("powerpc64le-patch" ,@(search-patches + "glibc-ldd-powerpc.patch"))) + '()))) (inputs `( ;; The boot inputs. That includes the bootstrap libc. We don't want ;; it in $CPATH, hence the 'pre-configure' phase above. @@ -3455,6 +3470,10 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" ;; This time we need 'msgfmt' to install all the libc.mo files. (native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash) + ,@(if (target-powerpc?) + `(("powerpc64le-patch" ,@(search-patches + "glibc-ldd-powerpc.patch"))) + '()) ("gettext" ,gettext-boot0))) (propagated-inputs @@ -3495,9 +3514,19 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" (arguments `(#:guile ,%bootstrap-guile #:implicit-inputs? #f - #:allowed-references ("out" ,glibc-final) + #:allowed-references + ,@(match (%current-system) + ((? target-powerpc?) + `(("out" ,glibc-final ,static-bash-for-glibc))) + (_ + `(("out" ,glibc-final)))) ,@(package-arguments binutils))) - (inputs (%boot2-inputs)))) + (inputs + (match (%current-system) + ((? target-powerpc?) + `(("bash" ,static-bash-for-glibc) + ,@(%boot2-inputs))) + (_ (%boot2-inputs)))))) (define libstdc++ ;; Intermediate libstdc++ that will allow us to build the final GCC @@ -3853,15 +3882,20 @@ COREUTILS-FINAL vs. COREUTILS, etc." "libc-static"))) #t)))) - (native-search-paths (package-native-search-paths gcc)) - (search-paths (package-search-paths gcc)) + (native-search-paths + (append (package-native-search-paths gcc) + (package-native-search-paths libc))) ;GUIX_LOCPATH + (search-paths + (append (package-search-paths gcc) + (package-search-paths libc))) (license (package-license gcc)) (synopsis "Complete GCC tool chain for C/C++ development") (description "This package provides a complete GCC tool chain for C/C++ development to be installed in user profiles. This includes GCC, as well as libc (headers and -binaries, plus debugging symbols in the @code{debug} output), and Binutils.") +binaries, plus debugging symbols in the @code{debug} output), and Binutils. GCC +is the GNU Compiler Collection.") (home-page "https://gcc.gnu.org/") (outputs '("out" "debug" "static"))