* Debugging missing architecture support
@ 2024-02-14 13:26 Konrad Hinsen
2024-02-14 18:12 ` Efraim Flashner
2024-02-14 20:26 ` Saku Laesvuori
0 siblings, 2 replies; 9+ messages in thread
From: Konrad Hinsen @ 2024-02-14 13:26 UTC (permalink / raw)
To: Guix Devel
Hi Guix experts,
in trying to build a Docker image for ARM64 (aarch64-linux), I am
hitting errors of the kind
"package git-annex@10.20230926 does not support aarch64-linux"
There doesn't seem to be anything specifically in the package
definitions that precludes building for aarch64-linux, so I suspect it's
either a dependency or the build system that lacks the required support.
How would I go about debugging such issues? Maybe the causes are simple
and I can fix them. But I don't even know where to start.
Cheers,
Konrad.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Debugging missing architecture support
2024-02-14 13:26 Debugging missing architecture support Konrad Hinsen
@ 2024-02-14 18:12 ` Efraim Flashner
2024-02-14 20:33 ` Ricardo Wurmus
2024-02-14 20:26 ` Saku Laesvuori
1 sibling, 1 reply; 9+ messages in thread
From: Efraim Flashner @ 2024-02-14 18:12 UTC (permalink / raw)
To: Konrad Hinsen; +Cc: Guix Devel
[-- Attachment #1: Type: text/plain, Size: 1173 bytes --]
On Wed, Feb 14, 2024 at 02:26:46PM +0100, Konrad Hinsen wrote:
> Hi Guix experts,
>
> in trying to build a Docker image for ARM64 (aarch64-linux), I am
> hitting errors of the kind
>
> "package git-annex@10.20230926 does not support aarch64-linux"
>
> There doesn't seem to be anything specifically in the package
> definitions that precludes building for aarch64-linux, so I suspect it's
> either a dependency or the build system that lacks the required support.
>
> How would I go about debugging such issues? Maybe the causes are simple
> and I can fix them. But I don't even know where to start.
Currently GHC is only supported on i686 and x86_64.
(use-modules (gnu packages)(guix packages))
(supported-package? (specification->package "git-annex"))
$1 = ("x86_64-linux" "i686-linux")
As far as tracking back from git-annex to ghc to see that it's not
supported on aarch64, I'm not sure how you would find that information.
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Debugging missing architecture support
2024-02-14 13:26 Debugging missing architecture support Konrad Hinsen
2024-02-14 18:12 ` Efraim Flashner
@ 2024-02-14 20:26 ` Saku Laesvuori
2024-02-15 10:29 ` Konrad Hinsen
1 sibling, 1 reply; 9+ messages in thread
From: Saku Laesvuori @ 2024-02-14 20:26 UTC (permalink / raw)
To: Konrad Hinsen; +Cc: Guix Devel
[-- Attachment #1: Type: text/plain, Size: 1033 bytes --]
> in trying to build a Docker image for ARM64 (aarch64-linux), I am
> hitting errors of the kind
>
> "package git-annex@10.20230926 does not support aarch64-linux"
>
> There doesn't seem to be anything specifically in the package
> definitions that precludes building for aarch64-linux, so I suspect it's
> either a dependency or the build system that lacks the required support.
Git-annex uses the haskell-build-system which requires GHC, the only
modern haskell compiler. Unfortunately GHC is only packaged for
i686-linux and x86_64-linux in Guix.
> How would I go about debugging such issues? Maybe the causes are simple
> and I can fix them. But I don't even know where to start.
Maybe someone else can give more general or Guix specific advice on
finding out the cause of such problems, but I believe that in this case
the fix would just be packaging GHC for aarch64-linux. It should[1] be
possible but it will require some work.
[1]: https://gitlab.haskell.org/ghc/ghc/-/wikis/platforms
- Saku
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Debugging missing architecture support
2024-02-14 18:12 ` Efraim Flashner
@ 2024-02-14 20:33 ` Ricardo Wurmus
2024-02-15 10:06 ` Konrad Hinsen
0 siblings, 1 reply; 9+ messages in thread
From: Ricardo Wurmus @ 2024-02-14 20:33 UTC (permalink / raw)
To: Efraim Flashner; +Cc: Konrad Hinsen, guix-devel
Efraim Flashner <efraim@flashner.co.il> writes:
> As far as tracking back from git-annex to ghc to see that it's not
> supported on aarch64, I'm not sure how you would find that information.
You can try this in guix repl:
--8<---------------cut here---------------start------------->8---
(import (srfi srfi-1)
(guix packages)
(gnu packages))
(define p (specification->package "git-annex"))
(define deps (package-development-inputs p))
(find (lambda (pkg)
(not (member "aarch64-linux" (package-supported-systems pkg))))
(map cadr deps))
--8<---------------cut here---------------end--------------->8---
--
Ricardo
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Debugging missing architecture support
2024-02-14 20:33 ` Ricardo Wurmus
@ 2024-02-15 10:06 ` Konrad Hinsen
2024-02-24 16:35 ` Ludovic Courtès
0 siblings, 1 reply; 9+ messages in thread
From: Konrad Hinsen @ 2024-02-15 10:06 UTC (permalink / raw)
To: Ricardo Wurmus; +Cc: guix-devel, Efraim Flashner
Ricardo Wurmus <rekado@elephly.net> writes:
> You can try this in guix repl:
>
> --8<---------------cut here---------------start------------->8---
> (import (srfi srfi-1)
> (guix packages)
> (gnu packages))
>
> (define p (specification->package "git-annex"))
> (define deps (package-development-inputs p))
> (find (lambda (pkg)
> (not (member "aarch64-linux" (package-supported-systems pkg))))
> (map cadr deps))
> --8<---------------cut here---------------end--------------->8---
Thanks, that's very useful!
I changed the last command to
--8<---------------cut here---------------start------------->8---
(find (lambda (pkg)
(and (package? pkg)
(not (member "aarch64-linux" (package-supported-systems pkg)))))
(map cadr deps))
--8<---------------cut here---------------end--------------->8---
because some packages have local files among the development inputs.
This search doesn't work for all cases though. For "python-jupyterlab"
(from the guix-science channel) it returns no problematic dependencies,
and yet I cannot build the package for aarch64-linux.
The problem in that case seems to be cross-compilation. The dependency
of python-jupyterlab that fails to build is libwebp, whose build log
says:
@ unsupported-platform /gnu/store/7fj9ckgxw27r196vkisc9cm3n8v9072x-libwebp-1.3.2.drv aarch64-linux
while setting up the build environment: a `aarch64-linux' is required to
build `/gnu/store/7fj9ckgxw27r196vkisc9cm3n8v9072x-libwebp-1.3.2.drv',
but I am a `x86_64-linux'
Maybe this would build on an actual ARM64 machine.
Cheers,
Konrad.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Debugging missing architecture support
2024-02-14 20:26 ` Saku Laesvuori
@ 2024-02-15 10:29 ` Konrad Hinsen
2024-02-16 10:34 ` Efraim Flashner
0 siblings, 1 reply; 9+ messages in thread
From: Konrad Hinsen @ 2024-02-15 10:29 UTC (permalink / raw)
To: Saku Laesvuori; +Cc: Guix Devel
Hi Saku,
> Maybe someone else can give more general or Guix specific advice on
> finding out the cause of such problems, but I believe that in this case
> the fix would just be packaging GHC for aarch64-linux. It should[1] be
> possible but it will require some work.
>
> [1]: https://gitlab.haskell.org/ghc/ghc/-/wikis/platforms
Thanks for the pointer! It looks indeed like GHC already support
aarch64, so it's just a matter of integrating that support into Guix.
I'll see if I can find someone motivated and competent to do that.
Cheers,
Konrad
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Debugging missing architecture support
2024-02-15 10:29 ` Konrad Hinsen
@ 2024-02-16 10:34 ` Efraim Flashner
0 siblings, 0 replies; 9+ messages in thread
From: Efraim Flashner @ 2024-02-16 10:34 UTC (permalink / raw)
To: Konrad Hinsen; +Cc: Saku Laesvuori, Guix Devel
[-- Attachment #1.1: Type: text/plain, Size: 1070 bytes --]
On Thu, Feb 15, 2024 at 11:29:55AM +0100, Konrad Hinsen wrote:
> Hi Saku,
>
> > Maybe someone else can give more general or Guix specific advice on
> > finding out the cause of such problems, but I believe that in this case
> > the fix would just be packaging GHC for aarch64-linux. It should[1] be
> > possible but it will require some work.
> >
> > [1]: https://gitlab.haskell.org/ghc/ghc/-/wikis/platforms
>
> Thanks for the pointer! It looks indeed like GHC already support
> aarch64, so it's just a matter of integrating that support into Guix.
> I'll see if I can find someone motivated and competent to do that.
I've been carrying around this diff for a while but I don't think I'm
currently ready to finish it off. It adds aarch64 and armhf bootstrap
binaries for GHC and gets started on the path to building ghc-8.6 with
them.
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[-- Attachment #1.2: ghc-aarch64-support.diff --]
[-- Type: text/plain, Size: 13866 bytes --]
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 62815efbb1..92ba976189 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -57,6 +57,7 @@ (define-module (gnu packages haskell)
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux)
#:use-module (gnu packages lisp)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages m4)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
@@ -699,6 +852,24 @@ (define ghc-bootstrap-i686-7.8.4
(base32
"0wj5s435j0zgww70bj1d3f6wvnnpzlxwvwcyh2qv4qjq5z8j64kg"))))
+(define ghc-bootstrap-armhf-8.2.2
+ (origin
+ (method url-fetch)
+ (uri
+ "https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-armv7-deb8-linux.tar.xz")
+ (sha256
+ (base32
+ "1jmv8qmnh5bn324fivbwdcaj55kvw7cb2zq9pafmlmv3qwwx7s46"))))
+
+(define ghc-bootstrap-aarch64-8.2.2
+ (origin
+ (method url-fetch)
+ (uri
+ "https://downloads.haskell.org/~ghc/8.2.2/ghc-8.2.2-aarch64-deb8-linux.tar.xz")
+ (sha256
+ (base32
+ "1k2amylcp1ad67c75h1pqf7czf9m0zj1i7hdc45ghjklnfq9hrk7"))))
+
;; 43 tests out of 3965 fail.
;;
;; Most of them do not appear to be serious:
@@ -1057,10 +1228,115 @@ (define-public ghc-8.4
(file-pattern ".*\\.conf\\.d$")
(file-type 'directory))))))
+(define ghc-8.4-bootstrap
+ (package
+ (inherit ghc-8.4)
+ (name "ghc")
+ (version "8.4.4")
+ (supported-systems '("aarch64-linux" "armhf-linux"))
+ (native-inputs
+ `(;("clang" ,clang)
+ ("gcc:lib" ,gcc "lib")
+ ("ghc-bootstrap" ,(if (target-aarch64?)
+ ghc-bootstrap-aarch64-8.2.2
+ ghc-bootstrap-armhf-8.2.2))
+ ("llvm" ,llvm-9)
+ ("patchelf" ,patchelf)
+ ;("ld-wrapper" ,(@ (gnu packages commencement) ld-gold-wrapper)) ; for arm
+ ,@(filter (match-lambda
+ (("ghc-bootstrap" . _) #f)
+ (_ #t))
+ (package-native-inputs ghc-8.4))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments ghc-8.4)
+ ((#:modules _ #~%gnu-build-system-modules)
+ '((guix build gnu-build-system)
+ (guix build utils)
+ (srfi srfi-26)
+ (srfi srfi-1)))
+ ((#:phases phases)
+ #~(let* ((ghc-bootstrap-path
+ (string-append (getcwd) "/" #$name "-" #$version "/ghc-bin"))
+ (ghc-bootstrap-prefix
+ (string-append ghc-bootstrap-path "/usr")))
+ (modify-phases #$phases
+ (add-after 'unpack 'unpack-bin
+ (lambda* (#:key inputs #:allow-other-keys)
+ (mkdir-p ghc-bootstrap-prefix)
+ (with-directory-excursion ghc-bootstrap-path
+ (invoke "tar" "xvf" (assoc-ref inputs "ghc-bootstrap")))))
+ (add-before 'configure 'install-bin
+ (lambda _
+ (with-directory-excursion
+ (string-append ghc-bootstrap-path "/ghc-8.2.2")
+ (invoke "make" "install"))))
+ (add-before 'install-bin 'configure-bin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((binaries
+ (list "ghc/stage2/build/tmp/ghc-stage2"
+ "iserv/stage2/build/tmp/ghc-iserv"
+ "iserv/stage2_dyn/build/tmp/ghc-iserv-dyn"
+ "iserv/stage2_p/build/tmp/ghc-iserv-prof"
+ "utils/ghc-cabal/dist-install/build/tmp/ghc-cabal"
+ "utils/ghc-pkg/dist-install/build/tmp/ghc-pkg"
+ ;"utils/haddock/dist/build/tmp/haddock" ; not on arm
+ "utils/hp2ps/dist/build/tmp/hp2ps"
+ "utils/hpc/dist-install/build/tmp/hpc"
+ "utils/hsc2hs/dist-install/build/tmp/hsc2hs"
+ "utils/runghc/dist-install/build/tmp/runghc"
+ "utils/unlit/dist/build/tmp/unlit"))
+ (gmp (assoc-ref inputs "gmp"))
+ (gmp-lib (string-append gmp "/lib"))
+ (gmp-include (string-append gmp "/include"))
+ (ncurses-lib
+ (dirname (search-input-file inputs "/lib/libncurses.so")))
+ (ld-so (search-input-file inputs #$(glibc-dynamic-linker)))
+ (libtinfo-dir
+ (string-append ghc-bootstrap-prefix
+ "/lib/ghc-8.2.2/terminfo-0.4.1.0")))
+ (with-directory-excursion
+ (string-append ghc-bootstrap-path "/ghc-8.2.2")
+ (setenv "CONFIG_SHELL" (which "bash"))
+ (setenv "LD_LIBRARY_PATH"
+ (string-append gmp-lib ":"
+ (assoc-ref inputs "gcc:lib") "/lib"))
+ ;; The binaries have "/lib64/ld-linux-x86-64.so.2" hardcoded.
+ (for-each
+ (cut invoke "patchelf" "--set-interpreter" ld-so <>)
+ binaries)
+ ;; The binaries include a reference to libtinfo.so.5 which
+ ;; is a subset of libncurses.so.5. We create a symlink in a
+ ;; directory included in the bootstrap binaries rpath.
+ (mkdir-p libtinfo-dir)
+ (symlink
+ (string-append ncurses-lib "/libncursesw.so."
+ ;; Extract "6.2" from "6.2.20210619" if a
+ ;; dash-separated version tag exists.
+ #$(let* ((v (package-version ncurses))
+ (d (or (string-index v #\-)
+ (string-length v))))
+ (version-major+minor (string-take v d))))
+ (string-append libtinfo-dir "/libtinfo.so.5"))
+
+ (setenv "PATH"
+ (string-append (getenv "PATH") ":"
+ ghc-bootstrap-prefix "/bin"))
+ (invoke
+ (string-append (getcwd) "/configure")
+ (string-append "--prefix=" ghc-bootstrap-prefix)))))))))))
+ (native-search-paths (list (search-path-specification
+ (variable "GHC_PACKAGE_PATH")
+ (files (list
+ (string-append "lib/ghc-" version)))
+ (file-pattern ".*\\.conf\\.d$")
+ (file-type 'directory))))))
+
(define-public ghc-8.6
(package (inherit ghc-8.4)
(name "ghc")
(version "8.6.5")
+ (supported-systems (append (package-supported-systems ghc-8.4)
+ (package-supported-systems ghc-8.4-bootstrap)))
(source
(origin
(method url-fetch)
@@ -1070,7 +1346,10 @@ (define-public ghc-8.6
(base32 "0qg3zsmbk4rkwkc3jpas3zs74qaxmw4sp4v1mhsbj0a0dzls2jjd"))))
(native-inputs
`(;; GHC 8.6.5 must be built with GHC >= 8.2.
- ("ghc-bootstrap" ,ghc-8.4)
+ ("ghc-bootstrap" ,(if (member (%current-system)
+ (package-supported-systems ghc-8.4-bootstrap))
+ ghc-8.4-bootstrap
+ ghc-8.4))
("ghc-testsuite"
,(origin
(method url-fetch)
@@ -1140,6 +1419,105 @@ (define-public ghc-8.6
(file-pattern ".*\\.conf\\.d$")
(file-type 'directory))))))
+(define ghc-8.6-bootstrap
+ (package
+ (inherit ghc-8.6)
+ (name "ghc")
+ (version "8.6.5")
+ (supported-systems '("aarch64-linux" "armhf-linux"))
+ (native-inputs
+ `(;("clang" ,clang)
+ ("gcc:lib" ,gcc "lib")
+ ("ghc-bootstrap" ,(if (target-aarch64?)
+ ghc-bootstrap-aarch64-8.2.2
+ ghc-bootstrap-armhf-8.2.2))
+ ("llvm" ,llvm)
+ ("patchelf" ,patchelf)
+ ,@(filter (match-lambda
+ (("ghc-bootstrap" . _) #f)
+ (_ #t))
+ (package-native-inputs ghc-8.6))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments ghc-8.6)
+ ((#:modules _ #~%gnu-build-system-modules)
+ '((guix build gnu-build-system)
+ (guix build utils)
+ (srfi srfi-26)
+ (srfi srfi-1)))
+ ((#:phases phases)
+ #~(let* ((ghc-bootstrap-path
+ (string-append (getcwd) "/" #$name "-" #$version "/ghc-bin"))
+ (ghc-bootstrap-prefix
+ (string-append ghc-bootstrap-path "/usr")))
+ (modify-phases #$phases
+ (add-after 'unpack 'unpack-bin
+ (lambda* (#:key inputs #:allow-other-keys)
+ (mkdir-p ghc-bootstrap-prefix)
+ (with-directory-excursion ghc-bootstrap-path
+ (invoke "tar" "xvf" (assoc-ref inputs "ghc-bootstrap")))))
+ (add-before 'configure 'install-bin
+ (lambda _
+ (with-directory-excursion
+ (string-append ghc-bootstrap-path "/ghc-8.2.2")
+ (invoke "make" "install"))))
+ (add-before 'install-bin 'configure-bin
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((binaries
+ (list "ghc/stage2/build/tmp/ghc-stage2"
+ "utils/ghc-cabal/dist-install/build/tmp/ghc-cabal"
+ "utils/ghc-pkg/dist-install/build/tmp/ghc-pkg"
+ "utils/haddock/dist/build/tmp/haddock"
+ "utils/hp2ps/dist/build/tmp/hp2ps"
+ "utils/hpc/dist-install/build/tmp/hpc"
+ "utils/hsc2hs/dist-install/build/tmp/hsc2hs"
+ "utils/runghc/dist-install/build/tmp/runghc"
+ "utils/unlit/dist/build/tmp/unlit"))
+ (gmp (assoc-ref inputs "gmp"))
+ (gmp-lib (string-append gmp "/lib"))
+ (gmp-include (string-append gmp "/include"))
+ (ncurses-lib
+ (dirname (search-input-file inputs "/lib/libncurses.so")))
+ (ld-so (search-input-file inputs #$(glibc-dynamic-linker)))
+ (libtinfo-dir
+ (string-append ghc-bootstrap-prefix
+ "/lib/ghc-8.2.2/terminfo-0.4.1.0")))
+ (with-directory-excursion
+ (string-append ghc-bootstrap-path "/ghc-8.2.2")
+ (setenv "CONFIG_SHELL" (which "bash"))
+ (setenv "LD_LIBRARY_PATH"
+ (string-append gmp-lib ":"
+ (assoc-ref inputs "gcc:lib") "/lib"))
+ ;; The binaries have "/lib64/ld-linux-x86-64.so.2" hardcoded.
+ (for-each
+ (cut invoke "patchelf" "--set-interpreter" ld-so <>)
+ binaries)
+ ;; The binaries include a reference to libtinfo.so.5 which
+ ;; is a subset of libncurses.so.5. We create a symlink in a
+ ;; directory included in the bootstrap binaries rpath.
+ (mkdir-p libtinfo-dir)
+ (symlink
+ (string-append ncurses-lib "/libncursesw.so."
+ ;; Extract "6.2" from "6.2.20210619" if a
+ ;; dash-separated version tag exists.
+ #$(let* ((v (package-version ncurses))
+ (d (or (string-index v #\-)
+ (string-length v))))
+ (version-major+minor (string-take v d))))
+ (string-append libtinfo-dir "/libtinfo.so.5"))
+
+ (setenv "PATH"
+ (string-append (getenv "PATH") ":"
+ ghc-bootstrap-prefix "/bin"))
+ (invoke
+ (string-append (getcwd) "/configure")
+ (string-append "--prefix=" ghc-bootstrap-prefix)))))))))))
+ (native-search-paths (list (search-path-specification
+ (variable "GHC_PACKAGE_PATH")
+ (files (list
+ (string-append "lib/ghc-" version)))
+ (file-pattern ".*\\.conf\\.d$")
+ (file-type 'directory))))))
+
(define-public ghc-8.8
(package (inherit ghc-8.6)
(name "ghc")
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: Debugging missing architecture support
2024-02-15 10:06 ` Konrad Hinsen
@ 2024-02-24 16:35 ` Ludovic Courtès
2024-02-25 17:22 ` Konrad Hinsen
0 siblings, 1 reply; 9+ messages in thread
From: Ludovic Courtès @ 2024-02-24 16:35 UTC (permalink / raw)
To: Konrad Hinsen; +Cc: Ricardo Wurmus, guix-devel, Efraim Flashner
Hi Konrad,
Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:
> The problem in that case seems to be cross-compilation. The dependency
> of python-jupyterlab that fails to build is libwebp, whose build log
> says:
>
> @ unsupported-platform /gnu/store/7fj9ckgxw27r196vkisc9cm3n8v9072x-libwebp-1.3.2.drv aarch64-linux
> while setting up the build environment: a `aarch64-linux' is required to
> build `/gnu/store/7fj9ckgxw27r196vkisc9cm3n8v9072x-libwebp-1.3.2.drv',
This shows an attempt to compile libwebp natively for aarch64-linux,
which fails on your machine.
To cross compile, you would run:
guix build python-jupyterlab --target=aarch64-linux-gnu
… but I doubt this would succeed because that’s a huge pile of packages.
Ludo’.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Debugging missing architecture support
2024-02-24 16:35 ` Ludovic Courtès
@ 2024-02-25 17:22 ` Konrad Hinsen
0 siblings, 0 replies; 9+ messages in thread
From: Konrad Hinsen @ 2024-02-25 17:22 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: Ricardo Wurmus, guix-devel, Efraim Flashner
Hi Ludo,
> This shows an attempt to compile libwebp natively for aarch64-linux,
> which fails on your machine.
>
> To cross compile, you would run:
>
> guix build python-jupyterlab --target=aarch64-linux-gnu
That's already what I did, by giving the same option to "guix pack".
I had someone check on a real ARM machine, and there libwebp compiles
just fine. There seems to be some cross-compilation issues, for whatever
reasons - this isn't my priority for now.
I ended up tracking down all the issues with the container I was trying
to produce, and in the end it's always ghc that prevents builds for
aarch64-linux. Most frequently by having pandoc as a dependency.
I'll have to take a closer look at Efraim's diff (thanks Efraim!),
but I fear it's above my paygrade.
Cheers,
Konrad.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-02-25 17:23 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-14 13:26 Debugging missing architecture support Konrad Hinsen
2024-02-14 18:12 ` Efraim Flashner
2024-02-14 20:33 ` Ricardo Wurmus
2024-02-15 10:06 ` Konrad Hinsen
2024-02-24 16:35 ` Ludovic Courtès
2024-02-25 17:22 ` Konrad Hinsen
2024-02-14 20:26 ` Saku Laesvuori
2024-02-15 10:29 ` Konrad Hinsen
2024-02-16 10:34 ` Efraim Flashner
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).