631 Commits

Author SHA1 Message Date
Jonathan Creekmore
a4797129e2 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-06 13:34:43 -05:00
Adam Schwalm
48334bec1d Add 1.24.0 for rocko 2018-03-06 13:34:01 -05:00
Andrei Gherzan
5b0492fd4c 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-27 07:55:28 -05:00
Derek Straka
357f11b517 Jenkinsfile: Update to for the newly created rocko branch
Signed-off-by: Derek Straka <derek@asterius.io>
2018-02-02 09:03:24 -05:00
Derek Straka
17cc34c9c8 Merge pull request #185 from tylerwhall/panic-strategy
rust: allow configuring panic-strategy
2018-01-27 09:46:35 -05:00
Derek Straka
a19993c804 Merge branch 'master' into panic-strategy 2018-01-26 08:28:06 -05:00
Tyler Hall
03c0338cab Merge pull request #184 from bkylerussell/rm-do-compile
rust-llvm: remove custom do_compile
2018-01-24 13:45:24 -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
Derek Straka
8f46fe3e97 Merge pull request #182 from Fulkerson/master
Add support for the mips32 architecture
2017-12-03 14:43:32 -05:00
Johan Anderholm
c65375f14f Jenkinsfile: Add qemumips machine 2017-12-02 08:39:09 +01: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
Steven Walter
fa4f4f9c1a Merge pull request #180 from srwalter/stable-sstate-hashes
Make rustc output reproducible
2017-11-08 10:17:21 -05:00
Steven Walter
7f7156b664 Merge branch 'master' into stable-sstate-hashes 2017-11-08 09:42:06 -05:00
Derek Straka
af5491692e Merge pull request #179 from meta-rust/add-debug-to-build-script
Add debug information to troubleshoot jenkins issues
2017-11-03 16:00:43 -04:00
Derek Straka
ab57e94e2c Don't bother erroring out if the rsync fails
Signed-off-by: Derek Straka <derek@asterius.io>
2017-11-03 13:50:12 -04:00
Derek Straka
6965038dee Add debug information to troubleshoot jenkins issues
Signed-off-by: Derek Straka <derek@asterius.io>
2017-11-03 13:50:12 -04:00
Tyler Hall
e5230147f6 Remap source paths
This is needed for reproducible builds.
2017-11-03 12:41:51 -04: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
Steven Walter
5b1b95772e Merge pull request #178 from srwalter/rust-bin-fixes
rust-bin.bbclass fixes
2017-11-03 12:41:31 -04:00
Tyler Hall
81ea9f2d2c bitflags: update to 0.8.2 and Rust 1.20 compat
0.8.2 is the last version before the breaking "flags" keyword change.

For now, no_std crates need to be rlibs because rustc complains about
missing lang items on dylibs even though it would eventually be resolved
in the final link.

Ignore pub_use_of_private_extern_crate as there exists no version with
this fixed that uses the old API.
2017-11-03 09:57:21 -04:00
Tyler Hall
d4755fc065 time-rs: update 0.1.26 -> 0.1.38
This version does not need the C helpers.
2017-11-03 09:57:21 -04:00
Tyler Hall
533507b25b libc-rs: update to 0.2.21
Signed-off-by: Tyler Hall <tyler.hall@lexmark.com>
Signed-off-by: Steven Walter <swalter@lexmark.com>
2017-11-03 09:57:21 -04:00
Steven Walter
ad9f280e6c Allow various recipes to build -native 2017-11-03 09:57:19 -04:00
Steven Walter
c60b799c11 Allow native variants of rust recipes to build 2017-11-02 16:41:58 -04:00
Tyler Hall
463622c0c6 rust-bin: use linker to set rpath
Patchelf should be reserved for when the ELF cannot be generated
correctly in the first place. This is not the case here because we have
control over the linker flags. The limitation is that -C link-args can
only be specified once, so consolidate the generation of link-args. Also
introduce some new intermediate variables in link-args generation for
customization.

Patchelf was running only in ${PKGD} because patching the ELF in ${D}
would cause objcopy to fail when splitting the debug sections. This is
not a problem when setting it correctly in the linker. The benefit is
that the rpath is correct in the sysroot as well.

This also switches the rpaths to be relative so that they work in both
the sysroot and the target in the same way.

Signed-off-by: Tyler Hall <tyler.hall@lexmark.com>
Signed-off-by: Steven Walter <swalter@lexmark.com>
2017-11-02 16:41:58 -04:00
Tyler Hall
172a226259 rust-bin: use linker wrapper
Commit 864fe95 ("classes: create proper compiler and linker wrappers")
introduced wrapper scripts for the OE toolchain. Specifying the sysroot
manually ceased to function in rust-bin, so use the wrapper where rustc
is called directly.

This should be more reliable than trying to repeat what OE puts in the
$CC variable.
2017-11-02 16:41:58 -04:00
Tyler Hall
c83864ce19 rust-bin: get RUST_TARGET_PATH from rust-common
Since commit 06a138a ("rust: drop custom target finding patch"), rustc
is no longer self-sufficient in finding its target specifications. Any
usage of rustc needs RUST_TARGET_PATH set in the environment.

Move the declaration to rust-common.bbclass and add the export to
rust-bin where rustc is invoked.
2017-11-02 16:41:58 -04:00
Derek Straka
bd80824ddf Merge pull request #177 from jcreekmore/rust-1.21.0
support Rust 1.21.0 and Cargo 0.22.0
2017-11-02 10:46:30 -04:00
Jonathan Creekmore
b28674a452 support Rust 1.21.0 and Cargo 0.22.0 2017-10-31 16:45:30 -05:00
Derek Straka
9383b2d572 Merge pull request #174 from cardoe/drop-1.15
drop Rust 1.15.1 / Cargo 0.16
2017-10-23 10:39:17 -04:00
Doug Goldstein
d231fcb708 drop Rust 1.15.1 / Cargo 0.16 2017-10-10 11:22:26 -05:00
Will Newton
7f80e6d68b cargo.bbclass: Avoid bashism in cargo_do_install
The double square brackets are an extension to POSIX so are not
available in some shells. Use a case statement instead.
2017-10-03 22:28:24 -05:00
Doug Goldstein
a1cd215131 Merge pull request #167 from meta-rust/add-correct-layer-config
layer.conf: add the openembedded-layer to the depends since we use libgit2 from there
2017-10-03 22:00:31 -05:00
Derek Straka
34941a25e9 Always allow the clean-up to succeed
Signed-off-by: Derek Straka <derek@asterius.io>
2017-10-03 10:35:17 -04:00
Derek Straka
9b0dc6b3af layer.conf: add the openembedded-layer to the depends since we use libgit2 from there
Signed-off-by: Derek Straka <derek@asterius.io>
2017-10-03 10:35:17 -04:00
Derek Straka
afe7e94a6e Merge pull request #169 from Fulkerson/rust-1.20.0
bump to Rust 1.20.0 and Cargo 0.21
2017-10-03 10:33:56 -04: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
Derek Straka
d9c63d8557 Merge pull request #165 from cardoe/support-for-rustbuild
Switch to using rustbuild
2017-09-29 14:52:46 -04: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
1b8883be12 update container to the pyro supported version 2017-09-29 09:49:29 -05:00
Doug Goldstein
e31d252eb0 cargo{_common}.bbclass: abstract out parts for rustbuild
rustbuild is a cargo based way to build Rust but all of our helper bits
in cargo.bbclass would create a chicken/egg issue with dependencies
since we pull down pre-built binaries and use those for boot strapping.
2017-09-29 09:49:27 -05:00
Doug Goldstein
0cccf8b25c cargo.bbclass: include CXXFLAGS for builds
If g++ is invoked when building native bits with cargo we need to
include CXXFLAGS.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2017-09-29 09:49:25 -05:00
Doug Goldstein
d5bf43b9b3 Merge pull request #166 from meta-rust/fix-bblayers
Fix the bblayers sample file based on poky renames
2017-09-29 09:48:43 -05:00
Derek Straka
9f1f8ab32f Fix the bblayers sample file based on poky renames
Signed-off-by: Derek Straka <derek@asterius.io>
2017-09-29 08:42:36 -04:00