All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Corcoles <alex@corcoles.net>
To: buildroot@busybox.net
Subject: [Buildroot] "PATCH": hack to be able to build Rust targetting MIPS
Date: Mon, 3 Feb 2020 18:08:20 +0100	[thread overview]
Message-ID: <CAPAYC_wFywnPH6j8muHXvX1n+bLrWkZxBMrm+ywXQAyTbvsK8Q@mail.gmail.com> (raw)
In-Reply-To: <CAPAYC_xA2zkmmADgr9G2mspcS=Ej16wOM75rT-aCKbK42hzk5g@mail.gmail.com>

I've finally had more time to play with this. It seems that
mipsel-unknown-linux-uclibc works! I've been able to run software built
with it on a real hardware device, although it's very crashy (all
arithmetic operations seem to crash with illegal instruction- probably I
didn't configure my toolchain right or there's a Rust issue...).

I would suggest removing the limitation on uclibc... perhaps with a big
warning flag, though, as I haven't managed to build complex, stable
software.

I've written a bit about the process at:

https://users.rust-lang.org/t/trying-to-compile-rust-sdl-stuff-for-a-rg300-console-buildroot-mipsel-uclibc/36722
https://github.com/alexpdp7/retrofw2-rust

Cheers,

?lex

On Mon, Jan 20, 2020 at 5:31 PM Alex Corcoles <alex@corcoles.net> wrote:

> Hi!
>
> The RUSTC_TARGET_NAME variable is defined in rustc.mk only if the symbol
>> BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS is selected. This symbols is
>> used to ensure all the conditions to build a rust package are met. One
>> of them is that the toolchain is glibc-based. This is required, because
>> the standard library provided by the pre-built host Rust toolchain is
>> built against glibc.
>>
>> In your defconfig, the toolchain is uclibc-based and the host Rust
>> toolchain is built from source.
>>
>> Hence BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS is not defined and so
>> is RUSTC_TARGET_NAME.
>>
>> So there is a bug: the restriction on having a glibc-based toolchain
>> should apply either when using a pre-built rust toolchain or building
>> one from source. I'll see how to fix it.
>>
>> The list of supported platforms [1] mentions GNU glibc and musl, but not
>> uclibc. Does the build with your defconfig and patch successful?
>>
>> [1] https://forge.rust-lang.org/release/platform-support.html
>>
>
> I think I built it successfully after introducing my hack, but as far as I
> understand, it is not guaranteed to build in the future (and the opposite
> is true, perhaps if it doesn't build today, it will tomorrow). In the link
> you sent, mipsel-unknown-linux-uclibc is Tier 3 with std.
>
> If I have some time I will play around with it and see you some results.
>
> IMHO, perhaps you should hide non Tier-1 platforms behind an "enable this
> option for non-Tier 1 Rust builds which are not guaranteed to work", or
> something like that.
>
> Cheers,
>
> ?lex
>
> --
>    ___
>  {~._.~}
>   ( Y )
>  ()~*~()  mail: alex at corcoles dot net
>  (_)-(_)  http://alex.corcoles.net/
>
>

-- 
   ___
 {~._.~}
  ( Y )
 ()~*~()  mail: alex at corcoles dot net
 (_)-(_)  http://alex.corcoles.net/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20200203/e8cfc0c9/attachment.html>

  reply	other threads:[~2020-02-03 17:08 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAPAYC_xPtDO=j3fWeOEbC41X3PXJZ+7AD=WRm8A1DGQrtbadFQ@mail.gmail.com>
2020-01-18 18:46 ` [Buildroot] "PATCH": hack to be able to build Rust targetting MIPS Alex Corcoles
2020-01-18 19:58   ` Alex Corcoles
2020-01-18 21:27   ` Yann E. MORIN
2020-01-19 19:40     ` Alex Corcoles
2020-01-19 21:31   ` Eric Le Bihan
2020-01-20 16:31     ` Alex Corcoles
2020-02-03 17:08       ` Alex Corcoles [this message]
2020-02-03 17:14         ` [Buildroot] Fwd: " Alex Corcoles
2020-02-05 17:21         ` [Buildroot] " Alex Corcoles
2020-02-06 17:18           ` Alex Corcoles
2020-02-06 17:50             ` Vincent Fazio
2020-02-06 18:00               ` Alex Corcoles

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPAYC_wFywnPH6j8muHXvX1n+bLrWkZxBMrm+ywXQAyTbvsK8Q@mail.gmail.com \
    --to=alex@corcoles.net \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.