* Aarch64 build of rust-1.39.0 fails
@ 2021-12-16 13:14 phodina via
2021-12-17 16:37 ` Vagrant Cascadian
2021-12-20 2:55 ` Maxim Cournoyer
0 siblings, 2 replies; 14+ messages in thread
From: phodina via @ 2021-12-16 13:14 UTC (permalink / raw)
To: help-guix
Hi,
I checked the build server and there were no substitutes [1] for rust-1.39.0 for the Aarch64 system.
When building natively (Pinebook Pro) there is this problem:
$ uname -a
Linux valhalla 5.14.9-gnu #1 SMP PREEMPT 1 aarch64 GNU/Linux
~/guix$ guix build rust -K
...
> /tmp/guix-build-rust-1.39.0.drv-0/mrustc/bin/mrustc rustc-1.39.0-src/src/libcore/lib.rs -o output/libcore.rlib --crate-name core --crate-type rlib -C emit-depfile=output/libcore.rlib.d --crate-tag 0_0_0 -g --cfg debug_assertions -O -L output --edition 2018
rustc-1.39.0-src/src/libcore/slice/mod.rs:67: warn:0:Unexpected attribute allow_internal_unstable on associated item
rustc-1.39.0-src/src/libcore/str/mod.rs:2173: warn:0:Unexpected attribute allow_internal_unstable on associated item
In file included from output/libcore.rlib.c:7:
output/libcore.rlib.c: In function ‘ZRQG2ch4core50_0_03ffi10VaListImpl0g2cb05clone5Clone0gb30g’:
output/libcore.rlib.c:219717:10: warning: passing argument 1 of ‘__builtin_va_copy’ from incompatible pointer type [-Wincompatible-pointer-types]
219717 | va_copy(var3, arg0);
| ^~~~
| |
| struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g **
output/libcore.rlib.c:219717:10: note: expected ‘__va_list *’ but argument is of type ‘struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g **’
output/libcore.rlib.c:219717:16: error: incompatible type for argument 2 of ‘__builtin_va_copy’
219717 | va_copy(var3, arg0);
| ^~~~
| |
| struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g *
output/libcore.rlib.c:219717:16: note: expected ‘__va_list’ but argument is of type ‘struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g *’
C Compiler failed to execute - error code 256
Process exited with non-zero exit status 1
BUILD FAILED
make: *** [minicargo.mk:82: output/libstd.rlib] Error 1
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("-f" "minicargo.mk" "output/rustc" "-j6" "RUSTC_TARGET=aarch64-unknown-linux-gnu" "RUSTC_VERSION=1.39.0" "MRUSTC_TARGET_VER=1.39" "OUTDIR_SUF=") exit-status: 2 term-signal: #f stop-signal: #f>
phase `build' failed after 1006.4 seconds
command "make" "-f" "minicargo.mk" "output/rustc" "-j6" "RUSTC_TARGET=aarch64-unknown-linux-gnu" "RUSTC_VERSION=1.39.0" "MRUSTC_TARGET_VER=1.39" "OUTDIR_SUF=" failed with status 2
Not sure if this PR [2] would help as I don't know how to apply the patch to the package definition for rust-1.39.
[1] http://ci.guix.gnu.org/search?query=rust-1.39
[2] https://github.com/rust-lang/rust/pull/49878
----
Petr
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Aarch64 build of rust-1.39.0 fails 2021-12-16 13:14 Aarch64 build of rust-1.39.0 fails phodina via @ 2021-12-17 16:37 ` Vagrant Cascadian 2021-12-20 2:55 ` Maxim Cournoyer 1 sibling, 0 replies; 14+ messages in thread From: Vagrant Cascadian @ 2021-12-17 16:37 UTC (permalink / raw) To: phodina, help-guix [-- Attachment #1: Type: text/plain, Size: 3197 bytes --] On 2021-12-16, phodina via wrote: > I checked the build server and there were no substitutes [1] for rust-1.39.0 for the Aarch64 system. This is unfortunately a known issue; there isn't a good bootstrap path for rust on aarch64... and an increasingly number of things are depending on rust, which makes it a more obvious problem now. > When building natively (Pinebook Pro) there is this problem: > > $ uname -a > Linux valhalla 5.14.9-gnu #1 SMP PREEMPT 1 aarch64 GNU/Linux > ~/guix$ guix build rust -K > ... >> /tmp/guix-build-rust-1.39.0.drv-0/mrustc/bin/mrustc rustc-1.39.0-src/src/libcore/lib.rs -o output/libcore.rlib --crate-name core --crate-type rlib -C emit-depfile=output/libcore.rlib.d --crate-tag 0_0_0 -g --cfg debug_assertions -O -L output --edition 2018 > rustc-1.39.0-src/src/libcore/slice/mod.rs:67: warn:0:Unexpected attribute allow_internal_unstable on associated item > rustc-1.39.0-src/src/libcore/str/mod.rs:2173: warn:0:Unexpected attribute allow_internal_unstable on associated item > In file included from output/libcore.rlib.c:7: > output/libcore.rlib.c: In function ‘ZRQG2ch4core50_0_03ffi10VaListImpl0g2cb05clone5Clone0gb30g’: > output/libcore.rlib.c:219717:10: warning: passing argument 1 of ‘__builtin_va_copy’ from incompatible pointer type [-Wincompatible-pointer-types] > 219717 | va_copy(var3, arg0); > | ^~~~ > | | > | struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g ** > output/libcore.rlib.c:219717:10: note: expected ‘__va_list *’ but argument is of type ‘struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g **’ > output/libcore.rlib.c:219717:16: error: incompatible type for argument 2 of ‘__builtin_va_copy’ > 219717 | va_copy(var3, arg0); > | ^~~~ > | | > | struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g * > output/libcore.rlib.c:219717:16: note: expected ‘__va_list’ but argument is of type ‘struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g *’ > C Compiler failed to execute - error code 256 > Process exited with non-zero exit status 1 > BUILD FAILED > make: *** [minicargo.mk:82: output/libstd.rlib] Error 1 > error: in phase 'build': uncaught exception: > %exception #<&invoke-error program: "make" arguments: ("-f" "minicargo.mk" "output/rustc" "-j6" "RUSTC_TARGET=aarch64-unknown-linux-gnu" "RUSTC_VERSION=1.39.0" "MRUSTC_TARGET_VER=1.39" "OUTDIR_SUF=") exit-status: 2 term-signal: #f stop-signal: #f> > phase `build' failed after 1006.4 seconds > command "make" "-f" "minicargo.mk" "output/rustc" "-j6" "RUSTC_TARGET=aarch64-unknown-linux-gnu" "RUSTC_VERSION=1.39.0" "MRUSTC_TARGET_VER=1.39" "OUTDIR_SUF=" failed with status 2 > > Not sure if this PR [2] would help as I don't know how to apply the patch to the package definition for rust-1.39. ... > [2] https://github.com/rust-lang/rust/pull/49878 Looks somewhat plausible... You could try pulling out the patches and adding them in gnu/packages/patches/rust-1.39-XXX.patch, and then adding into the search-patches definition in gnu/packages/rust.scm for rust-1.39. Though, they may require backwards or forwards-porting those patches; not sure if those patches were applied before or after 1.39. live well, vagrant [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Aarch64 build of rust-1.39.0 fails 2021-12-16 13:14 Aarch64 build of rust-1.39.0 fails phodina via 2021-12-17 16:37 ` Vagrant Cascadian @ 2021-12-20 2:55 ` Maxim Cournoyer 2021-12-22 10:51 ` phodina 2022-01-03 23:21 ` Denis 'GNUtoo' Carikli 1 sibling, 2 replies; 14+ messages in thread From: Maxim Cournoyer @ 2021-12-20 2:55 UTC (permalink / raw) To: phodina via Hi, phodina via <help-guix@gnu.org> writes: > Hi, > > I checked the build server and there were no substitutes [1] for > rust-1.39.0 for the Aarch64 system. > > When building natively (Pinebook Pro) there is this problem: > > $ uname -a > Linux valhalla 5.14.9-gnu #1 SMP PREEMPT 1 aarch64 GNU/Linux > ~/guix$ guix build rust -K > ... >> /tmp/guix-build-rust-1.39.0.drv-0/mrustc/bin/mrustc > rustc-1.39.0-src/src/libcore/lib.rs -o output/libcore.rlib > --crate-name core --crate-type rlib -C > emit-depfile=output/libcore.rlib.d --crate-tag 0_0_0 -g --cfg > debug_assertions -O -L output --edition 2018 > rustc-1.39.0-src/src/libcore/slice/mod.rs:67: warn:0:Unexpected > attribute allow_internal_unstable on associated item > rustc-1.39.0-src/src/libcore/str/mod.rs:2173: warn:0:Unexpected > attribute allow_internal_unstable on associated item > In file included from output/libcore.rlib.c:7: > output/libcore.rlib.c: In function > ‘ZRQG2ch4core50_0_03ffi10VaListImpl0g2cb05clone5Clone0gb30g’: > output/libcore.rlib.c:219717:10: warning: passing argument 1 of > ‘__builtin_va_copy’ from incompatible pointer type > [-Wincompatible-pointer-types] > 219717 | va_copy(var3, arg0); > | ^~~~ > | | > | struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g ** > output/libcore.rlib.c:219717:10: note: expected ‘__va_list *’ but > argument is of type ‘struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g **’ > output/libcore.rlib.c:219717:16: error: incompatible type for argument 2 of ‘__builtin_va_copy’ > 219717 | va_copy(var3, arg0); > | ^~~~ > | | > | struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g * > output/libcore.rlib.c:219717:16: note: expected ‘__va_list’ but > argument is of type ‘struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g *’ > C Compiler failed to execute - error code 256 > Process exited with non-zero exit status 1 > BUILD FAILED > make: *** [minicargo.mk:82: output/libstd.rlib] Error 1 > error: in phase 'build': uncaught exception: > %exception #<&invoke-error program: "make" arguments: ("-f" > "minicargo.mk" "output/rustc" "-j6" > "RUSTC_TARGET=aarch64-unknown-linux-gnu" "RUSTC_VERSION=1.39.0" > "MRUSTC_TARGET_VER=1.39" "OUTDIR_SUF=") exit-status: 2 term-signal: #f > stop-signal: #f> > phase `build' failed after 1006.4 seconds > command "make" "-f" "minicargo.mk" "output/rustc" "-j6" > "RUSTC_TARGET=aarch64-unknown-linux-gnu" "RUSTC_VERSION=1.39.0" > "MRUSTC_TARGET_VER=1.39" "OUTDIR_SUF=" failed with status 2 This is not a Rust but a (known) mrustc issue, which is used to bootstrap Rust starting at version 1.39.0. It currently only supports x86_64, although the author is interested in enabling support for other architectures (a WIP). Thanks, Maxim ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Aarch64 build of rust-1.39.0 fails 2021-12-20 2:55 ` Maxim Cournoyer @ 2021-12-22 10:51 ` phodina 2022-01-03 23:21 ` Denis 'GNUtoo' Carikli 1 sibling, 0 replies; 14+ messages in thread From: phodina @ 2021-12-22 10:51 UTC (permalink / raw) To: Maxim Cournoyer, Vagrant Cascadian; +Cc: phodina via Hi Vagrant and Maxim, thanks for the clarification. I do now see that the latest supported version is rust@1.39.0 om Aarch64 [1]. Thanks also Danny Milosavljevic for blog post on bootstrapping rust [2]. Yes, it's great that Rust is used more, however, at the same time it causes problems integrating it into the Guix system properly. ---- Petr [1] https://github.com/thepowersgang/mrustc [2] https://guix.gnu.org/en/blog/2018/bootstrapping-rust/ ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Aarch64 build of rust-1.39.0 fails 2021-12-20 2:55 ` Maxim Cournoyer 2021-12-22 10:51 ` phodina @ 2022-01-03 23:21 ` Denis 'GNUtoo' Carikli 2022-01-04 16:18 ` Maxim Cournoyer 1 sibling, 1 reply; 14+ messages in thread From: Denis 'GNUtoo' Carikli @ 2022-01-03 23:21 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: phodina via [-- Attachment #1: Type: text/plain, Size: 599 bytes --] On Sun, 19 Dec 2021 21:55:21 -0500 Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > This is not a Rust but a (known) mrustc issue, which is used to > bootstrap Rust starting at version 1.39.0. It currently only supports > x86_64, although the author is interested in enabling support for > other architectures (a WIP). So that's why it also fails on i686. In that case would it be possible to revert to the way it was before for non x86_64 architectures (so without mrustc), when it's done to switch the remaining architectures to mrustc when they become ready for that? Denis. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Aarch64 build of rust-1.39.0 fails 2022-01-03 23:21 ` Denis 'GNUtoo' Carikli @ 2022-01-04 16:18 ` Maxim Cournoyer 2022-01-04 17:41 ` Denis 'GNUtoo' Carikli 0 siblings, 1 reply; 14+ messages in thread From: Maxim Cournoyer @ 2022-01-04 16:18 UTC (permalink / raw) To: Denis 'GNUtoo' Carikli; +Cc: phodina via Hi Denis, Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> writes: > On Sun, 19 Dec 2021 21:55:21 -0500 > Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: >> This is not a Rust but a (known) mrustc issue, which is used to >> bootstrap Rust starting at version 1.39.0. It currently only supports >> x86_64, although the author is interested in enabling support for >> other architectures (a WIP). > So that's why it also fails on i686. > > In that case would it be possible to revert to the way it > was before for non x86_64 architectures (so without mrustc), when it's > done to switch the remaining architectures to mrustc when they become > ready for that? Rust has been bootstrapped via mrustc since September 2018 (commit 3159ef7c99c646b78b04cedb1bd3525c301ef978); I don't think it supported non-x86_64 back then, it's just that Rust wasn't as widely used as it is today so it had a lesser impact. The impact of the lack of Rust on non-x86_64 architectures has been reduced on non-x86_64 architectures on the master branch by workarounds such as using polkit-duktape in place of the regular polkit to avoid requiring Rust for non-x86_64 architectures or an older librsvg that can be used to build GTK without SVG support. The i686 native build of rust 1.39 via mrustc nearly succeeds, but fails due to GCC using too much memory (more than the 4 GiB limit imposed by 32 bit addressing). With the growth of Rust, there's growing value in contributing testing and patches to mrustc, so if you'd like to help Rust on Guix, that's currently the best option to pursue (there's a #mrustc channel on libera.chat where the mrustc author is often available). There's also a wip-cross-built-rust branch that I had started; I stopped working on it after finding out rustc couldn't be built statically; other than that it was working to build rust things on non-x86_64 platforms. Thanks, Maxim ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Aarch64 build of rust-1.39.0 fails 2022-01-04 16:18 ` Maxim Cournoyer @ 2022-01-04 17:41 ` Denis 'GNUtoo' Carikli 2022-01-04 22:22 ` Maxim Cournoyer 0 siblings, 1 reply; 14+ messages in thread From: Denis 'GNUtoo' Carikli @ 2022-01-04 17:41 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: phodina via [-- Attachment #1: Type: text/plain, Size: 2277 bytes --] On Tue, 04 Jan 2022 11:18:31 -0500 Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > Hi Denis, Hi, > The impact of the lack of Rust on non-x86_64 architectures has been > reduced on non-x86_64 architectures on the master branch by > workarounds such as using polkit-duktape in place of the regular > polkit to avoid requiring Rust for non-x86_64 architectures or an > older librsvg that can be used to build GTK without SVG support. > > The i686 native build of rust 1.39 via mrustc nearly succeeds, but > fails due to GCC using too much memory (more than the 4 GiB limit > imposed by 32 bit addressing). With the growth of Rust, there's > growing value in contributing testing and patches to mrustc, so if > you'd like to help Rust on Guix, that's currently the best option to > pursue (there's a #mrustc channel on libera.chat where the mrustc > author is often available). There's also a wip-cross-built-rust > branch that I had started; I stopped working on it after finding out > rustc couldn't be built statically; other than that it was working to > build rust things on non-x86_64 platforms. Thanks a lot. All the infos you gave me suggest that it's probably easier to try to build it from master than trying to go back in time (the approach I was trying). With both Guix system i686 and Parabola i686 (with linux-libre-pae) htop sees 8GiB of RAM on my laptop[1], and I've also 9G of swap available, and I can probably make it run builds the night, so I'll try to get that built on my laptop and report here and/or on IRC. Though at the end of the day, it'll really be fixed for everybody when official substitutes are available (as not everybody has that amount of RAM and the time to build it) and unfortunatelyu I can't help much with substitute (I guess it's just a matter of waiting for builds as soon as the build works reliability with enough RAM+swap). So beside reporting success/failures if that works, I'll probably try to fix other issues instead (tests fails on i686 for several packages) as I don't run substitute servers. References: ----------- [1] It's a Thinkpad x200 which is capable of running in x86_64 mode, but due to various reason my systems need to run in i686 mode. Denis. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Aarch64 build of rust-1.39.0 fails 2022-01-04 17:41 ` Denis 'GNUtoo' Carikli @ 2022-01-04 22:22 ` Maxim Cournoyer 2022-01-09 21:13 ` Denis 'GNUtoo' Carikli 0 siblings, 1 reply; 14+ messages in thread From: Maxim Cournoyer @ 2022-01-04 22:22 UTC (permalink / raw) To: Denis 'GNUtoo' Carikli; +Cc: phodina via Hi Denis, Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> writes: [...] > With both Guix system i686 and Parabola i686 (with linux-libre-pae) > htop sees 8GiB of RAM on my laptop[1], and I've also 9G of swap > available, and I can probably make it run builds the night, so I'll try > to get that built on my laptop and report here and/or on IRC. Actually I'm not sure I understand where the limits comes from; it seems when using 32 bits there's a 2 GB limit somewhere: https://github.com/thepowersgang/mrustc/issues/78#issuecomment-980830551 Note that you'll want to use the latest commit available of mrustc, or something recent enough like this in (gnu packages rust) as it includes recent fixes to the (still failing) i686 build: --8<---------------cut here---------------start------------->8--- ;;; Note: mrustc's only purpose is to be able to bootstap Rust; it's designed ;;; to be used in source form. The latest support for bootstrapping from ;;; 1.39.0 is not yet released so use the latest commit (see: ;;; https://github.com/thepowersgang/mrustc/issues/185). (define %mrustc-commit "c7066542f8e93d320323749216bf3c82aecb67c2") (define %mrustc-source (let* ((version "0.9") (commit %mrustc-commit) (revision "1") (name "mrustc")) (origin (method git-fetch) (uri (git-reference (url "https://github.com/thepowersgang/mrustc") (commit commit))) (file-name (git-file-name name (git-version version revision commit))) (sha256 (base32 "0zv1x6601s5fnnkcdlqkc4bknisqz569qb0iyb9rjsmaf1kh0na3"))))) --8<---------------cut here---------------end--------------->8--- HTH, Maxim ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Aarch64 build of rust-1.39.0 fails 2022-01-04 22:22 ` Maxim Cournoyer @ 2022-01-09 21:13 ` Denis 'GNUtoo' Carikli 2022-01-10 21:22 ` Maxim Cournoyer 0 siblings, 1 reply; 14+ messages in thread From: Denis 'GNUtoo' Carikli @ 2022-01-09 21:13 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: phodina via [-- Attachment #1: Type: text/plain, Size: 959 bytes --] On Tue, 04 Jan 2022 17:22:02 -0500 Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > Hi Denis, Hi, > Note that you'll want to use the latest commit available of mrustc, or > something recent enough like this in (gnu packages rust) as it > includes recent fixes to the (still failing) i686 build: With ./build-1.39.0.sh in mrustc, some help from #mrustc, and some local patches, I was able to get it build under 4GiB of RAM per process with an x86_64 kernel (by removing -O2 and -g), but it fails for 3GiB of RAM per process (i686 kernel) no mater what options are passed to it. My issue is that claws-mail now depend on rust (it didn't before). As several other pakcages also fails on i686 (failing tests), and that I also hit a Guix bug, it's hard for me to fix it as everything is broken and I need to do workarounds on workarounds. What do I need to revert (locally?) to make claws-mail not depend on rust (for i686)? Denis. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Aarch64 build of rust-1.39.0 fails 2022-01-09 21:13 ` Denis 'GNUtoo' Carikli @ 2022-01-10 21:22 ` Maxim Cournoyer 2022-01-11 13:34 ` Efraim Flashner 0 siblings, 1 reply; 14+ messages in thread From: Maxim Cournoyer @ 2022-01-10 21:22 UTC (permalink / raw) To: Denis 'GNUtoo' Carikli; +Cc: phodina via Hi Denis, Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> writes: > On Tue, 04 Jan 2022 17:22:02 -0500 > Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > >> Hi Denis, > Hi, > >> Note that you'll want to use the latest commit available of mrustc, or >> something recent enough like this in (gnu packages rust) as it >> includes recent fixes to the (still failing) i686 build: > With ./build-1.39.0.sh in mrustc, some help from #mrustc, and some local > patches, I was able to get it build under 4GiB of RAM per process with > an x86_64 kernel (by removing -O2 and -g), but it fails for 3GiB of RAM > per process (i686 kernel) no mater what options are passed to it. Thank you for doing the experiment and sharing the result! I've relayed it to mrustc's author here: https://github.com/thepowersgang/mrustc/issues/78, I hope you don't mind. > My issue is that claws-mail now depend on rust (it didn't before). As > several other pakcages also fails on i686 (failing tests), and that I > also hit a Guix bug, it's hard for me to fix it as everything is > broken and I need to do workarounds on workarounds. The situation with Rust on Guix is far from satisfactory, and the usage of Rust continues to expand, we'll have to find solutions. GCC-rust seems like a good candidate to help us bootstrap for more platforms, but it isn't ready yet. mrustc is the current best option; cross-building rust could be another thing to do (there's a wip-cross-built-rust branch that I had started to explore doing this), but it's a messier path. > What do I need to revert (locally?) to make claws-mail not depend on > rust (for i686)? I don't see this relationship locally: $ guix graph --path claws-mail rust $ guix describe 5b95cad85018e64f2a34ef950dd2e5434d07cfc0 But looking at the package definition, it explicitly depends on librsvg, which is a Rust-powered library. You could try to make this input conditional (e.g., add it only when the system is x86_64), if claws-mail can be built without it. Thanks, Maxim ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Aarch64 build of rust-1.39.0 fails 2022-01-10 21:22 ` Maxim Cournoyer @ 2022-01-11 13:34 ` Efraim Flashner 2022-01-14 23:27 ` Denis 'GNUtoo' Carikli 0 siblings, 1 reply; 14+ messages in thread From: Efraim Flashner @ 2022-01-11 13:34 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: phodina via [-- Attachment #1: Type: text/plain, Size: 2493 bytes --] On Mon, Jan 10, 2022 at 04:22:17PM -0500, Maxim Cournoyer wrote: > Hi Denis, > > Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> writes: > > > On Tue, 04 Jan 2022 17:22:02 -0500 > > Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > > > >> Hi Denis, > > Hi, > > > >> Note that you'll want to use the latest commit available of mrustc, or > >> something recent enough like this in (gnu packages rust) as it > >> includes recent fixes to the (still failing) i686 build: > > With ./build-1.39.0.sh in mrustc, some help from #mrustc, and some local > > patches, I was able to get it build under 4GiB of RAM per process with > > an x86_64 kernel (by removing -O2 and -g), but it fails for 3GiB of RAM > > per process (i686 kernel) no mater what options are passed to it. > > Thank you for doing the experiment and sharing the result! I've relayed > it to mrustc's author here: > https://github.com/thepowersgang/mrustc/issues/78, I hope you don't > mind. > > > My issue is that claws-mail now depend on rust (it didn't before). As > > several other pakcages also fails on i686 (failing tests), and that I > > also hit a Guix bug, it's hard for me to fix it as everything is > > broken and I need to do workarounds on workarounds. > > The situation with Rust on Guix is far from satisfactory, and the usage > of Rust continues to expand, we'll have to find solutions. GCC-rust > seems like a good candidate to help us bootstrap for more platforms, but > it isn't ready yet. mrustc is the current best option; cross-building > rust could be another thing to do (there's a wip-cross-built-rust branch > that I had started to explore doing this), but it's a messier path. > > > What do I need to revert (locally?) to make claws-mail not depend on > > rust (for i686)? > > I don't see this relationship locally: > > $ guix graph --path claws-mail rust > $ guix describe > 5b95cad85018e64f2a34ef950dd2e5434d07cfc0 > > But looking at the package definition, it explicitly depends on librsvg, > which is a Rust-powered library. You could try to make this input > conditional (e.g., add it only when the system is x86_64), if claws-mail > can be built without it. Specifically, try replacing librsvg with librsvg-for-system -- 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] 14+ messages in thread
* Re: Aarch64 build of rust-1.39.0 fails 2022-01-11 13:34 ` Efraim Flashner @ 2022-01-14 23:27 ` Denis 'GNUtoo' Carikli 2022-01-18 4:36 ` Maxim Cournoyer 0 siblings, 1 reply; 14+ messages in thread From: Denis 'GNUtoo' Carikli @ 2022-01-14 23:27 UTC (permalink / raw) To: Efraim Flashner; +Cc: phodina via [-- Attachment #1: Type: text/plain, Size: 1174 bytes --] On Tue, 11 Jan 2022 15:34:00 +0200 Efraim Flashner <efraim@flashner.co.il> wrote: > Specifically, try replacing librsvg with librsvg-for-system Thanks a lot. I've now managed to build almost all of the system.scm I was using by patching several packages to: - use librsvg-for-system instead of librsvg - not use gjs for i686 - disable some or all tests for i686. I'm currently in the process of converting all that to proper patches. Though I still have an issue before being able to run guix system reconfigure. If I add gdm in my packages list, it doesn't bring in rust as dependencies anymore. But if I don't comment the following code, it brings rust again: > (service gdm-service-type (gdm-configuration (debug? #t) > (wayland? #t))) And it does that even without debug and wayland (I didn't test with debug and wayland before because the issue in this thread prevented me from doing that). Without debug and wayland, it worked before, but here I'm not fluent enough in scheme yet to properly understand how the service definition really work and to pinpoint the cause of it. Denis. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Aarch64 build of rust-1.39.0 fails 2022-01-14 23:27 ` Denis 'GNUtoo' Carikli @ 2022-01-18 4:36 ` Maxim Cournoyer 2022-01-18 6:15 ` Denis 'GNUtoo' Carikli 0 siblings, 1 reply; 14+ messages in thread From: Maxim Cournoyer @ 2022-01-18 4:36 UTC (permalink / raw) To: Denis 'GNUtoo' Carikli; +Cc: phodina via Hi Denis, Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> writes: > On Tue, 11 Jan 2022 15:34:00 +0200 > Efraim Flashner <efraim@flashner.co.il> wrote: > >> Specifically, try replacing librsvg with librsvg-for-system > Thanks a lot. > > I've now managed to build almost all of the system.scm I was using by > patching several packages to: > - use librsvg-for-system instead of librsvg > - not use gjs for i686 > - disable some or all tests for i686. > > I'm currently in the process of converting all that to proper patches. > > Though I still have an issue before being able to run guix system > reconfigure. > > If I add gdm in my packages list, it doesn't bring in rust as > dependencies anymore. > > But if I don't comment the following code, it brings rust again: >> (service gdm-service-type (gdm-configuration (debug? #t) >> (wayland? #t))) > And it does that even without debug and wayland (I didn't test with > debug and wayland before because the issue in this thread prevented me > from doing that). gdm depends on gjs IIRC, which is bound to mozjs, which requires rust. So you should use another login manager such as lightdm or slim. HTH! Maxim ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Aarch64 build of rust-1.39.0 fails 2022-01-18 4:36 ` Maxim Cournoyer @ 2022-01-18 6:15 ` Denis 'GNUtoo' Carikli 0 siblings, 0 replies; 14+ messages in thread From: Denis 'GNUtoo' Carikli @ 2022-01-18 6:15 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: phodina via [-- Attachment #1: Type: text/plain, Size: 696 bytes --] On Mon, 17 Jan 2022 23:36:42 -0500 Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote: > gdm depends on gjs IIRC, which is bound to mozjs, which requires rust. > So you should use another login manager such as lightdm or slim. I'm running Guix system i686 and I use GDM, including the service to have it started at boot, and it works, but I didn't manage to run guix system reconfigure recently yet because of the issue mentioned in this thread. With my patches, I can install gdm without GJS, it's only the gdm service that brings rust as dependency, not the gdm package. To be able to install gdm without rust, I had to use the right librsvg in gnome-settings-daemon. Denis. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2022-01-18 6:29 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-12-16 13:14 Aarch64 build of rust-1.39.0 fails phodina via 2021-12-17 16:37 ` Vagrant Cascadian 2021-12-20 2:55 ` Maxim Cournoyer 2021-12-22 10:51 ` phodina 2022-01-03 23:21 ` Denis 'GNUtoo' Carikli 2022-01-04 16:18 ` Maxim Cournoyer 2022-01-04 17:41 ` Denis 'GNUtoo' Carikli 2022-01-04 22:22 ` Maxim Cournoyer 2022-01-09 21:13 ` Denis 'GNUtoo' Carikli 2022-01-10 21:22 ` Maxim Cournoyer 2022-01-11 13:34 ` Efraim Flashner 2022-01-14 23:27 ` Denis 'GNUtoo' Carikli 2022-01-18 4:36 ` Maxim Cournoyer 2022-01-18 6:15 ` Denis 'GNUtoo' Carikli
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).