diff options
| author | Janneke Nieuwenhuizen <janneke@gnu.org> | 2024-11-02 18:27:51 +0100 |
|---|---|---|
| committer | Janneke Nieuwenhuizen <janneke@gnu.org> | 2024-12-03 08:33:12 +0100 |
| commit | 94dfb68d4378377dfe49d6653e4ed668cecd2783 (patch) | |
| tree | c2fe829d6cec5d4192d52e780a0dd563bb9ac896 /gnu/packages/make-bootstrap.scm | |
| parent | ae2213ed989051a680cf76582b758fd748838688 (diff) | |
gnu: Add basic support for x86_64-pc-gnu target, aka 64bit Hurd.
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Update comment on where
to find shared linker name.
(make-raw-bag): Also use raw-build-guile3 when building for the 64bit Hurd.
* gnu/packages/cross-base.scm (cross-kernel-headers*): Use target-hurd?
instead of custom "i586..." matching to also use xhurd-core-headers for
target-hurd64.
* gnu/packages/make-bootstrap.scm (package-with-relocatable-glibc)
[native-inputs]: Move final-inputs before cross-packages.
(%binutils-static)[arguments]: When building for the 64bit Hurd, add
"lt_cv_prog_compiler_static_works=yes", "lt_cv_prog_compiler_static_works_CXX=yes"
to #:make-flags to convince to actually link the binaries statically.
(make-guile-static)[arguments]: When building for the 64bit Hurd, add
"lt_cv_prog_compiler_static_works=yes" to #:configure-flags to convince
libtool to actually link guile statically.
* guix/platforms/x86.scm (x86_64-gnu): New exported variable.
* guix/utils.scm (target-hurd64? system-hurd64?): New procedures.
Diffstat (limited to 'gnu/packages/make-bootstrap.scm')
| -rw-r--r-- | gnu/packages/make-bootstrap.scm | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index edc536bff4f..689d48d342b 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm | |||
| @@ -145,7 +145,10 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." | |||
| 145 | target | 145 | target |
| 146 | #:xbinutils (cross-binutils target) | 146 | #:xbinutils (cross-binutils target) |
| 147 | #:libc (cross-bootstrap-libc target)))) | 147 | #:libc (cross-bootstrap-libc target)))) |
| 148 | `(("cross-gcc" ,(package | 148 | `(,@(%final-inputs) |
| 149 | ;; As versions for gcc and cross-gcc can differ, make sure to have | ||
| 150 | ;; cross-gcc behind gcc in CPLUS_INCLUDE_PATH. | ||
| 151 | ("cross-gcc" ,(package | ||
| 149 | (inherit xgcc) | 152 | (inherit xgcc) |
| 150 | (search-paths | 153 | (search-paths |
| 151 | ;; Ensure the cross libc headers appears on the | 154 | ;; Ensure the cross libc headers appears on the |
| @@ -154,8 +157,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." | |||
| 154 | (variable "CROSS_CPLUS_INCLUDE_PATH") | 157 | (variable "CROSS_CPLUS_INCLUDE_PATH") |
| 155 | (files '("include"))) | 158 | (files '("include"))) |
| 156 | (package-search-paths gcc))))) | 159 | (package-search-paths gcc))))) |
| 157 | ("cross-binutils" ,(cross-binutils target)) | 160 | ("cross-binutils" ,(cross-binutils target)))) |
| 158 | ,@(%final-inputs))) | ||
| 159 | `(("libc" ,(glibc-for-bootstrap glibc)) | 161 | `(("libc" ,(glibc-for-bootstrap glibc)) |
| 160 | ("libc:static" ,(glibc-for-bootstrap glibc) "static") | 162 | ("libc:static" ,(glibc-for-bootstrap glibc) "static") |
| 161 | ("gcc" ,(gcc-for-bootstrap glibc)) | 163 | ("gcc" ,(gcc-for-bootstrap glibc)) |
| @@ -395,10 +397,15 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." | |||
| 395 | ((#:configure-flags flags _ ...) | 397 | ((#:configure-flags flags _ ...) |
| 396 | flags))) | 398 | flags))) |
| 397 | #:make-flags | 399 | #:make-flags |
| 398 | (match (memq #:make-flags (package-arguments binutils)) | 400 | #~(append |
| 399 | ((#:make-flags flags _ ...) | 401 | #$(if (target-hurd64?) |
| 400 | flags) | 402 | #~'("lt_cv_prog_compiler_static_works=yes" |
| 401 | (_ #~'())) | 403 | "lt_cv_prog_compiler_static_works_CXX=yes") |
| 404 | #~'()) | ||
| 405 | #$(match (memq #:make-flags (package-arguments binutils)) | ||
| 406 | ((#:make-flags flags _ ...) | ||
| 407 | flags) | ||
| 408 | (_ #~'()))) | ||
| 402 | #:strip-flags #~'("--strip-all") | 409 | #:strip-flags #~'("--strip-all") |
| 403 | #:phases | 410 | #:phases |
| 404 | #~(modify-phases %standard-phases | 411 | #~(modify-phases %standard-phases |
| @@ -642,6 +649,9 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." | |||
| 642 | 649 | ||
| 643 | #$@(if (target-hurd?) | 650 | #$@(if (target-hurd?) |
| 644 | #~("--disable-jit") | 651 | #~("--disable-jit") |
| 652 | #~()) | ||
| 653 | #$@(if (target-hurd64?) | ||
| 654 | #~("lt_cv_prog_compiler_static_works=yes") | ||
| 645 | #~()))) | 655 | #~()))) |
| 646 | ((#:phases phases '%standard-phases) | 656 | ((#:phases phases '%standard-phases) |
| 647 | #~(modify-phases #$phases | 657 | #~(modify-phases #$phases |
