Go to file
Eric Le Bihan b50522d838 rust: new package
This new package provides rustc, the compiler for the Rust programming
language, built from source.

Currently, only the host variant is built.

The Rust compiler uses LLVM as its backend: a copy of LLVM source code
is provided and CMake is used to build it. It is possible to use a
pre-built external copy. When LLVM/clang will be available in Buildroot,
it would be possible to benefit from this feature and thus decrease
build time.

LLVM is configured to generate code for x86, ARM, PowerPC and MIPS
architectures.

The Rust compiler uses Cargo as its build system and is written in Rust.
Therefore this package depends on cargo-bin and rust-bin.

The internal build process is as follows:

 1. stage0 compiler, provided by rust-bin, is used to build stage1
    compiler.
 2. stage1 compiler builds the final Rust compiler (stage2 compiler)
    and the standard library for the host architecture.
 3. the standard library for the target architecture is built.

The target architecture to support is given by the GNU/LLVM target
triple. Rust supports some predefined targets [1]. As the build system
expects the triple to be in the form of <arch>-unknown-<system> and
Buildroot toolchain wrapper uses <arch>-buildroot-<system>, the package
Makefile uses $(RUST_TARGET_NAME) defined in the rustc package and uses
it instead of $(GNU_TARGET_NAME).

When compiling Rust code with this compiler, the generated program only
depends on the target C library, as it is statically linked to the Rust
standard library and any other code from Rust packages (a.k.a.
"crates").

If the jemalloc package is selected, support for this memory allocator
will be enabled in the target standard library.

The menuconfig entry for rustc is also updated to expose this provider.

[1] https://forge.rust-lang.org/platform-support.html

Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-02-05 14:57:47 +01:00
arch arch: add Atom CPUs as Silvermont Architecture target 2018-01-01 13:05:16 +01:00
board qemu_x86: use kernel 4.15 2018-02-03 08:25:25 +01:00
boot uboot: bump to version 2018.01 2018-01-12 22:45:24 +01:00
configs configs/mx53loco: Bump U-Boot and kernel versions 2018-02-05 14:42:45 +01:00
docs Makefile, manual, website: Bump copyright year 2018-02-01 16:49:41 +01:00
fs fs: pass EXTRA_ENV to post-fakeroot script 2018-01-15 21:37:39 +01:00
linux linux: bump default to version 4.15.1 2018-02-03 19:54:27 +01:00
package rust: new package 2018-02-05 14:57:47 +01:00
support support/dockker: create and push tagged images 2018-02-04 21:58:59 +01:00
system system: only expose getty options for busybox and sysvinit 2018-01-12 22:07:59 +01:00
toolchain toolchain: add 4.15.x choice for headers 2018-01-28 23:48:21 +01:00
utils scanpypi: fix code style 2018-01-29 23:14:24 +01:00
.defconfig arch: remove support for sh64 2016-09-08 22:15:15 +02:00
.flake8 .flake8: add config file for Python code style 2017-10-06 19:05:18 +02:00
.gitignore
.gitlab-ci.yml core/tests: add test for compressed iso9660 2017-12-31 18:20:14 +01:00
.gitlab-ci.yml.in gitlab-ci: add .config to artefacts 2017-12-30 22:36:07 +01:00
CHANGES CHANGES: update with recent changes 2018-02-05 00:49:07 +01:00
Config.in security hardening: add RELFO, FORTIFY options 2018-01-28 15:21:14 +01:00
Config.in.legacy linux-headers: drop old unsupported 3.x versions 2018-02-04 00:02:35 +01:00
COPYING COPYING: add exception about patch licensing 2016-02-26 19:50:13 +01:00
DEVELOPERS rust: new package 2018-02-05 14:57:47 +01:00
Makefile Makefile, manual, website: Bump copyright year 2018-02-01 16:49:41 +01:00
Makefile.legacy Remove BR2_DEPRECATED 2016-10-15 23:14:45 +02:00
README README: add reference to submitting-patches 2016-02-01 19:16:08 +01:00

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on Freenode IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches