Commit Graph

617 Commits

Author SHA1 Message Date
Derek Straka e0e7b6cefe Merge pull request #104 from cardoe/fix-data-layout
rust: fix LLVM data layouts for Rust 1.10
2016-11-04 13:20:05 -04:00
Derek Straka ae7122c7e6 Merge pull request #103 from cardoe/small-cleanups
Small cleanups
2016-11-04 08:22:49 -04:00
Doug Goldstein ce9949725c rust: strip whitespace from features
This whitespace in here causes rust to not be happy with the features
and throw warnings about a feature such as ' +sse3' being unsupported
when '+sse3' works just fine. Amazingly will cause rustc to abort when
you try to resolve the features to valid configs with the `--print` arg
to rustc.
2016-11-03 17:05:41 -05:00
Doug Goldstein bef7c3f07e rust: fix LLVM data layouts for Rust 1.10
The data layout changed for Rust 1.10. I noticed this because I got a
crash when using rust-native to build rust. The assertion that hit was
saying data layout mismatch and caused me to check the values in the
Rust sources.
2016-11-03 16:31:21 -05:00
Doug Goldstein 8f809476c0 add build/ and poky/ to ignore
Since we have some helper scripts to build poky in the top level here
for testing then we should ignore build/ and poky/
2016-11-03 14:56:22 -05:00
Doug Goldstein ea040ab01d build: make the default machine x86_64 2016-11-03 14:56:22 -05:00
Doug Goldstein 101e818ec5 fetch: ensure we default to a Yocto branch
Instead of a funky git error let's default to the master branch and let
the user know that we made that choice for them.
2016-11-03 14:56:22 -05:00
Doug Goldstein 6db046c19d rust-llvm: combine do_install_append()
There were two different do_install_append()'s and they didn't check for
errors so this improves that situation.
2016-11-03 14:56:22 -05:00
Derek Straka e77fbb7f08 Merge pull request #101 from cardoe/drop-shared-src
Drop shared source directory
2016-11-02 12:30:03 -04:00
Doug Goldstein a97f66224a drop files supporting shared source 2016-11-01 15:37:47 -05:00
Doug Goldstein 2536080e0b libstd-rs: stop using shared source
Convert libstd-rs to not use the shared source setup and instead use
its own extracted directory. Include the version info in the bitbake
file so that in the future we can support multiple versions via a
PREFERRED_VERSIONS variable.
2016-11-01 15:37:47 -05:00
Doug Goldstein 1f903865b4 compiler-rt: stop using shared source
Convert compiler-rt to not use the shared source setup and instead use
its own extracted directory. Include the version info in the bitbake
file so that in the future we can support multiple versions via a
PREFERRED_VERSIONS variable.
2016-11-01 15:12:16 -05:00
Doug Goldstein 7f7b3cd652 rust: stop using shared source
Convert rust to not use the shared source setup and instead use its own
extracted directory. Include the version info in the bitbake file so
that in the future we can support multiple versions via a
PREFERRED_VERSIONS variable.
2016-11-01 13:00:35 -05:00
Doug Goldstein a1ca1ed06d rust-llvm: stop using shared source
Convert rust-llvm to not use the shared source setup and instead use its
own extracted directory. Include the version info in the bitbake file so
that in the future we can support multiple versions via a
PREFERRED_VERSIONS variable.
2016-10-31 22:30:47 -05:00
Derek Straka c5b53736b7 Merge pull request #96 from cardoe/ci
Jenkins CI
2016-10-31 08:37:07 -04:00
Derek Straka d716587c26 add Jenkinsfile to test each PR and branch commits
This includes a basic test that attempts to compile the rustfmt crate.
Ensures that the workspace is always removed at the end of the build. It
utilizes available caches to speed up the build process and parallelizes
the build across i386, x86_64, arm32, and arm64 targets.

Signed-off-by: Derek Straka <derek@asterius.io>
2016-10-30 19:41:53 -05:00
Doug Goldstein 1622af812d add a basic build script for testing
This script can be extended in the future but it uses the containerize
script to ensure we run inside of a working build environment. This
script can be extended to build additional targets for testing.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2016-10-30 10:07:11 -05:00
Doug Goldstein 52cbdd3b24 add Yocto config files so we can build
So that we can use the meta-rust layer as the final layer with some
configuration (for the purposes of testing). These configs should be not
used by actual end users.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2016-10-30 10:07:06 -05:00
Doug Goldstein a2c1575132 helper script to fetch down dependent layers
meta-rust has some layers it depends on and this script ensures it
fetches them down appropriately so that the poky directory can be used
as the source.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2016-10-30 10:07:01 -05:00
Doug Goldstein 8262f3ac0f containerize script for a Yocto build env
The containerize script fetches down a Docker container and wires up the
current directory inside so that you can use a known good environment
for compiling Yocto that has all the dependencies.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2016-10-30 10:06:55 -05:00
Cody Schafer bf2c4ada41 Merge pull request #92 from meta-rust/rust-upstream-notice
update case of OpenEmbedded to match upstream
2016-10-03 00:11:38 -04:00
Doug Goldstein 39fd00119c Merge pull request #93 from jmesmon/fix-llvm
Ensure proper CXXFLAGS & CFLAGS are passed to rust's `rustllvm` component (c++ files built as part of rustc)
2016-10-02 14:50:14 -05:00
Cody P Schafer 1436b99692 rust: avoid using flags for TARGET for non-TARGET 2016-10-01 21:58:39 -04:00
Doug Goldstein 3b954b38d1 update case of OpenEmbedded to match upstream 2016-10-01 00:09:48 -05:00
Cody P Schafer 41800bdd99 rust.inc: ensure proper flags are given to rustllvm
rustllvm ships some c++ code that we need to ensure is built with the
flags we want. Abuse an existing variable to make this happen.

This should fix our issues with the libstdc++ cxx11 abi (_GLIBCXX_USE_CXX11_ABI).
2016-09-25 02:30:46 -04:00
Cody P Schafer 9b8d884d6b rust.inc: start passing *FLAGS vars to compile
When rust's build system builds llvm itself, it uses these flags. Avoid
them interfering with other things by cleaning their usage out of the
platform cfg mk file.
2016-09-25 02:29:29 -04:00
Cody P Schafer 45d540de36 rust.inc: EXTRA_OEMAKE is now empty by default, drop our set
Since poky rev: f8520142c8a33fa9414314511fb01fbe79a2bf01, oe-core rev:
aeb653861a0ec39ea7a014c0622980edcbf653fa
2016-09-25 00:53:39 -04:00
Cody P Schafer 1cb0b64537 rust: remove duplicated TARGET_LLVM_* vars 2016-09-24 13:20:00 -04:00
Doug Goldstein 4eb46035c5 Merge pull request #79 from jmesmon/fix-same-target-host
rust-cross: fix build where TARGET_ARCH and HOST_ARCH are the same
2016-09-15 11:24:33 -05:00
Doug Goldstein a78d470ed2 Merge pull request #78 from jmesmon/fix-cargo-disable-static
cargo: avoid build failure due to --disable-static not being recognized
2016-09-15 11:14:48 -05:00
Cody P Schafer 237a22fd17 rust-cross: fix build where TARGET_ARCH and HOST_ARCH are the same
By copying exactly the target we intend to.

Fixes #77
2016-09-14 00:16:07 -04:00
Cody P Schafer e47bf14904 cargo: avoid build failure due to --disable-static not being recognized
Not sure why this is starting to affect cargo now, but let's fix it.
2016-09-13 23:28:31 -04:00
Cody Schafer 79166b9cf0 Merge pull request #75 from meta-rust/remove-dups
Remove recipe enhancements that were upstreamed
2016-09-06 16:17:14 -04:00
Steven Walter 34f213d162 Merge pull request #71 from srwalter/cargo-no-network
Update cargo support so that there truly is no network access
2016-09-05 18:45:14 -04:00
Steven Walter 2247ad36aa README.md: link to cargo-bitbake helper program
cargo-bitbake can be used to generate recipes for cargo-based rust
packages.
2016-09-05 18:40:42 -04:00
Steven Walter fbf59ed6a0 cargo.bbclass: replace with what was cargo_util.bbclass
The old cargo.bbclass had no users in meta-rust and had lots of
problems (not least of which was lots of duplicated lines with
cargo_util.bbclass).  Delete the old cargo.bbclass and replace it
entirely wiht cargo_util
2016-09-05 18:40:42 -04:00
Steven Walter e87b2d43b0 libstd-rs: use cargo_util_do_compile 2016-09-05 18:38:38 -04:00
Steven Walter f31f0c2257 libstd-rs: download dependent crates
Cargo was trying to download these itself before, which isn't allowed.
Use the crate fetcher to get our dependencies
2016-09-05 18:38:38 -04:00
Steven Walter 1059968d25 cargo: never contact the registry
It's forbidden to access the network during the build phase in bitbake.
Since this version of cargo does not yet support source-replacement, we
must patch out the behavior instead.
2016-09-05 18:38:38 -04:00
Steven Walter cb753fc536 cargo.inc: switch to cargo_util.bbclass
This does all the fetching through bitbake which allows it to be built
correctly in firewalled environments.
2016-09-05 18:38:35 -04:00
Cody Schafer 6902ea276a Merge pull request #72 from tylerwhall/compiler-rt-fix
compiler-rt: ensure -e is passed to make
2016-09-03 23:57:32 -04:00
Tyler Hall 8af5d4f7e9 compiler-rt: ensure -e is passed to make
OE-Core rev aeb653861a0ec39ea7a014c0622980edcbf653fa (between jethro and
krogoth) removed -e from the default flags in EXTRA_OEMAKE. Without
this, the makefile will default to gcc for CC.
2016-09-03 19:42:56 -04:00
Steven Walter 08ac2819f8 lib/crate.py: update magic hash for new cargo 2016-09-03 10:35:52 -04:00
Steven Walter f89057c0af lib/crate.py: additionally populate a local registry
The local registry is a more future-proof way to prevent cargo from
accessing the network during the build.  Unfortunately, this is only
used during the build of cargo-native for now.  The snapshot used while
building cargo-native supports using a local registry ("source
replacement") however the version of cargo supported by rust 1.10 does
not.

Until we can build a new-enough version of cargo that supports
source-replacement, we'll have to patch cargo directly to prevent it
from accessing the network.  Once we do have a new-enough cargo, we can
stop populating cargo_home/registry and only create cargo_registry.
2016-09-03 10:35:52 -04:00
Steven Walter 0c54b5727f cargo-snapshot.inc: update to a newer nightly build
Switch to a nightly that supports the source-replacement feature.  This
allows us to swap in our locally-fetched crates for upstream crates.io
2016-09-03 10:35:52 -04:00
Steven Walter 11f0c95763 cargo_util.bbclass: fix for native users
Building native packages with cargo means with need a native rust
compiler
2016-09-03 10:35:52 -04:00
Steven Walter c6ea2fe285 cargo_util.bbclass: support EXTRA_OECARGO_PATHS
With this we can convert the cargo-native recipe over to using
cargo_util instead of cargo.bbclass
2016-09-03 10:35:52 -04:00
Steven Walter c8e2b6166e cargo-snapshot.inc: use a date-specific downloadfilename
This allows the snapshot to be cached in a local mirror with a unique
name
2016-09-03 10:35:52 -04:00
Steven Walter 56ac849771 rust-cross: use base_libdir_native
This fixes rust-cross-aarch64 (and probably rust-cross-x86_64) since
those targets will use lib64 for cross but lib for native.
2016-09-03 10:35:04 -04:00
Steven Walter df07899855 Merge pull request #51 from srwalter/cross-compile-libstd
Replace rust-cross with a cross-compiled libstd
2016-09-03 10:33:44 -04:00