Commit Graph

524 Commits

Author SHA1 Message Date
Doug Goldstein
846454281e classes/cargo: implement directory source redirection
Reworked the source redirection to use directory source redirection like
I've done for Gentoo. This allows us to specify all crate dependencies
in the bitbake SRC_URI and have Yocto fetch them down using our crate
fetcher and then Cargo will build without reaching out to the network.
2016-12-03 00:36:04 -06:00
Doug Goldstein
21224d76a0 cargo: add version 0.13.0
This version was released alongside Rust 1.12.0
2016-12-02 23:08:17 -06:00
Doug Goldstein
06cc11b2b4 cargo: move explicitly versioned deps out of common
These dependencies are explicitly for Cargo 0.11.0 and shouldn't appear
in the common file.
2016-12-02 23:07:40 -06:00
Doug Goldstein
1d0e0e8343 rust: data layout changed between 1.10.0 and 1.12.1
The data layout for aarch64 changed between 1.10.0 and 1.12.1 of
rust-llvm.
2016-12-02 23:07:40 -06:00
Doug Goldstein
634498e0ac rust: bump versions to 1.12.1
Redid how compiler-rt is built by using the Rust makefiles to build it
instead of compiler-rt's build system. Rust itself deviated from using
compiler-rt's build system and provided their own rules requiring the
source tree to be configured to use them.
2016-12-02 23:07:40 -06:00
Cody P Schafer
ba428c19bf rust: regenerate patches for 1.12.1 2016-12-02 23:07:40 -06:00
Doug Goldstein
972fbd4582 rust: we need the build system snapshot, not host
We need the Rust snapshot (stage0) for the build environment not the
host environment. This is not affecting us currently because we are only
building native versions of this today but should improve the behavior
of #81 or if any Rust components are built for the target machine.
2016-12-02 23:07:36 -06:00
Cody Schafer
5983744d01 Merge pull request #123 from cardoe/drop-mk-cfg-dir
Drop mk cfg directory change patch
2016-12-02 16:00:19 -05:00
Doug Goldstein
95fa6c92a9 rust: remove unnecessary install chmods
The comment isn't true anymore and we don't need to run chmod anymore.
2016-12-02 09:26:46 -06:00
Doug Goldstein
e414321228 rust: drop variable from global scope
This variable had one place it was being used and it didn't need to be
globally scoped.
2016-12-02 08:58:53 -06:00
Doug Goldstein
07069a1869 rust: drop outdated comment and variable 2016-12-02 08:57:09 -06:00
Doug Goldstein
5985331f33 rust: remove patch to change path to $S/mk/cfg
Since we no longer use shared source we can modify the source directory
as we build. This drops another patch we need to build and simplifies
the addition of Rust 1.12.1 in #97.
2016-12-02 08:55:34 -06:00
Derek Straka
98472fd232 Merge pull request #119 from cardoe/continued-build-updates
Continued build updates
2016-12-01 08:33:31 -05:00
Doug Goldstein
f87bb05414 classes/cargo: provide linker for BUILD_SYS
Ensure that we have a linker for the BUILD_SYS (Yocto) / HOST (Rust).
2016-11-30 20:57:05 -06:00
Doug Goldstein
2ffd11b9fe cargo: revert dropped usage of -C crate_hash
This reverts the change from 5afc0cc471 based on the discussion in #116.
2016-11-30 20:57:04 -06:00
Doug Goldstein
1bf70b13a7 classes/cargo: revert to utilizing compiler/linker wrappers
Don't supply the linker arguments via rustflags and then mangle with the
RUSTFLAGS environment variable. This is also a parial reversion of
4e1bda643e and 5afc0cc471. These changes are reverted since it assumed
people would build with cargo and not directly with rustc. ref #116.
2016-11-30 20:57:04 -06:00
Doug Goldstein
20ac8ea888 classes/cargo: fix cargo target for linker override
We don't use the native Rust triples but instead use the Yocto triples
so we need to provide this override properly. This typo was introduced
in 5afc0cc471.
2016-11-30 20:57:04 -06:00
Doug Goldstein
a387a5fe8f classes/cargo: fix up target CFLAGS being passed to Rust
Firstly, HOST_CC_ARCH and TOOLCHAIN_OPTIONS are included in CC so them
being passed in are redundant now (due to the wrapper). The RUST_CFLAGS
variable doesn't need to be exported since its not actually used by
rustc/gcc-rs/cargo. Since its redundant and doesn't need to be exported,
remove it and simplify.
2016-11-30 20:57:04 -06:00
Doug Goldstein
689dfe8004 classes/cargo: fix up build CFLAGS being passed to Rust
Firstly, BUILD_CC_ARCH is included in BUILD_CC (hence why we actually
need a BUILD_CC wrapper because it produces the space), so its
redundant (now with the wrapper using BUILD_CC). The RUST_BUILD_CFLAGS
variable doesn't need to be exported since its not actually used by
rustc/gcc-rs/cargo. Since its redundant and doesn't need to be
exported remove it and simplify.
2016-11-30 20:57:04 -06:00
Doug Goldstein
864fe95722 classes: create proper compiler and linker wrappers
Rust builds (custom build.rs and gcc-rs users) expect to have the
compiler and the linker available to them as a single command with no
white space trailing. Yocto unfortunately does not conform to that. The
build compiler and linker almost always have a trailing space due to
how the variables are composed and the target compiler and linker are
almost always more than a single command. Then if you throw ccache into
the mix you'll get another command. As a result to handle all these
cases properly there need to be wrappers created. This change creates
wrappers for both build and target and both the linker and compiler.
This likely fixes #76.
2016-11-30 20:57:04 -06:00
Doug Goldstein
168396820d classes/rust-triples: document the triples
Provide documentation behind what the triples mean for Yocto and Rust
since they have different meanings of BUILD, TARGET, and HOST. Namely
Rust uses HOST when Yocto means BUILD. In our current supported cases
HOST and TARGET from Yocto mean the same thing.
2016-11-30 20:57:01 -06:00
Doug Goldstein
c9a4db15ea Merge pull request #121 from derekstraka/update-env-scripts
setup-env: only allow slaves with large amounts of RAM to mount tmpfs
2016-11-30 20:56:16 -06:00
Derek Straka
3d70f56ae7 setup-env: only allow slaves with large amounts of RAM to mount tmpfs
Signed-off-by: Derek Straka <derek@asterius.io>
2016-11-30 15:39:38 -05:00
Derek Straka
f4573d9c44 Merge pull request #120 from cardoe/jenkins-names
Jenkinsfile: rename stages for easier tracking
2016-11-30 08:12:38 -05:00
Doug Goldstein
c72c88be92 Jenkinsfile: rename stages for easier tracking
Rename the stages to ensure that the machine name is in there so its
easier to track what machine is currently being built.
2016-11-28 10:47:01 -06:00
Derek Straka
7d6fede8ef Merge pull request #116 from cardoe/ldflags-via-rustflags
refactor linker flags out of custom targets
2016-11-25 15:20:08 -05:00
Doug Goldstein
311ea03c1f CI: change from Yocto master to morty
Currently master is broken and morty is the next release that we'll
likely target so bump our version over to morty.
2016-11-24 09:22:44 -06:00
Doug Goldstein
61093e260f cargo: remove code that doesn't work
The comment says it doesn't work and I can confirm it won't work.
2016-11-23 14:15:41 -06:00
Doug Goldstein
dfa7dc1bad rust: drop link args from the target JSONs
The linker args have been moved into the Cargo configuration so there's
no need for them in the target spec files.
2016-11-23 14:15:17 -06:00
Doug Goldstein
5afc0cc471 cargo.bbclass: ensure extra RUSTFLAGS are properly passed
The RUSTFLAGS env var overrides the rustflags specified in the cargo
config so we need to take anything passed in the environment variable
and put it in the config.
2016-11-23 14:15:17 -06:00
Doug Goldstein
4e1bda643e cargo.bbclass: supply linker and link-args via rustflags
Supply the linker and the linker args via rustflags which should make it
not necessary to specify them via target JSONs. We explicitly cannot use
the RUSTFLAGS environment variable do to the way cargo parses arguments
and passes them to rustc.
2016-11-23 13:59:05 -06:00
Doug Goldstein
c98312fd1d cargo.bbclass: don't export variables 2016-11-23 11:42:00 -06:00
Doug Goldstein
f366cff864 cargo: change trivial verbose flag 2016-11-23 11:42:00 -06:00
Doug Goldstein
0827bc626b rust/rust-bin: move bits to rust-bin
Bits that are only used by the rust-bin bbclass should get moved there.
They aren't used by any recipe that includes the rust bbclass.
2016-11-23 11:25:57 -06:00
Derek Straka
b828ccaefe Merge pull request #115 from cardoe/remove-old-bits
Update compiler-rt build and remove commented out bits
2016-11-23 11:06:50 -05:00
Doug Goldstein
19cdae76b8 compiler-rt: pass only env needed
Build compiler-rt how upstream Rust does it and don't rely on the entire
environment being passed to the build process.
2016-11-22 11:55:36 -06:00
Doug Goldstein
87f67e6d86 remove a call to 'env'
For debugging people should really use 'bitbake -e rust' instead.
2016-11-22 11:53:43 -06:00
Doug Goldstein
f748246cae remove commented out bits 2016-11-22 11:53:43 -06:00
Derek Straka
d91d726db6 Merge pull request #114 from cardoe/factor-out-arch
Improve Rust triple generation
2016-11-22 12:50:32 -05:00
Doug Goldstein
957ede76f8 convert to real Rust triples properly
This should fix conversion to real Rust triples for musl targets, for
i686 targets and possibly others.
2016-11-21 16:22:41 -06:00
Doug Goldstein
5d60f12957 rust-triples: simplify vendor gathering
We don't need to look up the vendor since it will always be unknown.
2016-11-21 16:22:41 -06:00
Doug Goldstein
0b6b45fbca break the triples logic into its own class
This is so we can use the Rust triples in Cargo builds and other places
in addition to the Rust build.
2016-11-21 16:22:38 -06:00
Doug Goldstein
7645b9b331 RUSTC_ARCHFLAGS: build for the proper system triple
Change to build for the machine we are building for when compiling rust
code and not the compiler itself. See #109.
2016-11-21 14:55:54 -06:00
Cody Schafer
0c266200ad Merge pull request #112 from jmesmon/issue-template
github: add issue template to encourage reporting meta-rust version
2016-11-17 11:40:40 -05:00
Cody P Schafer
d2373244b8 github: add issue template to encourage reporting meta-rust version
I don't think we really need much structure, but in many cases
establishing the version of meta-rust which contains the issue is very
helpful in resolving it.

This makes it so the issue-reporter is at least given a field which
asks for the version.
2016-11-16 11:42:46 -05:00
Derek Straka
0530d30808 Merge pull request #107 from cardoe/drop-patch
rust: drop bindir/libdir patch
2016-11-10 11:05:03 -05:00
Doug Goldstein
e4d37ce4f1 rust: drop bindir/libdir patch
I'm honestly not sure what this patch does since everything appears to
build the same with and without it. I did a `tree` of the sysroots and
images and I don't see any file differences. Something like this used to
be necessary in Gentoo but I dropped it a few releases back.
2016-11-09 14:28:12 -06:00
Derek Straka
82bf763c76 Merge pull request #106 from cardoe/more-updates
More updates
2016-11-09 15:22:12 -05:00
Doug Goldstein
489fe195e0 rust: derive the stage0 toolchain from the build env
The host system where things are being built really should control what
toolchain is used for stage0. This in theory should improve #23 but I'm
not sure how to specify a hash per host sys.
2016-11-09 08:11:08 -06:00
Doug Goldstein
ed62ea5176 rust: drop local-rust PACKAGECONFIG
This drops the ability to supply your own rust through the PACKAGECONFIG
local-rust option. This isn't tested and we really need to better expand
support for build arches. At the same time this simplifies how the rust
stage0 snapshot is extracted and used by the build system.
2016-11-09 08:11:07 -06:00