239 Commits

Author SHA1 Message Date
Johan Anderholm bbf4f77f98 Bump to Rust 1.27.1 2018-07-18 08:15:34 +02:00
Steven Walter 8b471a1bdc libstd-rs: use a separate variable for --features
This will allow features to be easily modified through a bbappend file
in another layer.
2018-07-16 09:09:10 -04:00
Steven Walter cef09a5551 libstd-rs: support debug builds 2018-07-12 11:03:16 -04:00
Johan Anderholm 8e6c6271fc Handle env and llvm-target for musl
Further changes needed for musl to work.
env needs to be set to "musl" for unwinding work properly.
Also the llvm target should end with "-musl" and not "-gnu".
2018-07-06 19:34:33 +02:00
Johan Anderholm 6066f1d2df Corrected target-c-int-width
The correct value for x86_64 and aarch64 is 32
2018-07-06 19:34:33 +02:00
Johan Anderholm 6a0d148968 Make it possible to build with TCLIBC="musl" (musl as libc) 2018-07-06 19:34:33 +02:00
Johan Anderholm e1fa6d39ce Don't install rust-llvm system-wide
Put rust-llvm into a directory of it's own. This avoids conflicts
between the official llvm and rusts temporary one. It solves
interoperability issues with meta-clang.

Use /usr/lib/llvm-rust/ as prefix because that matches what llvm does
themselves on debian and ubuntu.
2018-07-06 19:30:36 +02:00
Johan Anderholm 03d8fb472c Bump to Rust 1.26.2
Remove old versions because they are not compatible with the changes in
rust-common.bbclass
2018-06-16 09:50:47 +02:00
Jonathan Creekmore 575016d11d Remove Rust 1.24.0 in favor of 1.24.1
The Rust maintainers released 1.24.1 because several minor regressions
were found in the 1.24.0 release that collectively merited an updated
release.
2018-03-02 12:59:28 -06:00
Adam Schwalm 0639277e4c Add 1.24.0 for rocko 2018-02-27 16:19:12 -06:00
Andrei Gherzan 69ae1df12e libstd-rs: Set SONAME for libstd.so
When yocto is searching for lib dependencies it uses SONAMES and RPATHS to find
the right one. When we compile a rust package which dynamically links to rust's
libstd, yocto will not be able to find the matching dependency in shlib and
will complain with a warning. Even worse, if you have compiled go-runtime, the
build will find go-runtime as provider of libstd and will complain that you
missed a RDEPENDS to go-runtime - this is completely wrong obviously.

This patch adds SONAME to rust's stdlib. In this way yocto will create the
required provider and packages dynamically linking to it will be able to find
libstd-rs as a provider of stdlib.

Signed-off-by: Andrei Gherzan <andrei@resin.io>
2018-02-26 17:43:09 +00:00
Derek Straka a19993c804 Merge branch 'master' into panic-strategy 2018-01-26 08:28:06 -05:00
Tyler Hall 52ea673a8f rust: allow configuring panic-strategy
This defaults to "unwind" if not set, so this alone has no effect.

Signed-off-by: Tyler Hall <tylerwhall@gmail.com>
2018-01-23 17:54:15 -05:00
Kyle Russell 4c7cbf6a60 rust-llvm: remove custom do_compile
This works out in recent poky releases because cmake_do_compile ends up
in oe_runmake via base_do_compile, but this changed recently to allow
cmake's generic `cmake --build` feature to call the appropriate
generator instead of always assuming make.

http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit?id=579d17ba5f722edb9fe79682480c4a9508ad0ed4
2018-01-23 17:31:43 -05:00
Johan Anderholm f02df59eea Add support for the mips32 architecture
Support for mips32 big (mips) and little endian (mipsel) for mips32
and mips32r2 cpus. The big endian target can be verified with the
qemumips machine.
2017-12-01 19:36:15 +01:00
Johan Anderholm 141177fbf9 rust: specify target-c-int-width
The "target_c_int_width field is added to librustc_back since rust
1.22.0 because not all rust targets (e.g. msp430-none-elf, avr)
have 32-bit int types any more.
2017-11-27 15:48:54 -06:00
Tyler Hall 528a34206b rustc: always allow unstable options 2017-11-03 12:41:51 -04:00
Tyler Hall 434f7851f5 Fix path substitution 2017-11-03 12:41:51 -04:00
Jonathan Creekmore b28674a452 support Rust 1.21.0 and Cargo 0.22.0 2017-10-31 16:45:30 -05:00
Doug Goldstein d231fcb708 drop Rust 1.15.1 / Cargo 0.16 2017-10-10 11:22:26 -05:00
Johan Anderholm 37813c4dff rust: Don't specify allocator for >= 1.20.0
System allocator is the default in rust.
2017-09-30 11:23:29 +02:00
Johan Anderholm 2fd83daa46 libstd: correct path to COPYRIGHT 2017-09-30 11:22:58 +02:00
Doug Goldstein 3bf7088579 bump to Rust 1.20.0 and Cargo 0.21 2017-09-29 15:37:16 -05:00
Johan Anderholm a4fe235317 Switch to rustbuild
Switch the build process to using Rust's new build system called
rustbuild. At the same time stop using jemalloc on all platforms and
switch to the system allocator since that was simplier to do.
2017-09-29 09:49:33 -05:00
Doug Goldstein 1ff41650d5 cargo: convert to versioned include file
We'll need the prior version of cargo to boot strap ourselves going
forward so include the version info so we can support multiple versions
in the tree.
2017-09-29 09:49:31 -05:00
Doug Goldstein 398fecb48c cargo: convert recipe to cargo-bitbake
Generate the Cargo recipe with cargo-bitbake instead of having a
handcrafted recipe. This should make future version bumps easier.

Three known issues:
- license checksum of the Apache license is a generateme value
  due to the license file having a difference name then what's in
  Cargo.toml.
- branch= value was wrong for tags. Pointed to HEAD instead of the
  branch that the underlying tag commit came from.
- Use https protocol when the repo is publicly accessible.
2017-06-21 15:14:37 -05:00
Doug Goldstein 06a138a4a4 rust: drop custom target finding patch
We shouldn't need to patch rustc to find the target but instead pass the
full path to the target spec. This should solve #138.
2017-06-21 11:52:28 -05:00
Johan Anderholm 3e0f03d12a cargo: build cargo using cargo and not make
Instead of using the configure script paired with make, use Cargo to
build Cargo. This moves us closer to being compatible with rustbuild.
2017-06-21 11:52:28 -05:00
Doug Goldstein bb41c50510 compiler-rt: drop unused bits
Since 1db27bc4f7 this file is unused and should have been deleted with
that commit.
2017-06-21 11:50:30 -05:00
Doug Goldstein 1db27bc4f7 drop Rust 1.12.1 and Cargo 0.13
In keeping with our Rust supported releases schedule at
https://github.com/meta-rust/meta-rust/wiki this drops Rust 1.12.1 and
its cooresponding Cargo release.
2017-06-18 11:17:30 -05:00
Kyle Russell 027b7aeeb0 rust-llvm: Fix bad license checksum for 1.15.1 2017-04-19 13:43:47 -04:00
Kyle Russell 8e28683458 rust-llvm: Drop unnecessary native customization
This is already accounted for by the LLVM CMake files, assuming
CMAKE_CROSSCOMPILING is set correctly, which is fixed in the upstream
cmake.bbclass.

http://git.openembedded.org/openembedded-core/commit/?id=bd082c9be6191e67ea1b1bf10ce5e130a3433ab5
2017-04-19 08:21:54 -04:00
Doug Goldstein 1820907990 compiler-rt: remove standalone build for Rust 1.15
From Rust 1.15 a standalone build of compiler-rt is no longer necessary.
2017-03-07 20:25:13 -06:00
Doug Goldstein 5a9614f91a bump to Rust 1.15.1 2017-03-07 19:19:00 -06:00
Derek Straka f851e8f185 Bump to Cargo 0.16.0 for Rust 1.15.x
Signed-off-by: Derek Straka <derek@asterius.io>
2017-03-07 16:30:26 -06:00
Doug Goldstein bc04c2ea4a libstd-rs: move depends out of the shared file
Technically these dependencies change between versions. It just happens
that these two versions didn't change the dependencies but future
versions will so preemptively make the adjustment.
2017-03-07 14:41:13 -06:00
Derek Straka 64cdd4b714 Update the source paths for each item
The path to the rust source changes from 1.15 so preemptively make
changes to prepare for that.

Signed-off-by: Derek Straka <derek@asterius.io>
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2017-03-07 14:41:13 -06:00
Steven Walter 3276afb4ec rust-llvm.inc: work around build race
The way LLVM builds its native utilities is not safe (it runs a
recursive cmake in the same work directory as the main instance).  To
prevent those instances from stepping on each other, we'll build the two
native utilities separately before starting the main build.

Fixes issue #143
2017-01-31 08:23:55 -05:00
Doug Goldstein 22c971c2fa bump to Rust 1.14.0 2017-01-30 10:16:39 -06:00
Doug Goldstein 5d2e062a84 rust: move versioned files into .inc
This way we can bump the versions without big diffs.
2017-01-30 10:14:29 -06:00
Derek Straka 97fcc5db56 rust: update the cpu selection to use PACKAGE_ARCH to ensure older processors can run created executables when building targets that have newer features
Signed-off-by: Derek Straka <derek@asterius.io>
2017-01-04 17:15:07 -05:00
Doug Goldstein 4ccca55f2f rust: remove unused patches
This patches handle changing the directories that things are installed
in but appear to be unused. They were likely used before rust-cross was
split out to not install files.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2016-12-28 18:42:10 -06:00
Doug Goldstein c19badf635 rust: drop unnecessary patch
Not sure what version this patch appears to have become unnecessary but
I verified it by checking the output in
build/tmp/sstate-control/manifest-x86_64-rust-native.populate_sysroot
and the installed files and their paths didn't change with and without
this patch.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2016-12-27 11:36:36 -06:00
Leon Anavi abe20ca06f compiler-rt: fix toolchain installer
Fix building a toolchain installer with bitbake
-c populate_sdk in packages compiler-rt,
compiler-rt-dev and compiler-rt-staticdev.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
(cherry picked from commit fcbebdf58f)
2016-12-27 00:03:15 -06:00
Doug Goldstein 04bd03be1e libstd-rs: update to use Cargo 0.13.0 fetching 2016-12-07 15:14:10 -06:00
Doug Goldstein 84af8005f3 cargo: update to use Cargo 0.13.0 fetching 2016-12-07 15:14:10 -06:00
Doug Goldstein ac5d169623 Remove Rust 1.10.0 / Cargo 0.11.0 2016-12-07 08:51:10 -06:00
Derek Straka 52c0f97ff6 getVar will expand by default, so the 'True' option is no longer required
Signed-off-by: Derek Straka <derek@asterius.io>
2016-12-06 16:08:41 -05:00
Doug Goldstein 43c139f131 rust: remove --disable-static only for rust
Only remove --disable-static from OECONF for things built from the rust
source and not things inheriting rust.
2016-12-05 10:55:14 -06:00
Doug Goldstein 6083dff0b6 drop rust-installer.bbclass
This is only necessary for installations of rust so move the actual
functional bits into the do_install() phase of rust.
2016-12-05 10:55:14 -06:00