Message ID | d9f4c9ad1f572959ad53cd1632614c86b52145b2.1700665986.git.efraim@flashner.co.il |
---|---|
State | New |
Headers | show |
Series | [bug#67506] guix: platform: Add platform-rust-architecture. | expand |
Hello, The patch series looks good to me. I was thinking of something similar to this in order to add a procedure to cross compile the `std` target so that the rust package can use it. I was thinking that maybe the RUST-ARCHITECTURE could be called RUST-TARGET and that it could be a list (RUST-TARGETS) as some GCC multilib targets don't have a single RUST-TARGET, namely arm-none-eabi and avr, but the latter only has one rust target but the intention from the existing target is to add more as needed I think, as the avr-unknown-gnu-atmega328 target is MCU specific. But given that there are zero multilib targets present in GNU Guix as of now I think it can stay as a string. Cheers,
On Fri, Dec 01, 2023 at 02:39:44PM +0000, Jean-Pierre De Jesus Diaz via Guix-patches via wrote: > Hello, > > The patch series looks good to me. I was thinking of something > similar to this in order > to add a procedure to cross compile the `std` target so that the rust > package can use it. > > I was thinking that maybe the RUST-ARCHITECTURE could be called RUST-TARGET and > that it could be a list (RUST-TARGETS) as some GCC multilib targets > don't have a single > RUST-TARGET, namely arm-none-eabi and avr, but the latter only has one > rust target > but the intention from the existing target is to add more as needed I > think, as the > avr-unknown-gnu-atmega328 target is MCU specific. > > But given that there are zero multilib targets present in GNU Guix as > of now I think > it can stay as a string. I like rust-target better than rust-architecture. I suppose we can look at changing it to rust-targets later if necessary but currently rust cross-builds aren't setup to accept a list of targets. We can always change it later if necessary.
>I like rust-target better than rust-architecture. I suppose we can look >at changing it to rust-targets later if necessary but currently rust >cross-builds aren't setup to accept a list of targets. > >We can always change it later if necessary. Agreed, should be changed later. -- Jean-Pierre De Jesus DIAZ Foundation Devices, Inc.
On Mon, Dec 11, 2023 at 12:33 PM Jean-Pierre De Jesus Diaz via Guix-patches via <guix-patches@gnu.org> wrote: > > >I like rust-target better than rust-architecture. I suppose we can look > >at changing it to rust-targets later if necessary but currently rust > >cross-builds aren't setup to accept a list of targets. > > > >We can always change it later if necessary. > > Agreed, should be changed later. This commit is causing a world rebuild for me back to gcc-mesboot-4.9.4; however, CI only includes 182 packages in the evaluation at https://ci.guix.gnu.org/eval/972727. Might it matter that I do not have substitute servers enabled? Greg
diff --git a/guix/platform.scm b/guix/platform.scm index 55917ca308..bcc2bc3e16 100644 --- a/guix/platform.scm +++ b/guix/platform.scm @@ -29,6 +29,7 @@ (define-module (guix platform) platform-target platform-system platform-linux-architecture + platform-rust-architecture platform-glibc-dynamic-linker &platform-not-found-error @@ -74,6 +75,8 @@ (define-record-type* <platform> platform make-platform (system platform-system) (linux-architecture platform-linux-architecture (default #false)) + (rust-architecture platform-rust-architecture + (default #false)) (glibc-dynamic-linker platform-glibc-dynamic-linker)) diff --git a/guix/platforms/arm.scm b/guix/platforms/arm.scm index 32c0fbc032..02337ee6b3 100644 --- a/guix/platforms/arm.scm +++ b/guix/platforms/arm.scm @@ -27,6 +27,7 @@ (define armv7-linux (target "arm-linux-gnueabihf") (system "armhf-linux") (linux-architecture "arm") + (rust-architecture "armv7-unknown-linux-gnueabihf") (glibc-dynamic-linker "/lib/ld-linux-armhf.so.3"))) (define aarch64-linux @@ -34,4 +35,5 @@ (define aarch64-linux (target "aarch64-linux-gnu") (system "aarch64-linux") (linux-architecture "arm64") + (rust-architecture "aarch64-unknown-linux-gnu") (glibc-dynamic-linker "/lib/ld-linux-aarch64.so.1"))) diff --git a/guix/platforms/mips.scm b/guix/platforms/mips.scm index e6fa9eb292..5c1aef5f4f 100644 --- a/guix/platforms/mips.scm +++ b/guix/platforms/mips.scm @@ -26,4 +26,5 @@ (define mips64-linux (target "mips64el-linux-gnu") (system "mips64el-linux") (linux-architecture "mips") + (rust-architecture "mips64el-unknown-linux-gnuabi64") (glibc-dynamic-linker "/lib/ld.so.1"))) diff --git a/guix/platforms/powerpc.scm b/guix/platforms/powerpc.scm index 1c7141ab42..9730e74288 100644 --- a/guix/platforms/powerpc.scm +++ b/guix/platforms/powerpc.scm @@ -28,6 +28,7 @@ (define powerpc-linux (target "powerpc-linux-gnu") (system "powerpc-linux") (linux-architecture "powerpc") + (rust-architecture "powerpc-unknown-linux-gnu") (glibc-dynamic-linker "/lib/ld.so.1"))) (define powerpc64-linux @@ -35,6 +36,7 @@ (define powerpc64-linux (target "powerpc64-linux-gnu") (system #f) ;not supported (linux-architecture "powerpc") + (rust-architecture "powerpc64-unknown-linux-gnu") (glibc-dynamic-linker "/lib/ld64.so.1"))) (define powerpc64le-linux @@ -42,4 +44,5 @@ (define powerpc64le-linux (target "powerpc64le-linux-gnu") (system "powerpc64le-linux") (linux-architecture "powerpc") + (rust-architecture "powerpc64le-unknown-linux-gnu") (glibc-dynamic-linker "/lib/ld64.so.2"))) diff --git a/guix/platforms/riscv.scm b/guix/platforms/riscv.scm index c716c12c12..ec400a2f0c 100644 --- a/guix/platforms/riscv.scm +++ b/guix/platforms/riscv.scm @@ -26,4 +26,5 @@ (define riscv64-linux (target "riscv64-linux-gnu") (system "riscv64-linux") (linux-architecture "riscv") + (rust-architecture "riscv64gc-unknown-linux-gnu") (glibc-dynamic-linker "/lib/ld-linux-riscv64-lp64d.so.1"))) diff --git a/guix/platforms/x86.scm b/guix/platforms/x86.scm index 6f547dd770..05c69f0d4c 100644 --- a/guix/platforms/x86.scm +++ b/guix/platforms/x86.scm @@ -30,6 +30,7 @@ (define i686-linux (target "i686-linux-gnu") (system "i686-linux") (linux-architecture "i386") + (rust-architecture "i686-unknown-linux-gnu") (glibc-dynamic-linker "/lib/ld-linux.so.2"))) (define x86_64-linux @@ -37,22 +38,26 @@ (define x86_64-linux (target "x86_64-linux-gnu") (system "x86_64-linux") (linux-architecture "x86_64") + (rust-architecture "x86_64-unknown-linux-gnu") (glibc-dynamic-linker "/lib/ld-linux-x86-64.so.2"))) (define i686-mingw (platform (target "i686-w64-mingw32") (system #f) + (rust-architecture "i686-pc-windows-gnu") (glibc-dynamic-linker #f))) (define x86_64-mingw (platform (target "x86_64-w64-mingw32") (system #f) + (rust-architecture "x86_64-pc-windows-gnu") (glibc-dynamic-linker #f))) (define i586-gnu (platform (target "i586-pc-gnu") (system "i586-gnu") + (rust-architecture "i686-unknown-hurd-gnu") (glibc-dynamic-linker "/lib/ld.so.1")))