unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* cross compiling using qemu-user-static
@ 2022-02-05 15:14 Tobias Platen
  2022-02-05 16:09 ` Maxime Devos
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Tobias Platen @ 2022-02-05 15:14 UTC (permalink / raw)
  To: guix-devel

Some time ago I was able to cross compile emacs to run on the
OpenPandora[1] using guix. That seems to be broken:

guix pack --target=armhf-linux-gnu openssh emacs libhandy
guix pack: error: gnu/packages/emacs.scm:77:2: emacs@27.2: build system
`glib-or-gtk' does not support cross builds

So I think one could copy qemu-user-static for the target architecture
into the build directory and execute native versions of the software.

[1] http://www.openpandora.org/





^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: cross compiling using qemu-user-static
  2022-02-05 15:14 cross compiling using qemu-user-static Tobias Platen
@ 2022-02-05 16:09 ` Maxime Devos
       [not found]   ` <c2b72e18bf99776b44b7ff0f1ea34edca9ff99f8.camel@platen-software.de>
  2022-02-05 16:10 ` Maxime Devos
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Maxime Devos @ 2022-02-05 16:09 UTC (permalink / raw)
  To: Tobias Platen, guix-devel

[-- Attachment #1: Type: text/plain, Size: 872 bytes --]

Tobias Platen schreef op za 05-02-2022 om 16:14 [+0100]:
> Some time ago I was able to cross compile emacs to run on the
> OpenPandora[1] using guix. That seems to be broken:
> 
> guix pack --target=armhf-linux-gnu openssh emacs libhandy
> guix pack: error: gnu/packages/emacs.scm:77:2: emacs@27.2: build system
> `glib-or-gtk' does not support cross builds

Is your guix up to date?  Cross-compilation for 'glib-or-gtk' has been
implemented in:

commit 881a5d26b2fdf9ccb222b26b2a533cd09ffc62c8
Author: Maxime Devos <maximedevos@telenet.be>
Date:   Tue Aug 24 11:06:53 2021 +0200

    build-system/glib-or-gtk: Support cross-compilaton.
    
    * guix/build-system/glib-or-gtk.scm
      (lower): Add 'implicit-cross-inputs?' argument.  Generate a bag
      when cross-compiling.
      (glib-or-gtk-cross-build): New procedure.

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: cross compiling using qemu-user-static
  2022-02-05 15:14 cross compiling using qemu-user-static Tobias Platen
  2022-02-05 16:09 ` Maxime Devos
@ 2022-02-05 16:10 ` Maxime Devos
  2022-02-05 16:13 ` Maxime Devos
  2022-02-06 18:47 ` Tobias Platen
  3 siblings, 0 replies; 9+ messages in thread
From: Maxime Devos @ 2022-02-05 16:10 UTC (permalink / raw)
  To: Tobias Platen, guix-devel

[-- Attachment #1: Type: text/plain, Size: 185 bytes --]

Tobias Platen schreef op za 05-02-2022 om 16:14 [+0100]:
> guix pack --target=armhf-linux-gnu openssh emacs libhandy

FWIW the triple is arm-linux-gnueabihf.

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: cross compiling using qemu-user-static
  2022-02-05 15:14 cross compiling using qemu-user-static Tobias Platen
  2022-02-05 16:09 ` Maxime Devos
  2022-02-05 16:10 ` Maxime Devos
@ 2022-02-05 16:13 ` Maxime Devos
       [not found]   ` <982bb7e3e8194968c29e9a56bdddd2bb1fc0bab7.camel@platen-software.de>
  2022-02-06 18:47 ` Tobias Platen
  3 siblings, 1 reply; 9+ messages in thread
From: Maxime Devos @ 2022-02-05 16:13 UTC (permalink / raw)
  To: Tobias Platen, guix-devel

[-- Attachment #1: Type: text/plain, Size: 504 bytes --]

Tobias Platen schreef op za 05-02-2022 om 16:14 [+0100]:
> So I think one could copy qemu-user-static for the target architecture
> into the build directory and execute native versions of the software.
> 
> [1] http://www.openpandora.org/

From a technical point of view, that's mostly native compilation from
Guix' perspective.  Try "guix pack --system=armhf-linux openssh emacs
libhandy" after setting up QEMU (see ‘Transparent Emulation with QEMU’
in the manual).

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: cross compiling using qemu-user-static
       [not found]   ` <982bb7e3e8194968c29e9a56bdddd2bb1fc0bab7.camel@platen-software.de>
@ 2022-02-05 17:14     ` Maxime Devos
  0 siblings, 0 replies; 9+ messages in thread
From: Maxime Devos @ 2022-02-05 17:14 UTC (permalink / raw)
  To: Tobias Platen; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 396 bytes --]

Tobias Platen schreef op za 05-02-2022 om 17:39 [+0100]:
> I was unaware that Guix already has that feature.
> But on my Talos II, I am using Guix on top of Debian,
> and I don't have Shepherd running. 

Debian has two packages for setting up binfmt: qemu-user-static and
qemu-user-binfmt. Perhaps even if qemu-user-binfmt doesn't work,
qemu-user-static does work?

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: cross compiling using qemu-user-static
       [not found]   ` <c2b72e18bf99776b44b7ff0f1ea34edca9ff99f8.camel@platen-software.de>
@ 2022-02-05 17:22     ` Maxime Devos
       [not found]       ` <26c6d942d8326be8a62b83a142ddf67993e76912.camel@platen-software.de>
  2022-02-05 17:26     ` Maxime Devos
  1 sibling, 1 reply; 9+ messages in thread
From: Maxime Devos @ 2022-02-05 17:22 UTC (permalink / raw)
  To: Tobias Platen; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 2573 bytes --]

Tobias Platen schreef op za 05-02-2022 om 17:20 [+0100]:
> On Sat, 2022-02-05 at 17:09 +0100, Maxime Devos wrote:
> > Tobias Platen schreef op za 05-02-2022 om 16:14 [+0100]:
> > > Some time ago I was able to cross compile emacs to run on the
> > > OpenPandora[1] using guix. That seems to be broken:
> > > 
> > > guix pack --target=armhf-linux-gnu openssh emacs libhandy
> > > guix pack: error: gnu/packages/emacs.scm:77:2: emacs@27.2: build
> > > system
> > > `glib-or-gtk' does not support cross builds
> > 
> > Is your guix up to date?  Cross-compilation for 'glib-or-gtk' has
> > been
> > implemented in:
> > 
> > commit 881a5d26b2fdf9ccb222b26b2a533cd09ffc62c8
> > Author: Maxime Devos <maximedevos@telenet.be>
> > Date:   Tue Aug 24 11:06:53 2021 +0200
> > 
> I did a guix pull today.

Weird, if I do
‘guix pack --target=arm-linux-gnueabihf emacs libhandy openssh’
then it starts substituting source code and building:

> $ guix pack --target=arm-linux-gnueabihf emacs libhandy openssh
> De volgende distillaties zullen gebouwd worden:
>    /gnu/store/c5svd5lbx26rysgm3r4ln89n1l74cif0-openssl-1.1.1m.drv
>    /gnu/store/2scsyrlwbjy466p2dy2qay5fwwm6yp5x-glibc-cross-arm-linux-gnueabihf-2.33.drv
>    /gnu/store/60x13abw5wr2yr1d0d6db2pspgbla1d0-linux-libre-headers-cross-arm-linux-gnueabihf-5.10.35.drv
>    /gnu/store/6w9anqnsfpgjk90x4ldbq17m4g75g4lc-gcc-cross-arm-linux-gnueabihf-10.3.0.drv
>    /gnu/store/55m8qc9ybxrrip3pizxbcka0axfp0z11-expat-2.4.4.drv
>
> 30,7 MB zal binnengehaald worden
>  expat-2.4.4.tar.xz  439KiB                                    2.5MiB/s 00:00 [##################] 100.0%
>  binutils-cross-arm-linux-gnueabihf-2.37  6.9MiB               1.9MiB/s 00:04 [##################] 100.0%
>  gcc-cross-sans-libc-arm-linux-gnueabihf-10.3.0-lib  2.7MiB    2.6MiB/s 00:01 [##################] 100.0%
>  glibc-cross-arm-linux-gnueabihf-2.33  18.0MiB                 1.7MiB/s 00:11 [##################] 100.0%
>  ld-wrapper-arm-linux-gnueabihf-0  13KiB                       2.1MiB/s 00:00 [##################] 100.0%
>  openssl-1.1.1m.tar.xz  7.1MiB                                 3.2MiB/s 00:02 [##################] 100.0%
>  gcc-cross-sans-libc-arm-linux-gnueabihf-10.3.0  14.8MiB       4.0MiB/s 00:04 [##################] 100.0%
> /gnu/store/60x13abw5wr2yr1d0d6db2pspgbla1d0-linux-libre-headers-cross-arm-linux-gnueabihf-5.10.35.drv bouwen...
> | 'unpack' fase^C

What does "type -p guix" return? $HOME/.guix-profile/bin/guix or
/usr/{local/,}bin/guix or something else?

Greetings,
Maxime

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: cross compiling using qemu-user-static
       [not found]   ` <c2b72e18bf99776b44b7ff0f1ea34edca9ff99f8.camel@platen-software.de>
  2022-02-05 17:22     ` Maxime Devos
@ 2022-02-05 17:26     ` Maxime Devos
  1 sibling, 0 replies; 9+ messages in thread
From: Maxime Devos @ 2022-02-05 17:26 UTC (permalink / raw)
  To: Tobias Platen; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 2609 bytes --]

Tobias Platen schreef op za 05-02-2022 om 17:20 [+0100]:
> On Sat, 2022-02-05 at 17:09 +0100, Maxime Devos wrote:
> > Tobias Platen schreef op za 05-02-2022 om 16:14 [+0100]:
> > > Some time ago I was able to cross compile emacs to run on the
> > > OpenPandora[1] using guix. That seems to be broken:
> > > 
> > > guix pack --target=armhf-linux-gnu openssh emacs libhandy
> > > guix pack: error: gnu/packages/emacs.scm:77:2: emacs@27.2: build
> > > system
> > > `glib-or-gtk' does not support cross builds
> > 
> > Is your guix up to date?  Cross-compilation for 'glib-or-gtk' has
> > been
> > implemented in:
> > 
> > commit 881a5d26b2fdf9ccb222b26b2a533cd09ffc62c8
> > Author: Maxime Devos <maximedevos@telenet.be>
> > Date:   Tue Aug 24 11:06:53 2021 +0200
> > 
> I did a guix pull today.

Weird, if I do
‘guix pack --target=arm-linux-gnueabihf emacs libhandy openssh’
then it starts substituting source code and building:

> $ guix pack --target=arm-linux-gnueabihf emacs libhandy openssh
> De volgende distillaties zullen gebouwd worden:
>    /gnu/store/c5svd5lbx26rysgm3r4ln89n1l74cif0-openssl-1.1.1m.drv
>    /gnu/store/2scsyrlwbjy466p2dy2qay5fwwm6yp5x-glibc-cross-arm-linux-gnueabihf-2.33.drv
>    /gnu/store/60x13abw5wr2yr1d0d6db2pspgbla1d0-linux-libre-headers-cross-arm-linux-gnueabihf-5.10.35.drv
>    /gnu/store/6w9anqnsfpgjk90x4ldbq17m4g75g4lc-gcc-cross-arm-linux-gnueabihf-10.3.0.drv
>    /gnu/store/55m8qc9ybxrrip3pizxbcka0axfp0z11-expat-2.4.4.drv
>
> 30,7 MB zal binnengehaald worden
>  expat-2.4.4.tar.xz  439KiB                                    2.5MiB/s 00:00 [##################] 100.0%
>  binutils-cross-arm-linux-gnueabihf-2.37  6.9MiB               1.9MiB/s 00:04 [##################] 100.0%
>  gcc-cross-sans-libc-arm-linux-gnueabihf-10.3.0-lib  2.7MiB    2.6MiB/s 00:01 [##################] 100.0%
>  glibc-cross-arm-linux-gnueabihf-2.33  18.0MiB                 1.7MiB/s 00:11 [##################] 100.0%
>  ld-wrapper-arm-linux-gnueabihf-0  13KiB                       2.1MiB/s 00:00 [##################] 100.0%
>  openssl-1.1.1m.tar.xz  7.1MiB                                 3.2MiB/s 00:02 [##################] 100.0%
>  gcc-cross-sans-libc-arm-linux-gnueabihf-10.3.0  14.8MiB       4.0MiB/s 00:04 [##################] 100.0%
> /gnu/store/60x13abw5wr2yr1d0d6db2pspgbla1d0-linux-libre-headers-cross-arm-linux-gnueabihf-5.10.35.drv bouwen...
> | 'unpack' fase^C

What does "type -p guix" return? $HOME/.guix-profile/bin/guix or
/usr/{local/,}bin/guix or something else?  What does "guix --version"
print?

Greetings,
Maxime

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: cross compiling using qemu-user-static
       [not found]       ` <26c6d942d8326be8a62b83a142ddf67993e76912.camel@platen-software.de>
@ 2022-02-05 17:31         ` Maxime Devos
  0 siblings, 0 replies; 9+ messages in thread
From: Maxime Devos @ 2022-02-05 17:31 UTC (permalink / raw)
  To: Tobias Platen; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 892 bytes --]

Tobias Platen schreef op za 05-02-2022 om 18:23 [+0100]:
> > What does "type -p guix" return? $HOME/.guix-profile/bin/guix or
> > /usr/{local/,}bin/guix or something else?
> /usr/local/bin/guix

Looks like an old version.  I see two possibilities here:

  * Set up .bash_profile and .profile like documented in the manual
    and login again.  For whatever reason, on my Debian system at
    least, when I start a graphical session ~/.bash_profile and
    ~/.profile are ignored, so I have to do "bash --login" to start
    a login shell to start doing up-to-date Guix stuff. 

  * If /usr/local/bin/guix is a symlink to
    /var/guix/profiles/per-user/root/current-guix/bin/guix,
    like on my Debian system, then updating root's guix
    (sudo guix pull) should be sufficient -- it's a bit
    unconventional and suboptimal but it should work.

Greetings,
Maxime.



[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: cross compiling using qemu-user-static
  2022-02-05 15:14 cross compiling using qemu-user-static Tobias Platen
                   ` (2 preceding siblings ...)
  2022-02-05 16:13 ` Maxime Devos
@ 2022-02-06 18:47 ` Tobias Platen
  3 siblings, 0 replies; 9+ messages in thread
From: Tobias Platen @ 2022-02-06 18:47 UTC (permalink / raw)
  To: guix-devel

is now fixed, I can now login from my laptop, and I also use two of my
laptops USB ports for both networking and charging the battery.

isengaara-openpandora:~$ uname -a
Linux isengaara-openpandora 3.2.57 #982 Sun Apr 20 20:33:11 EEST 2014
armv7l GNU/Linux
isengaara-openpandora:~$ ls /gnu/store/
01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-
lib					       k384n83b8l5bdwsa05prhlw3wsmak40p-openssh-8.5p1
0acliwmd1gpd1y67bbx7lpl4sqzka2y6-gcc-cross-arm-linux-gnueabihf-7.5.0-
lib	       kxb22znvi7jb3mmc596i33c3y3xsd4mh-ncurses-6.2
1v9ynmn33agz43np663l2bb9ck5n2i4l-linux-pam-
1.5.1				       kz9r6h1dziyknbwgg6i5jpays5ggzf3c-profile
2dgh7v30fa85d515n2fghjjrsj56qnf5-linux-libre-headers-cross-arm-linux-
gnueabihf-5.4.20  mmhimfwmmidf09jw1plw3aw1g1zn2nkh-bash-static-5.0.16
3smqcfmicplwcrsbpqf7500i9hpkw8n7-glibc-cross-arm-linux-gnueabihf-
2.31		       n0hnwyfvdrrwvg6dc0cbap74hjrazdcx-zlib-1.2.11
59rcg987542x54ryqypkvk68n32gkg82-openssl-
1.1.1k					       pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16
bcjcd97xvh0qkvq1maqj6qab88xb30dv-bash-static-
5.0.16				       r0lvhigifp9acp6razf3r4ccbazpnvbq-libedit-20191231-3.1
bjjikcvyr6m5yiv6h21p3088wh92lv3a-info-
dir					       skjd1576693sppg33vp9nzlpmfvwqs3y-mit-krb5-1.18
fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-
2.31					       x84gw65mhp1hz89b005k5g904pr1xp68-gcc-cross-sans-libc-arm-linux-gnueabihf-7.5.0-lib
gznjmd83vrqd5zdm7ryk998whvxf7la3-manual-
database				       zzkly5rbfvahwqgcs7crz0ilpi7x5g5p-ncurses-6.2



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-02-06 19:03 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-05 15:14 cross compiling using qemu-user-static Tobias Platen
2022-02-05 16:09 ` Maxime Devos
     [not found]   ` <c2b72e18bf99776b44b7ff0f1ea34edca9ff99f8.camel@platen-software.de>
2022-02-05 17:22     ` Maxime Devos
     [not found]       ` <26c6d942d8326be8a62b83a142ddf67993e76912.camel@platen-software.de>
2022-02-05 17:31         ` Maxime Devos
2022-02-05 17:26     ` Maxime Devos
2022-02-05 16:10 ` Maxime Devos
2022-02-05 16:13 ` Maxime Devos
     [not found]   ` <982bb7e3e8194968c29e9a56bdddd2bb1fc0bab7.camel@platen-software.de>
2022-02-05 17:14     ` Maxime Devos
2022-02-06 18:47 ` Tobias Platen

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).