merge with master to pick up pulldown switch
This commit is contained in:
commit
8dd4c44ef6
1196 changed files with 28940 additions and 37303 deletions
11
.gitmodules
vendored
11
.gitmodules
vendored
|
@ -5,10 +5,6 @@
|
||||||
[submodule "src/compiler-rt"]
|
[submodule "src/compiler-rt"]
|
||||||
path = src/compiler-rt
|
path = src/compiler-rt
|
||||||
url = https://github.com/rust-lang/compiler-rt.git
|
url = https://github.com/rust-lang/compiler-rt.git
|
||||||
[submodule "src/rt/hoedown"]
|
|
||||||
path = src/rt/hoedown
|
|
||||||
url = https://github.com/rust-lang/hoedown.git
|
|
||||||
branch = rust-2015-09-21-do-not-delete
|
|
||||||
[submodule "src/jemalloc"]
|
[submodule "src/jemalloc"]
|
||||||
path = src/jemalloc
|
path = src/jemalloc
|
||||||
url = https://github.com/rust-lang/jemalloc.git
|
url = https://github.com/rust-lang/jemalloc.git
|
||||||
|
@ -20,10 +16,13 @@
|
||||||
url = https://github.com/rust-lang/libc.git
|
url = https://github.com/rust-lang/libc.git
|
||||||
[submodule "src/doc/nomicon"]
|
[submodule "src/doc/nomicon"]
|
||||||
path = src/doc/nomicon
|
path = src/doc/nomicon
|
||||||
url = https://github.com/rust-lang-nursery/nomicon
|
url = https://github.com/rust-lang-nursery/nomicon.git
|
||||||
[submodule "src/tools/cargo"]
|
[submodule "src/tools/cargo"]
|
||||||
path = cargo
|
path = cargo
|
||||||
url = https://github.com/rust-lang/cargo
|
url = https://github.com/rust-lang/cargo.git
|
||||||
[submodule "reference"]
|
[submodule "reference"]
|
||||||
path = src/doc/reference
|
path = src/doc/reference
|
||||||
url = https://github.com/rust-lang-nursery/reference.git
|
url = https://github.com/rust-lang-nursery/reference.git
|
||||||
|
[submodule "book"]
|
||||||
|
path = src/doc/book
|
||||||
|
url = https://github.com/rust-lang/book.git
|
||||||
|
|
99
.travis.yml
99
.travis.yml
|
@ -15,19 +15,27 @@ matrix:
|
||||||
- env: IMAGE=arm-android
|
- env: IMAGE=arm-android
|
||||||
- env: IMAGE=armhf-gnu
|
- env: IMAGE=armhf-gnu
|
||||||
- env: IMAGE=cross DEPLOY=1
|
- env: IMAGE=cross DEPLOY=1
|
||||||
|
- env: IMAGE=dist-aarch64-linux DEPLOY=1
|
||||||
- env: IMAGE=dist-android DEPLOY=1
|
- env: IMAGE=dist-android DEPLOY=1
|
||||||
- env: IMAGE=dist-arm-linux DEPLOY=1
|
- env: IMAGE=dist-arm-linux DEPLOY=1
|
||||||
- env: IMAGE=dist-armv7-aarch64-linux DEPLOY=1
|
- env: IMAGE=dist-armhf-linux DEPLOY=1
|
||||||
- env: IMAGE=dist-freebsd DEPLOY=1
|
- env: IMAGE=dist-armv7-linux DEPLOY=1
|
||||||
- env: IMAGE=dist-i586-gnu-i686-musl DEPLOY=1
|
|
||||||
- env: IMAGE=dist-fuchsia DEPLOY=1
|
- env: IMAGE=dist-fuchsia DEPLOY=1
|
||||||
|
- env: IMAGE=dist-i586-gnu-i686-musl DEPLOY=1
|
||||||
|
- env: IMAGE=dist-i686-freebsd DEPLOY=1
|
||||||
|
- env: IMAGE=dist-i686-linux DEPLOY=1
|
||||||
- env: IMAGE=dist-mips-linux DEPLOY=1
|
- env: IMAGE=dist-mips-linux DEPLOY=1
|
||||||
- env: IMAGE=dist-mips64-linux DEPLOY=1
|
- env: IMAGE=dist-mips64-linux DEPLOY=1
|
||||||
|
- env: IMAGE=dist-mips64el-linux DEPLOY=1
|
||||||
|
- env: IMAGE=dist-mipsel-linux DEPLOY=1
|
||||||
- env: IMAGE=dist-powerpc-linux DEPLOY=1
|
- env: IMAGE=dist-powerpc-linux DEPLOY=1
|
||||||
- env: IMAGE=dist-powerpc64-linux DEPLOY=1
|
- env: IMAGE=dist-powerpc64-linux DEPLOY=1
|
||||||
- env: IMAGE=dist-s390x-linux-netbsd DEPLOY=1
|
- env: IMAGE=dist-powerpc64le-linux DEPLOY=1
|
||||||
- env: IMAGE=dist-x86-linux DEPLOY=1
|
- env: IMAGE=dist-s390x-linux DEPLOY=1
|
||||||
|
- env: IMAGE=dist-x86_64-freebsd DEPLOY=1
|
||||||
|
- env: IMAGE=dist-x86_64-linux DEPLOY=1
|
||||||
- env: IMAGE=dist-x86_64-musl DEPLOY=1
|
- env: IMAGE=dist-x86_64-musl DEPLOY=1
|
||||||
|
- env: IMAGE=dist-x86_64-netbsd DEPLOY=1
|
||||||
- env: IMAGE=emscripten
|
- env: IMAGE=emscripten
|
||||||
- env: IMAGE=i686-gnu
|
- env: IMAGE=i686-gnu
|
||||||
- env: IMAGE=i686-gnu-nopt
|
- env: IMAGE=i686-gnu-nopt
|
||||||
|
@ -40,30 +48,43 @@ matrix:
|
||||||
- env: IMAGE=x86_64-gnu-distcheck
|
- env: IMAGE=x86_64-gnu-distcheck
|
||||||
- env: IMAGE=x86_64-gnu-incremental
|
- env: IMAGE=x86_64-gnu-incremental
|
||||||
|
|
||||||
# OSX builders
|
# OSX builders running tests, these run the full test suite.
|
||||||
|
#
|
||||||
|
# Note that the compiler is compiled to target 10.8 here because the Xcode
|
||||||
|
# version that we're using, 8.2, cannot compile LLVM for OSX 10.7.
|
||||||
- env: >
|
- env: >
|
||||||
RUST_CHECK_TARGET=check
|
RUST_CHECK_TARGET=check
|
||||||
RUST_CONFIGURE_ARGS=--build=x86_64-apple-darwin
|
RUST_CONFIGURE_ARGS=--build=x86_64-apple-darwin
|
||||||
SRC=.
|
SRC=.
|
||||||
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
||||||
SCCACHE_ERROR_LOG=/tmp/sccache.log
|
SCCACHE_ERROR_LOG=/tmp/sccache.log
|
||||||
RUST_LOG=sccache=debug
|
MACOSX_DEPLOYMENT_TARGET=10.8
|
||||||
|
MACOSX_STD_DEPLOYMENT_TARGET=10.7
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode8.2
|
osx_image: xcode8.2
|
||||||
install: &osx_install_sccache >
|
install: &osx_install_sccache >
|
||||||
travis_retry curl -o /usr/local/bin/sccache https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-apple-darwin &&
|
travis_retry curl -o /usr/local/bin/sccache https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-apple-darwin &&
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache &&
|
||||||
|
travis_retry curl -o /usr/local/bin/stamp https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-03-17-stamp-x86_64-apple-darwin &&
|
||||||
|
chmod +x /usr/local/bin/stamp
|
||||||
- env: >
|
- env: >
|
||||||
RUST_CHECK_TARGET=check
|
RUST_CHECK_TARGET=check
|
||||||
RUST_CONFIGURE_ARGS=--build=i686-apple-darwin
|
RUST_CONFIGURE_ARGS=--build=i686-apple-darwin
|
||||||
SRC=.
|
SRC=.
|
||||||
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
||||||
SCCACHE_ERROR_LOG=/tmp/sccache.log
|
SCCACHE_ERROR_LOG=/tmp/sccache.log
|
||||||
RUST_LOG=sccache=debug
|
MACOSX_DEPLOYMENT_TARGET=10.8
|
||||||
|
MACOSX_STD_DEPLOYMENT_TARGET=10.7
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode8.2
|
osx_image: xcode8.2
|
||||||
install: *osx_install_sccache
|
install: *osx_install_sccache
|
||||||
|
|
||||||
|
# OSX builders producing releases. These do not run the full test suite and
|
||||||
|
# just produce a bunch of artifacts.
|
||||||
|
#
|
||||||
|
# Note that these are running in the `xcode7` image instead of the
|
||||||
|
# `xcode8.2` image as above. That's because we want to build releases for
|
||||||
|
# OSX 10.7 and `xcode7` is the latest Xcode able to compile LLVM for 10.7.
|
||||||
- env: >
|
- env: >
|
||||||
RUST_CHECK_TARGET=dist
|
RUST_CHECK_TARGET=dist
|
||||||
RUST_CONFIGURE_ARGS="--build=i686-apple-darwin --enable-extended"
|
RUST_CONFIGURE_ARGS="--build=i686-apple-darwin --enable-extended"
|
||||||
|
@ -71,12 +92,10 @@ matrix:
|
||||||
DEPLOY=1
|
DEPLOY=1
|
||||||
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
||||||
SCCACHE_ERROR_LOG=/tmp/sccache.log
|
SCCACHE_ERROR_LOG=/tmp/sccache.log
|
||||||
RUST_LOG=sccache=debug
|
MACOSX_DEPLOYMENT_TARGET=10.7
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode8.2
|
osx_image: xcode7
|
||||||
install: >
|
install: *osx_install_sccache
|
||||||
travis_retry curl -o /usr/local/bin/sccache https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-apple-darwin &&
|
|
||||||
chmod +x /usr/local/bin/sccache
|
|
||||||
- env: >
|
- env: >
|
||||||
RUST_CHECK_TARGET=dist
|
RUST_CHECK_TARGET=dist
|
||||||
RUST_CONFIGURE_ARGS="--target=aarch64-apple-ios,armv7-apple-ios,armv7s-apple-ios,i386-apple-ios,x86_64-apple-ios --enable-extended"
|
RUST_CONFIGURE_ARGS="--target=aarch64-apple-ios,armv7-apple-ios,armv7s-apple-ios,i386-apple-ios,x86_64-apple-ios --enable-extended"
|
||||||
|
@ -84,16 +103,16 @@ matrix:
|
||||||
DEPLOY=1
|
DEPLOY=1
|
||||||
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
||||||
SCCACHE_ERROR_LOG=/tmp/sccache.log
|
SCCACHE_ERROR_LOG=/tmp/sccache.log
|
||||||
RUST_LOG=sccache=debug
|
MACOSX_DEPLOYMENT_TARGET=10.7
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode8.2
|
osx_image: xcode7
|
||||||
install: *osx_install_sccache
|
install: *osx_install_sccache
|
||||||
|
|
||||||
# "alternate" deployments, these are "nightlies" but don't have assertions
|
# "alternate" deployments, these are "nightlies" but don't have assertions
|
||||||
# turned on, they're deployed to a different location primarily for projects
|
# turned on, they're deployed to a different location primarily for projects
|
||||||
# which are stuck on nightly and don't want llvm assertions in the artifacts
|
# which are stuck on nightly and don't want llvm assertions in the artifacts
|
||||||
# that they use.
|
# that they use.
|
||||||
- env: IMAGE=dist-x86-linux DEPLOY_ALT=1
|
- env: IMAGE=dist-x86_64-linux DEPLOY_ALT=1
|
||||||
- env: >
|
- env: >
|
||||||
RUST_CHECK_TARGET=dist
|
RUST_CHECK_TARGET=dist
|
||||||
RUST_CONFIGURE_ARGS="--enable-extended"
|
RUST_CONFIGURE_ARGS="--enable-extended"
|
||||||
|
@ -101,9 +120,9 @@ matrix:
|
||||||
DEPLOY_ALT=1
|
DEPLOY_ALT=1
|
||||||
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
RUSTC_RETRY_LINKER_ON_SEGFAULT=1
|
||||||
SCCACHE_ERROR_LOG=/tmp/sccache.log
|
SCCACHE_ERROR_LOG=/tmp/sccache.log
|
||||||
RUST_LOG=sccache=debug
|
MACOSX_DEPLOYMENT_TARGET=10.7
|
||||||
os: osx
|
os: osx
|
||||||
osx_image: xcode8.2
|
osx_image: xcode7
|
||||||
install: *osx_install_sccache
|
install: *osx_install_sccache
|
||||||
|
|
||||||
env:
|
env:
|
||||||
|
@ -113,6 +132,12 @@ env:
|
||||||
# AWS_SECRET_ACCESS_KEY=...
|
# AWS_SECRET_ACCESS_KEY=...
|
||||||
- secure: "Pixhh0hXDqGCdOyLtGFjli3J2AtDWIpyb2btIrLe956nCBDRutRoMm6rv5DI9sFZN07Mms7VzNNvhc9wCW1y63JAm414d2Co7Ob8kWMZlz9l9t7ACHuktUiis8yr+S4Quq1Vqd6pqi7pf2J++UxC8R/uLeqVrubzr6+X7AbmEFE="
|
- secure: "Pixhh0hXDqGCdOyLtGFjli3J2AtDWIpyb2btIrLe956nCBDRutRoMm6rv5DI9sFZN07Mms7VzNNvhc9wCW1y63JAm414d2Co7Ob8kWMZlz9l9t7ACHuktUiis8yr+S4Quq1Vqd6pqi7pf2J++UxC8R/uLeqVrubzr6+X7AbmEFE="
|
||||||
|
|
||||||
|
# Note that this is overridden on OSX builders
|
||||||
|
install: >
|
||||||
|
travis_retry curl -o $HOME/stamp https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-03-17-stamp-x86_64-unknown-linux-musl &&
|
||||||
|
chmod +x $HOME/stamp &&
|
||||||
|
export PATH=$PATH:$HOME
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- >
|
- >
|
||||||
echo "#### Disk usage before running script:";
|
echo "#### Disk usage before running script:";
|
||||||
|
@ -122,13 +147,14 @@ before_script:
|
||||||
script:
|
script:
|
||||||
- >
|
- >
|
||||||
if [ "$ALLOW_PR" = "" ] && [ "$TRAVIS_BRANCH" != "auto" ]; then
|
if [ "$ALLOW_PR" = "" ] && [ "$TRAVIS_BRANCH" != "auto" ]; then
|
||||||
echo skipping, not a full build;
|
echo skipping, not a full build
|
||||||
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
||||||
travis_retry sh -c 'git submodule deinit -f . && git submodule update --init' &&
|
|
||||||
src/ci/run.sh;
|
|
||||||
else
|
else
|
||||||
travis_retry sh -c 'git submodule deinit -f . && git submodule update --init' &&
|
stamp src/ci/init_repo.sh . "$HOME/rustsrc" &&
|
||||||
src/ci/docker/run.sh $IMAGE;
|
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||||
|
stamp src/ci/run.sh;
|
||||||
|
else
|
||||||
|
stamp src/ci/docker/run.sh $IMAGE;
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
after_success:
|
after_success:
|
||||||
|
@ -142,17 +168,37 @@ after_failure:
|
||||||
echo "#### Build failed; Disk usage after running script:";
|
echo "#### Build failed; Disk usage after running script:";
|
||||||
df -h;
|
df -h;
|
||||||
du . | sort -nr | head -n100
|
du . | sort -nr | head -n100
|
||||||
|
|
||||||
|
# One of these is the linux sccache log, one is the OSX sccache log. Instead
|
||||||
|
# of worrying about what system we are just cat both. One of these commands
|
||||||
|
# will fail but that's ok, they'll both get executed.
|
||||||
- cat obj/tmp/sccache.log
|
- cat obj/tmp/sccache.log
|
||||||
- cat /tmp/sccache.log
|
- cat /tmp/sccache.log
|
||||||
|
|
||||||
|
# Random attempt at debugging currently. Just poking around in here to see if
|
||||||
|
# anything shows up.
|
||||||
|
- ls $HOME/Library/Logs/DiagnosticReports/
|
||||||
|
|
||||||
|
# attempt to debug anything killed by the oom killer on linux, just to see if
|
||||||
|
# it happened
|
||||||
|
- dmesg | grep -i kill
|
||||||
|
|
||||||
# Save tagged docker images we created and load them if they're available
|
# Save tagged docker images we created and load them if they're available
|
||||||
|
# Travis saves caches whether the build failed or not, nuke rustsrc if
|
||||||
|
# the failure was while updating it (as it may be in an bad state)
|
||||||
|
# https://github.com/travis-ci/travis-ci/issues/4472
|
||||||
before_cache:
|
before_cache:
|
||||||
- docker history -q rust-ci |
|
- docker history -q rust-ci |
|
||||||
grep -v missing |
|
grep -v missing |
|
||||||
xargs docker save |
|
xargs docker save |
|
||||||
gzip > $HOME/docker/rust-ci.tar.gz
|
gzip > $HOME/docker/rust-ci.tar.gz
|
||||||
|
- if [ ! -f $HOME/rustsrc/cache_valid1 ]; then
|
||||||
|
echo "WARNING rustsrc cache was invalid when saving";
|
||||||
|
rm -rf $HOME/rustsrc && mkdir $HOME/rustsrc;
|
||||||
|
fi
|
||||||
before_install:
|
before_install:
|
||||||
- zcat $HOME/docker/rust-ci.tar.gz | docker load || true
|
- zcat $HOME/docker/rust-ci.tar.gz | docker load || true
|
||||||
|
- mkdir -p $HOME/rustsrc
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
email: false
|
email: false
|
||||||
|
@ -160,6 +206,7 @@ notifications:
|
||||||
cache:
|
cache:
|
||||||
directories:
|
directories:
|
||||||
- $HOME/docker
|
- $HOME/docker
|
||||||
|
- $HOME/rustsrc
|
||||||
|
|
||||||
before_deploy:
|
before_deploy:
|
||||||
- mkdir -p deploy/$TRAVIS_COMMIT
|
- mkdir -p deploy/$TRAVIS_COMMIT
|
||||||
|
|
|
@ -311,9 +311,13 @@ To save @bors some work, and to get small changes through more quickly, when
|
||||||
the other rollup-eligible patches too, and they'll get tested and merged at
|
the other rollup-eligible patches too, and they'll get tested and merged at
|
||||||
the same time.
|
the same time.
|
||||||
|
|
||||||
To find documentation-related issues, sort by the [A-docs label][adocs].
|
To find documentation-related issues, sort by the [T-doc label][tdoc].
|
||||||
|
|
||||||
[adocs]: https://github.com/rust-lang/rust/issues?q=is%3Aopen+is%3Aissue+label%3AA-docs
|
[tdoc]: https://github.com/rust-lang/rust/issues?q=is%3Aopen%20is%3Aissue%20label%3AT-doc
|
||||||
|
|
||||||
|
You can find documentation style guidelines in [RFC 1574][rfc1574].
|
||||||
|
|
||||||
|
[rfc1574]: https://github.com/rust-lang/rfcs/blob/master/text/1574-more-api-documentation-conventions.md#appendix-a-full-conventions-text
|
||||||
|
|
||||||
In many cases, you don't need a full `./x.py doc`. You can use `rustdoc` directly
|
In many cases, you don't need a full `./x.py doc`. You can use `rustdoc` directly
|
||||||
to check small fixes. For example, `rustdoc src/doc/reference.md` will render
|
to check small fixes. For example, `rustdoc src/doc/reference.md` will render
|
||||||
|
|
|
@ -16,7 +16,7 @@ Read ["Installing Rust"] from [The Book].
|
||||||
|
|
||||||
1. Make sure you have installed the dependencies:
|
1. Make sure you have installed the dependencies:
|
||||||
|
|
||||||
* `g++` 4.7 or later or `clang++` 3.x
|
* `g++` 4.7 or later or `clang++` 3.x or later
|
||||||
* `python` 2.7 (but not 3.x)
|
* `python` 2.7 (but not 3.x)
|
||||||
* GNU `make` 3.81 or later
|
* GNU `make` 3.81 or later
|
||||||
* `cmake` 3.4.3 or later
|
* `cmake` 3.4.3 or later
|
||||||
|
@ -161,8 +161,9 @@ If you’d like to build the documentation, it’s almost the same:
|
||||||
$ ./x.py doc
|
$ ./x.py doc
|
||||||
```
|
```
|
||||||
|
|
||||||
The generated documentation will appear in a top-level `doc` directory,
|
The generated documentation will appear under `doc` in the `build` directory for
|
||||||
created by the `make` rule.
|
the ABI used. I.e., if the ABI was `x86_64-pc-windows-msvc`, the directory will be
|
||||||
|
`build\x86_64-pc-windows-msvc\doc`.
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@ Version 1.16.0 (2017-03-16)
|
||||||
Language
|
Language
|
||||||
--------
|
--------
|
||||||
|
|
||||||
* Lifetimes in statics and consts default to `'static`. [RFC 1623]
|
|
||||||
* [The compiler's `dead_code` lint now accounts for type aliases][38051].
|
* [The compiler's `dead_code` lint now accounts for type aliases][38051].
|
||||||
* [Uninhabitable enums (those without any variants) no longer permit wildcard
|
* [Uninhabitable enums (those without any variants) no longer permit wildcard
|
||||||
match patterns][38069]
|
match patterns][38069]
|
||||||
|
@ -5056,7 +5055,7 @@ Version 0.1 (2012-01-20)
|
||||||
|
|
||||||
* Compiler works with the following configurations:
|
* Compiler works with the following configurations:
|
||||||
* Linux: x86 and x86_64 hosts and targets
|
* Linux: x86 and x86_64 hosts and targets
|
||||||
* MacOS: x86 and x86_64 hosts and targets
|
* macOS: x86 and x86_64 hosts and targets
|
||||||
* Windows: x86 hosts and targets
|
* Windows: x86 hosts and targets
|
||||||
|
|
||||||
* Cross compilation / multi-target configuration supported.
|
* Cross compilation / multi-target configuration supported.
|
||||||
|
|
45
appveyor.yml
45
appveyor.yml
|
@ -43,16 +43,16 @@ environment:
|
||||||
# *not* use debug assertions and llvm assertions. This is because they take
|
# *not* use debug assertions and llvm assertions. This is because they take
|
||||||
# too long on appveyor and this is tested by rustbuild below.
|
# too long on appveyor and this is tested by rustbuild below.
|
||||||
- MSYS_BITS: 32
|
- MSYS_BITS: 32
|
||||||
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
|
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu --enable-ninja
|
||||||
SCRIPT: python x.py test
|
SCRIPT: python x.py test
|
||||||
MINGW_URL: https://s3.amazonaws.com/rust-lang-ci
|
MINGW_URL: https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror
|
||||||
MINGW_ARCHIVE: i686-4.9.2-release-win32-dwarf-rt_v4-rev4.7z
|
MINGW_ARCHIVE: i686-6.2.0-release-win32-dwarf-rt_v5-rev1.7z
|
||||||
MINGW_DIR: mingw32
|
MINGW_DIR: mingw32
|
||||||
- MSYS_BITS: 64
|
- MSYS_BITS: 64
|
||||||
SCRIPT: python x.py test
|
SCRIPT: python x.py test
|
||||||
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu
|
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu --enable-ninja
|
||||||
MINGW_URL: https://s3.amazonaws.com/rust-lang-ci
|
MINGW_URL: https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror
|
||||||
MINGW_ARCHIVE: x86_64-4.9.2-release-win32-seh-rt_v4-rev4.7z
|
MINGW_ARCHIVE: x86_64-6.2.0-release-win32-seh-rt_v5-rev1.7z
|
||||||
MINGW_DIR: mingw64
|
MINGW_DIR: mingw64
|
||||||
|
|
||||||
# 32/64 bit MSVC and GNU deployment
|
# 32/64 bit MSVC and GNU deployment
|
||||||
|
@ -68,17 +68,17 @@ environment:
|
||||||
SCRIPT: python x.py dist
|
SCRIPT: python x.py dist
|
||||||
DEPLOY: 1
|
DEPLOY: 1
|
||||||
- MSYS_BITS: 32
|
- MSYS_BITS: 32
|
||||||
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu --enable-extended
|
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu --enable-extended --enable-ninja
|
||||||
SCRIPT: python x.py dist
|
SCRIPT: python x.py dist
|
||||||
MINGW_URL: https://s3.amazonaws.com/rust-lang-ci
|
MINGW_URL: https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror
|
||||||
MINGW_ARCHIVE: i686-4.9.2-release-win32-dwarf-rt_v4-rev4.7z
|
MINGW_ARCHIVE: i686-6.2.0-release-win32-dwarf-rt_v5-rev1.7z
|
||||||
MINGW_DIR: mingw32
|
MINGW_DIR: mingw32
|
||||||
DEPLOY: 1
|
DEPLOY: 1
|
||||||
- MSYS_BITS: 64
|
- MSYS_BITS: 64
|
||||||
SCRIPT: python x.py dist
|
SCRIPT: python x.py dist
|
||||||
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu --enable-extended
|
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-gnu --enable-extended --enable-ninja
|
||||||
MINGW_URL: https://s3.amazonaws.com/rust-lang-ci
|
MINGW_URL: https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror
|
||||||
MINGW_ARCHIVE: x86_64-4.9.2-release-win32-seh-rt_v4-rev4.7z
|
MINGW_ARCHIVE: x86_64-6.2.0-release-win32-seh-rt_v5-rev1.7z
|
||||||
MINGW_DIR: mingw64
|
MINGW_DIR: mingw64
|
||||||
DEPLOY: 1
|
DEPLOY: 1
|
||||||
|
|
||||||
|
@ -115,10 +115,17 @@ install:
|
||||||
- set PATH=C:\Python27;%PATH%
|
- set PATH=C:\Python27;%PATH%
|
||||||
|
|
||||||
# Download and install sccache
|
# Download and install sccache
|
||||||
- appveyor-retry appveyor DownloadFile https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-pc-windows-msvc
|
- appveyor-retry appveyor DownloadFile https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-pc-windows-msvc
|
||||||
- mv 2017-02-25-sccache-x86_64-pc-windows-msvc sccache
|
- mv 2017-04-04-sccache-x86_64-pc-windows-msvc sccache.exe
|
||||||
- set PATH=%PATH%;%CD%
|
- set PATH=%PATH%;%CD%
|
||||||
|
|
||||||
|
# Download and install ninja
|
||||||
|
#
|
||||||
|
# Note that this is originally from the github releases patch of Ninja
|
||||||
|
- appveyor-retry appveyor DownloadFile https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-03-15-ninja-win.zip
|
||||||
|
- 7z x 2017-03-15-ninja-win.zip
|
||||||
|
# - set PATH=%PATH%;%CD% -- this already happens above for sccache
|
||||||
|
|
||||||
# Install InnoSetup to get `iscc` used to produce installers
|
# Install InnoSetup to get `iscc` used to produce installers
|
||||||
- appveyor-retry choco install -y InnoSetup
|
- appveyor-retry choco install -y InnoSetup
|
||||||
- set PATH="C:\Program Files (x86)\Inno Setup 5";%PATH%
|
- set PATH="C:\Program Files (x86)\Inno Setup 5";%PATH%
|
||||||
|
@ -131,19 +138,21 @@ install:
|
||||||
- handle.exe -accepteula -help
|
- handle.exe -accepteula -help
|
||||||
|
|
||||||
# Attempt to debug sccache failures
|
# Attempt to debug sccache failures
|
||||||
- set RUST_LOG=sccache=debug
|
|
||||||
- set SCCACHE_ERROR_LOG=%CD%/sccache.log
|
- set SCCACHE_ERROR_LOG=%CD%/sccache.log
|
||||||
|
|
||||||
test_script:
|
test_script:
|
||||||
- appveyor-retry sh -c 'git submodule deinit -f . && git submodule update --init'
|
- if not exist C:\cache\rustsrc\NUL mkdir C:\cache\rustsrc
|
||||||
|
- sh src/ci/init_repo.sh . /c/cache/rustsrc
|
||||||
- set SRC=.
|
- set SRC=.
|
||||||
- set NO_CCACHE=1
|
- set NO_CCACHE=1
|
||||||
- sh src/ci/run.sh
|
- sh src/ci/run.sh
|
||||||
|
|
||||||
on_failure:
|
on_failure:
|
||||||
- cat %CD%/sccache.log
|
- cat %CD%\sccache.log
|
||||||
|
- cat C:\Users\appveyor\AppData\Local\Temp\1\build-cache-logs\*.log
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
|
- C:\cache\rustsrc
|
||||||
- "build/i686-pc-windows-msvc/llvm -> src/rustllvm/llvm-rebuild-trigger"
|
- "build/i686-pc-windows-msvc/llvm -> src/rustllvm/llvm-rebuild-trigger"
|
||||||
- "build/x86_64-pc-windows-msvc/llvm -> src/rustllvm/llvm-rebuild-trigger"
|
- "build/x86_64-pc-windows-msvc/llvm -> src/rustllvm/llvm-rebuild-trigger"
|
||||||
- "i686-pc-windows-msvc/llvm -> src/rustllvm/llvm-rebuild-trigger"
|
- "i686-pc-windows-msvc/llvm -> src/rustllvm/llvm-rebuild-trigger"
|
||||||
|
@ -176,6 +185,7 @@ deploy:
|
||||||
on:
|
on:
|
||||||
branch: auto
|
branch: auto
|
||||||
DEPLOY: 1
|
DEPLOY: 1
|
||||||
|
max_error_retry: 5
|
||||||
|
|
||||||
# This provider is the same as the one above except that it has a slightly
|
# This provider is the same as the one above except that it has a slightly
|
||||||
# different upload directory and a slightly different trigger
|
# different upload directory and a slightly different trigger
|
||||||
|
@ -192,6 +202,7 @@ deploy:
|
||||||
on:
|
on:
|
||||||
branch: auto
|
branch: auto
|
||||||
DEPLOY_ALT: 1
|
DEPLOY_ALT: 1
|
||||||
|
max_error_retry: 5
|
||||||
|
|
||||||
# init:
|
# init:
|
||||||
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
||||||
|
|
2
cargo
2
cargo
|
@ -1 +1 @@
|
||||||
Subproject commit 4a3c0a63b07e9a4feb41cb11de37c92a09db5a60
|
Subproject commit 4729175045b41b688ab903120860866ce7a22ba9
|
188
src/Cargo.lock
generated
188
src/Cargo.lock
generated
|
@ -8,7 +8,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aho-corasick"
|
name = "aho-corasick"
|
||||||
version = "0.6.2"
|
version = "0.6.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"memchr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"memchr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -27,7 +27,7 @@ version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"build_helper 0.1.0",
|
"build_helper 0.1.0",
|
||||||
"core 0.0.0",
|
"core 0.0.0",
|
||||||
"gcc 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gcc 0.3.45 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"libc 0.0.0",
|
"libc 0.0.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -48,6 +48,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
name = "arena"
|
name = "arena"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "atty"
|
||||||
|
version = "0.2.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"libc 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitflags"
|
name = "bitflags"
|
||||||
version = "0.5.0"
|
version = "0.5.0"
|
||||||
|
@ -55,7 +65,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitflags"
|
name = "bitflags"
|
||||||
version = "0.7.0"
|
version = "0.8.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -63,13 +73,13 @@ name = "bootstrap"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"build_helper 0.1.0",
|
"build_helper 0.1.0",
|
||||||
"cmake 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cmake 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"filetime 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
"filetime 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gcc 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gcc 0.3.45 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
"getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"libc 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc-serialize 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-serialize 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"toml 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)",
|
"toml 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -77,7 +87,7 @@ dependencies = [
|
||||||
name = "build-manifest"
|
name = "build-manifest"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rustc-serialize 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-serialize 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"toml 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)",
|
"toml 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -94,25 +104,25 @@ version = "0.1.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "clap"
|
name = "clap"
|
||||||
version = "2.20.5"
|
version = "2.22.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"atty 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"libc 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bitflags 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"strsim 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"strsim 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"term_size 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"term_size 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"unicode-segmentation 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"unicode-segmentation 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"vec_map 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"vec_map 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cmake"
|
name = "cmake"
|
||||||
version = "0.1.21"
|
version = "0.1.22"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"gcc 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gcc 0.3.45 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -130,17 +140,17 @@ version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"build_helper 0.1.0",
|
"build_helper 0.1.0",
|
||||||
"core 0.0.0",
|
"core 0.0.0",
|
||||||
"gcc 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gcc 0.3.45 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "compiletest"
|
name = "compiletest"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"env_logger 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"filetime 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
"filetime 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc-serialize 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-serialize 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -152,14 +162,6 @@ name = "dtoa"
|
||||||
version = "0.4.1"
|
version = "0.4.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "env_logger"
|
|
||||||
version = "0.3.5"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
dependencies = [
|
|
||||||
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "env_logger"
|
name = "env_logger"
|
||||||
version = "0.4.2"
|
version = "0.4.2"
|
||||||
|
@ -186,7 +188,7 @@ name = "flate"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"build_helper 0.1.0",
|
"build_helper 0.1.0",
|
||||||
"gcc 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gcc 0.3.45 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -195,7 +197,7 @@ version = "0.0.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gcc"
|
name = "gcc"
|
||||||
version = "0.3.43"
|
version = "0.3.45"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -213,15 +215,15 @@ version = "0.0.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "handlebars"
|
name = "handlebars"
|
||||||
version = "0.25.1"
|
version = "0.25.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"lazy_static 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"pest 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"pest 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"quick-error 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"quick-error 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"regex 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"regex 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc-serialize 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-serialize 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_json 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -241,7 +243,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lazy_static"
|
name = "lazy_static"
|
||||||
version = "0.2.4"
|
version = "0.2.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -260,10 +262,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
name = "linkchecker"
|
name = "linkchecker"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "log"
|
|
||||||
version = "0.0.0"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "log"
|
name = "log"
|
||||||
version = "0.3.7"
|
version = "0.3.7"
|
||||||
|
@ -274,9 +272,9 @@ name = "mdbook"
|
||||||
version = "0.0.18"
|
version = "0.0.18"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.20.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.22.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"env_logger 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"handlebars 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"handlebars 0.25.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"open 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"open 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"pulldown-cmark 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"pulldown-cmark 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -360,6 +358,14 @@ dependencies = [
|
||||||
"getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
"getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pulldown-cmark"
|
||||||
|
version = "0.0.14"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "qemu-test-client"
|
name = "qemu-test-client"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
@ -385,7 +391,7 @@ name = "regex"
|
||||||
version = "0.2.1"
|
version = "0.2.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aho-corasick 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"aho-corasick 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"memchr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"memchr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"regex-syntax 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"regex-syntax 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"thread_local 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"thread_local 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -397,11 +403,28 @@ name = "regex-syntax"
|
||||||
version = "0.4.0"
|
version = "0.4.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rls-data"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"rls-span 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"rustc-serialize 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rls-span"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"rustc-serialize 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustbook"
|
name = "rustbook"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.20.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.22.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"mdbook 0.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
"mdbook 0.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -412,7 +435,7 @@ dependencies = [
|
||||||
"arena 0.0.0",
|
"arena 0.0.0",
|
||||||
"fmt_macros 0.0.0",
|
"fmt_macros 0.0.0",
|
||||||
"graphviz 0.0.0",
|
"graphviz 0.0.0",
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc_back 0.0.0",
|
"rustc_back 0.0.0",
|
||||||
"rustc_bitflags 0.0.0",
|
"rustc_bitflags 0.0.0",
|
||||||
"rustc_const_math 0.0.0",
|
"rustc_const_math 0.0.0",
|
||||||
|
@ -435,7 +458,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustc-serialize"
|
name = "rustc-serialize"
|
||||||
version = "0.3.22"
|
version = "0.3.23"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -444,7 +467,7 @@ version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"alloc_system 0.0.0",
|
"alloc_system 0.0.0",
|
||||||
"build_helper 0.1.0",
|
"build_helper 0.1.0",
|
||||||
"cmake 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cmake 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core 0.0.0",
|
"core 0.0.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -452,7 +475,7 @@ dependencies = [
|
||||||
name = "rustc_back"
|
name = "rustc_back"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serialize 0.0.0",
|
"serialize 0.0.0",
|
||||||
"syntax 0.0.0",
|
"syntax 0.0.0",
|
||||||
]
|
]
|
||||||
|
@ -466,7 +489,7 @@ name = "rustc_borrowck"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"graphviz 0.0.0",
|
"graphviz 0.0.0",
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc 0.0.0",
|
"rustc 0.0.0",
|
||||||
"rustc_data_structures 0.0.0",
|
"rustc_data_structures 0.0.0",
|
||||||
"rustc_errors 0.0.0",
|
"rustc_errors 0.0.0",
|
||||||
|
@ -481,7 +504,7 @@ version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arena 0.0.0",
|
"arena 0.0.0",
|
||||||
"graphviz 0.0.0",
|
"graphviz 0.0.0",
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc 0.0.0",
|
"rustc 0.0.0",
|
||||||
"rustc_back 0.0.0",
|
"rustc_back 0.0.0",
|
||||||
"rustc_const_math 0.0.0",
|
"rustc_const_math 0.0.0",
|
||||||
|
@ -503,7 +526,7 @@ dependencies = [
|
||||||
name = "rustc_data_structures"
|
name = "rustc_data_structures"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serialize 0.0.0",
|
"serialize 0.0.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -512,8 +535,9 @@ name = "rustc_driver"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arena 0.0.0",
|
"arena 0.0.0",
|
||||||
|
"env_logger 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"graphviz 0.0.0",
|
"graphviz 0.0.0",
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"proc_macro_plugin 0.0.0",
|
"proc_macro_plugin 0.0.0",
|
||||||
"rustc 0.0.0",
|
"rustc 0.0.0",
|
||||||
"rustc_back 0.0.0",
|
"rustc_back 0.0.0",
|
||||||
|
@ -552,7 +576,7 @@ name = "rustc_incremental"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"graphviz 0.0.0",
|
"graphviz 0.0.0",
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc 0.0.0",
|
"rustc 0.0.0",
|
||||||
"rustc_data_structures 0.0.0",
|
"rustc_data_structures 0.0.0",
|
||||||
"serialize 0.0.0",
|
"serialize 0.0.0",
|
||||||
|
@ -564,7 +588,7 @@ dependencies = [
|
||||||
name = "rustc_lint"
|
name = "rustc_lint"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc 0.0.0",
|
"rustc 0.0.0",
|
||||||
"rustc_back 0.0.0",
|
"rustc_back 0.0.0",
|
||||||
"rustc_const_eval 0.0.0",
|
"rustc_const_eval 0.0.0",
|
||||||
|
@ -577,7 +601,7 @@ name = "rustc_llvm"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"build_helper 0.1.0",
|
"build_helper 0.1.0",
|
||||||
"gcc 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gcc 0.3.45 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc_bitflags 0.0.0",
|
"rustc_bitflags 0.0.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -587,7 +611,7 @@ version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"alloc_system 0.0.0",
|
"alloc_system 0.0.0",
|
||||||
"build_helper 0.1.0",
|
"build_helper 0.1.0",
|
||||||
"cmake 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cmake 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core 0.0.0",
|
"core 0.0.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -596,7 +620,7 @@ name = "rustc_metadata"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"flate 0.0.0",
|
"flate 0.0.0",
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"proc_macro 0.0.0",
|
"proc_macro 0.0.0",
|
||||||
"rustc 0.0.0",
|
"rustc 0.0.0",
|
||||||
"rustc_back 0.0.0",
|
"rustc_back 0.0.0",
|
||||||
|
@ -615,7 +639,7 @@ name = "rustc_mir"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"graphviz 0.0.0",
|
"graphviz 0.0.0",
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc 0.0.0",
|
"rustc 0.0.0",
|
||||||
"rustc_bitflags 0.0.0",
|
"rustc_bitflags 0.0.0",
|
||||||
"rustc_const_eval 0.0.0",
|
"rustc_const_eval 0.0.0",
|
||||||
|
@ -631,7 +655,7 @@ version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"alloc_system 0.0.0",
|
"alloc_system 0.0.0",
|
||||||
"build_helper 0.1.0",
|
"build_helper 0.1.0",
|
||||||
"cmake 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cmake 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core 0.0.0",
|
"core 0.0.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -639,7 +663,7 @@ dependencies = [
|
||||||
name = "rustc_passes"
|
name = "rustc_passes"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc 0.0.0",
|
"rustc 0.0.0",
|
||||||
"rustc_const_eval 0.0.0",
|
"rustc_const_eval 0.0.0",
|
||||||
"rustc_const_math 0.0.0",
|
"rustc_const_math 0.0.0",
|
||||||
|
@ -678,7 +702,7 @@ name = "rustc_resolve"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arena 0.0.0",
|
"arena 0.0.0",
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc 0.0.0",
|
"rustc 0.0.0",
|
||||||
"rustc_errors 0.0.0",
|
"rustc_errors 0.0.0",
|
||||||
"syntax 0.0.0",
|
"syntax 0.0.0",
|
||||||
|
@ -689,9 +713,11 @@ dependencies = [
|
||||||
name = "rustc_save_analysis"
|
name = "rustc_save_analysis"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"rls-data 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"rls-span 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc 0.0.0",
|
"rustc 0.0.0",
|
||||||
"serialize 0.0.0",
|
"rustc-serialize 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"syntax 0.0.0",
|
"syntax 0.0.0",
|
||||||
"syntax_pos 0.0.0",
|
"syntax_pos 0.0.0",
|
||||||
]
|
]
|
||||||
|
@ -701,7 +727,7 @@ name = "rustc_trans"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"flate 0.0.0",
|
"flate 0.0.0",
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc 0.0.0",
|
"rustc 0.0.0",
|
||||||
"rustc_back 0.0.0",
|
"rustc_back 0.0.0",
|
||||||
"rustc_bitflags 0.0.0",
|
"rustc_bitflags 0.0.0",
|
||||||
|
@ -723,7 +749,7 @@ version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"alloc_system 0.0.0",
|
"alloc_system 0.0.0",
|
||||||
"build_helper 0.1.0",
|
"build_helper 0.1.0",
|
||||||
"cmake 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cmake 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core 0.0.0",
|
"core 0.0.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -733,7 +759,7 @@ version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arena 0.0.0",
|
"arena 0.0.0",
|
||||||
"fmt_macros 0.0.0",
|
"fmt_macros 0.0.0",
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc 0.0.0",
|
"rustc 0.0.0",
|
||||||
"rustc_back 0.0.0",
|
"rustc_back 0.0.0",
|
||||||
"rustc_const_eval 0.0.0",
|
"rustc_const_eval 0.0.0",
|
||||||
|
@ -751,8 +777,10 @@ version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arena 0.0.0",
|
"arena 0.0.0",
|
||||||
"build_helper 0.1.0",
|
"build_helper 0.1.0",
|
||||||
"gcc 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.0.0",
|
"gcc 0.3.45 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"pulldown-cmark 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc 0.0.0",
|
"rustc 0.0.0",
|
||||||
"rustc_back 0.0.0",
|
"rustc_back 0.0.0",
|
||||||
"rustc_const_eval 0.0.0",
|
"rustc_const_eval 0.0.0",
|
||||||
|
@ -799,7 +827,7 @@ dependencies = [
|
||||||
"collections 0.0.0",
|
"collections 0.0.0",
|
||||||
"compiler_builtins 0.0.0",
|
"compiler_builtins 0.0.0",
|
||||||
"core 0.0.0",
|
"core 0.0.0",
|
||||||
"gcc 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gcc 0.3.45 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"libc 0.0.0",
|
"libc 0.0.0",
|
||||||
"panic_abort 0.0.0",
|
"panic_abort 0.0.0",
|
||||||
"panic_unwind 0.0.0",
|
"panic_unwind 0.0.0",
|
||||||
|
@ -828,7 +856,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
name = "syntax"
|
name = "syntax"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc_bitflags 0.0.0",
|
"rustc_bitflags 0.0.0",
|
||||||
"rustc_data_structures 0.0.0",
|
"rustc_data_structures 0.0.0",
|
||||||
"rustc_errors 0.0.0",
|
"rustc_errors 0.0.0",
|
||||||
|
@ -841,7 +869,7 @@ name = "syntax_ext"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"fmt_macros 0.0.0",
|
"fmt_macros 0.0.0",
|
||||||
"log 0.0.0",
|
"log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"proc_macro 0.0.0",
|
"proc_macro 0.0.0",
|
||||||
"rustc_errors 0.0.0",
|
"rustc_errors 0.0.0",
|
||||||
"syntax 0.0.0",
|
"syntax 0.0.0",
|
||||||
|
@ -898,13 +926,16 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tidy"
|
name = "tidy"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"regex 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "toml"
|
name = "toml"
|
||||||
version = "0.1.30"
|
version = "0.1.30"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rustc-serialize 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-serialize 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -940,7 +971,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "vec_map"
|
name = "vec_map"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -959,22 +990,22 @@ version = "0.1.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[metadata]
|
[metadata]
|
||||||
"checksum aho-corasick 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0638fd549427caa90c499814196d1b9e3725eb4d15d7339d6de073a680ed0ca2"
|
"checksum aho-corasick 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "500909c4f87a9e52355b26626d890833e9e1d53ac566db76c36faa984b889699"
|
||||||
"checksum ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "23ac7c30002a5accbf7e8987d0632fa6de155b7c3d39d0067317a391e00a2ef6"
|
"checksum ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "23ac7c30002a5accbf7e8987d0632fa6de155b7c3d39d0067317a391e00a2ef6"
|
||||||
|
"checksum atty 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d912da0db7fa85514874458ca3651fe2cddace8d0b0505571dbdcd41ab490159"
|
||||||
"checksum bitflags 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4f67931368edf3a9a51d29886d245f1c3db2f1ef0dcc9e35ff70341b78c10d23"
|
"checksum bitflags 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4f67931368edf3a9a51d29886d245f1c3db2f1ef0dcc9e35ff70341b78c10d23"
|
||||||
"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
|
"checksum bitflags 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1370e9fc2a6ae53aea8b7a5110edbd08836ed87c88736dfabccade1c2b44bff4"
|
||||||
"checksum clap 2.20.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7db281b0520e97fbd15cd615dcd8f8bcad0c26f5f7d5effe705f090f39e9a758"
|
"checksum clap 2.22.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e17a4a72ffea176f77d6e2db609c6c919ef221f23862c9915e687fb54d833485"
|
||||||
"checksum cmake 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)" = "e1acc68a3f714627af38f9f5d09706a28584ba60dfe2cca68f40bf779f941b25"
|
"checksum cmake 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "d18d68987ed4c516dcc3e7913659bfa4076f5182eea4a7e0038bb060953e76ac"
|
||||||
"checksum dtoa 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "80c8b71fd71146990a9742fc06dcbbde19161a267e0ad4e572c35162f4578c90"
|
"checksum dtoa 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "80c8b71fd71146990a9742fc06dcbbde19161a267e0ad4e572c35162f4578c90"
|
||||||
"checksum env_logger 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "15abd780e45b3ea4f76b4e9a26ff4843258dd8a3eed2775a0e7368c2e7936c2f"
|
|
||||||
"checksum env_logger 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e3856f1697098606fc6cb97a93de88ca3f3bc35bb878c725920e6e82ecf05e83"
|
"checksum env_logger 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e3856f1697098606fc6cb97a93de88ca3f3bc35bb878c725920e6e82ecf05e83"
|
||||||
"checksum filetime 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "5363ab8e4139b8568a6237db5248646e5a8a2f89bd5ccb02092182b11fd3e922"
|
"checksum filetime 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "5363ab8e4139b8568a6237db5248646e5a8a2f89bd5ccb02092182b11fd3e922"
|
||||||
"checksum gcc 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)" = "c07c758b972368e703a562686adb39125707cc1ef3399da8c019fc6c2498a75d"
|
"checksum gcc 0.3.45 (registry+https://github.com/rust-lang/crates.io-index)" = "40899336fb50db0c78710f53e87afc54d8c7266fb76262fecc78ca1a7f09deae"
|
||||||
"checksum getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9047cfbd08a437050b363d35ef160452c5fe8ea5187ae0a624708c91581d685"
|
"checksum getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9047cfbd08a437050b363d35ef160452c5fe8ea5187ae0a624708c91581d685"
|
||||||
"checksum handlebars 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b2249f6f0dc5a3bb2b3b1a8f797dfccbc4b053344d773d654ad565e51427d335"
|
"checksum handlebars 0.25.2 (registry+https://github.com/rust-lang/crates.io-index)" = "663e1728d8037fb0d4e13bcd1b1909fb5d913690a9929eb385922df157c2ff8f"
|
||||||
"checksum itoa 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "eb2f404fbc66fd9aac13e998248505e7ecb2ad8e44ab6388684c5fb11c6c251c"
|
"checksum itoa 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "eb2f404fbc66fd9aac13e998248505e7ecb2ad8e44ab6388684c5fb11c6c251c"
|
||||||
"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
|
"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
|
||||||
"checksum lazy_static 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7291b1dd97d331f752620b02dfdbc231df7fc01bf282a00769e1cdb963c460dc"
|
"checksum lazy_static 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4732c563b9a21a406565c4747daa7b46742f082911ae4753f390dc9ec7ee1a97"
|
||||||
"checksum libc 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "88ee81885f9f04bff991e306fea7c1c60a5f0f9e409e99f6b40e3311a3363135"
|
"checksum libc 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "88ee81885f9f04bff991e306fea7c1c60a5f0f9e409e99f6b40e3311a3363135"
|
||||||
"checksum log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "5141eca02775a762cc6cd564d8d2c50f67c0ea3a372cbf1c51592b3e029e10ad"
|
"checksum log 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "5141eca02775a762cc6cd564d8d2c50f67c0ea3a372cbf1c51592b3e029e10ad"
|
||||||
"checksum mdbook 0.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "06a68e8738e42b38a02755d3ce5fa12d559e17acb238e4326cbc3cc056e65280"
|
"checksum mdbook 0.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "06a68e8738e42b38a02755d3ce5fa12d559e17acb238e4326cbc3cc056e65280"
|
||||||
|
@ -983,11 +1014,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
"checksum num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "cee7e88156f3f9e19bdd598f8d6c9db7bf4078f99f8381f43a55b09648d1a6e3"
|
"checksum num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "cee7e88156f3f9e19bdd598f8d6c9db7bf4078f99f8381f43a55b09648d1a6e3"
|
||||||
"checksum open 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3478ed1686bd1300c8a981a940abc92b06fac9cbef747f4c668d4e032ff7b842"
|
"checksum open 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3478ed1686bd1300c8a981a940abc92b06fac9cbef747f4c668d4e032ff7b842"
|
||||||
"checksum pest 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0a6dda33d67c26f0aac90d324ab2eb7239c819fc7b2552fe9faa4fe88441edc8"
|
"checksum pest 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0a6dda33d67c26f0aac90d324ab2eb7239c819fc7b2552fe9faa4fe88441edc8"
|
||||||
|
"checksum pulldown-cmark 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9ab1e588ef8efd702c7ed9d2bd774db5e6f4d878bb5a1a9f371828fbdff6973"
|
||||||
"checksum pulldown-cmark 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1058d7bb927ca067656537eec4e02c2b4b70eaaa129664c5b90c111e20326f41"
|
"checksum pulldown-cmark 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1058d7bb927ca067656537eec4e02c2b4b70eaaa129664c5b90c111e20326f41"
|
||||||
"checksum quick-error 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0aad603e8d7fb67da22dbdf1f4b826ce8829e406124109e73cf1b2454b93a71c"
|
"checksum quick-error 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0aad603e8d7fb67da22dbdf1f4b826ce8829e406124109e73cf1b2454b93a71c"
|
||||||
"checksum regex 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4278c17d0f6d62dfef0ab00028feb45bd7d2102843f80763474eeb1be8a10c01"
|
"checksum regex 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4278c17d0f6d62dfef0ab00028feb45bd7d2102843f80763474eeb1be8a10c01"
|
||||||
"checksum regex-syntax 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9191b1f57603095f105d317e375d19b1c9c5c3185ea9633a99a6dcbed04457"
|
"checksum regex-syntax 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9191b1f57603095f105d317e375d19b1c9c5c3185ea9633a99a6dcbed04457"
|
||||||
"checksum rustc-serialize 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)" = "237546c689f20bb44980270c73c3b9edd0891c1be49cc1274406134a66d3957b"
|
"checksum rls-data 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "af1dfff00189fd7b78edb9af131b0de703676c04fa8126aed77fd2c586775a4d"
|
||||||
|
"checksum rls-span 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8656f7b850ac85fb204ef94318c641bbb15a32766e12f9a589a23e4c0fbc38db"
|
||||||
|
"checksum rustc-serialize 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)" = "684ce48436d6465300c9ea783b6b14c4361d6b8dcbb1375b486a69cc19e2dfb0"
|
||||||
"checksum serde 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)" = "a702319c807c016e51f672e5c77d6f0b46afddd744b5e437d6b8436b888b458f"
|
"checksum serde 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)" = "a702319c807c016e51f672e5c77d6f0b46afddd744b5e437d6b8436b888b458f"
|
||||||
"checksum serde_json 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)" = "dbc45439552eb8fb86907a2c41c1fd0ef97458efb87ff7f878db466eb581824e"
|
"checksum serde_json 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)" = "dbc45439552eb8fb86907a2c41c1fd0ef97458efb87ff7f878db466eb581824e"
|
||||||
"checksum strsim 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d15c810519a91cf877e7e36e63fe068815c678181439f2f29e2562147c3694"
|
"checksum strsim 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d15c810519a91cf877e7e36e63fe068815c678181439f2f29e2562147c3694"
|
||||||
|
@ -1000,7 +1034,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
"checksum unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "bf3a113775714a22dcb774d8ea3655c53a32debae63a063acc00a91cc586245f"
|
"checksum unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "bf3a113775714a22dcb774d8ea3655c53a32debae63a063acc00a91cc586245f"
|
||||||
"checksum unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1f2ae5ddb18e1c92664717616dd9549dde73f539f01bd7b77c2edb2446bdff91"
|
"checksum unreachable 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1f2ae5ddb18e1c92664717616dd9549dde73f539f01bd7b77c2edb2446bdff91"
|
||||||
"checksum utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e55124122"
|
"checksum utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e55124122"
|
||||||
"checksum vec_map 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cac5efe5cb0fa14ec2f84f83c701c562ee63f6dcc680861b21d65c682adfb05f"
|
"checksum vec_map 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8cdc8b93bd0198ed872357fb2e667f7125646b1762f16d60b2c96350d361897"
|
||||||
"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
|
"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
|
||||||
"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
|
"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
|
||||||
"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
|
"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
|
||||||
|
|
|
@ -94,6 +94,13 @@ fn main() {
|
||||||
cmd.arg("-Cprefer-dynamic");
|
cmd.arg("-Cprefer-dynamic");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Pass the `rustbuild` feature flag to crates which rustbuild is
|
||||||
|
// building. See the comment in bootstrap/lib.rs where this env var is
|
||||||
|
// set for more details.
|
||||||
|
if env::var_os("RUSTBUILD_UNSTABLE").is_some() {
|
||||||
|
cmd.arg("--cfg").arg("rustbuild");
|
||||||
|
}
|
||||||
|
|
||||||
// Help the libc crate compile by assisting it in finding the MUSL
|
// Help the libc crate compile by assisting it in finding the MUSL
|
||||||
// native libraries.
|
// native libraries.
|
||||||
if let Some(s) = env::var_os("MUSL_ROOT") {
|
if let Some(s) = env::var_os("MUSL_ROOT") {
|
||||||
|
@ -182,7 +189,7 @@ fn main() {
|
||||||
if env::var("RUSTC_RPATH") == Ok("true".to_string()) {
|
if env::var("RUSTC_RPATH") == Ok("true".to_string()) {
|
||||||
let rpath = if target.contains("apple") {
|
let rpath = if target.contains("apple") {
|
||||||
|
|
||||||
// Note that we need to take one extra step on OSX to also pass
|
// Note that we need to take one extra step on macOS to also pass
|
||||||
// `-Wl,-instal_name,@rpath/...` to get things to work right. To
|
// `-Wl,-instal_name,@rpath/...` to get things to work right. To
|
||||||
// do that we pass a weird flag to the compiler to get it to do
|
// do that we pass a weird flag to the compiler to get it to do
|
||||||
// so. Note that this is definitely a hack, and we should likely
|
// so. Note that this is definitely a hack, and we should likely
|
||||||
|
|
|
@ -40,6 +40,14 @@ fn main() {
|
||||||
.arg(sysroot)
|
.arg(sysroot)
|
||||||
.env(bootstrap::util::dylib_path_var(),
|
.env(bootstrap::util::dylib_path_var(),
|
||||||
env::join_paths(&dylib_path).unwrap());
|
env::join_paths(&dylib_path).unwrap());
|
||||||
|
|
||||||
|
// Pass the `rustbuild` feature flag to crates which rustbuild is
|
||||||
|
// building. See the comment in bootstrap/lib.rs where this env var is
|
||||||
|
// set for more details.
|
||||||
|
if env::var_os("RUSTBUILD_UNSTABLE").is_some() {
|
||||||
|
cmd.arg("--cfg").arg("rustbuild");
|
||||||
|
}
|
||||||
|
|
||||||
std::process::exit(match cmd.status() {
|
std::process::exit(match cmd.status() {
|
||||||
Ok(s) => s.code().unwrap_or(1),
|
Ok(s) => s.code().unwrap_or(1),
|
||||||
Err(e) => panic!("\n\nfailed to run {:?}: {}\n\n", cmd, e),
|
Err(e) => panic!("\n\nfailed to run {:?}: {}\n\n", cmd, e),
|
||||||
|
|
|
@ -160,18 +160,16 @@ class RustBuild(object):
|
||||||
def download_stage0(self):
|
def download_stage0(self):
|
||||||
cache_dst = os.path.join(self.build_dir, "cache")
|
cache_dst = os.path.join(self.build_dir, "cache")
|
||||||
rustc_cache = os.path.join(cache_dst, self.stage0_rustc_date())
|
rustc_cache = os.path.join(cache_dst, self.stage0_rustc_date())
|
||||||
cargo_cache = os.path.join(cache_dst, self.stage0_cargo_rev())
|
|
||||||
if not os.path.exists(rustc_cache):
|
if not os.path.exists(rustc_cache):
|
||||||
os.makedirs(rustc_cache)
|
os.makedirs(rustc_cache)
|
||||||
if not os.path.exists(cargo_cache):
|
|
||||||
os.makedirs(cargo_cache)
|
channel = self.stage0_rustc_channel()
|
||||||
|
|
||||||
if self.rustc().startswith(self.bin_root()) and \
|
if self.rustc().startswith(self.bin_root()) and \
|
||||||
(not os.path.exists(self.rustc()) or self.rustc_out_of_date()):
|
(not os.path.exists(self.rustc()) or self.rustc_out_of_date()):
|
||||||
self.print_what_it_means_to_bootstrap()
|
self.print_what_it_means_to_bootstrap()
|
||||||
if os.path.exists(self.bin_root()):
|
if os.path.exists(self.bin_root()):
|
||||||
shutil.rmtree(self.bin_root())
|
shutil.rmtree(self.bin_root())
|
||||||
channel = self.stage0_rustc_channel()
|
|
||||||
filename = "rust-std-{}-{}.tar.gz".format(channel, self.build)
|
filename = "rust-std-{}-{}.tar.gz".format(channel, self.build)
|
||||||
url = "https://static.rust-lang.org/dist/" + self.stage0_rustc_date()
|
url = "https://static.rust-lang.org/dist/" + self.stage0_rustc_date()
|
||||||
tarball = os.path.join(rustc_cache, filename)
|
tarball = os.path.join(rustc_cache, filename)
|
||||||
|
@ -192,18 +190,26 @@ class RustBuild(object):
|
||||||
with open(self.rustc_stamp(), 'w') as f:
|
with open(self.rustc_stamp(), 'w') as f:
|
||||||
f.write(self.stage0_rustc_date())
|
f.write(self.stage0_rustc_date())
|
||||||
|
|
||||||
|
if "pc-windows-gnu" in self.build:
|
||||||
|
filename = "rust-mingw-{}-{}.tar.gz".format(channel, self.build)
|
||||||
|
url = "https://static.rust-lang.org/dist/" + self.stage0_rustc_date()
|
||||||
|
tarball = os.path.join(rustc_cache, filename)
|
||||||
|
if not os.path.exists(tarball):
|
||||||
|
get("{}/{}".format(url, filename), tarball, verbose=self.verbose)
|
||||||
|
unpack(tarball, self.bin_root(), match="rust-mingw", verbose=self.verbose)
|
||||||
|
|
||||||
if self.cargo().startswith(self.bin_root()) and \
|
if self.cargo().startswith(self.bin_root()) and \
|
||||||
(not os.path.exists(self.cargo()) or self.cargo_out_of_date()):
|
(not os.path.exists(self.cargo()) or self.cargo_out_of_date()):
|
||||||
self.print_what_it_means_to_bootstrap()
|
self.print_what_it_means_to_bootstrap()
|
||||||
filename = "cargo-nightly-{}.tar.gz".format(self.build)
|
filename = "cargo-{}-{}.tar.gz".format(channel, self.build)
|
||||||
url = "https://s3.amazonaws.com/rust-lang-ci/cargo-builds/" + self.stage0_cargo_rev()
|
url = "https://static.rust-lang.org/dist/" + self.stage0_rustc_date()
|
||||||
tarball = os.path.join(cargo_cache, filename)
|
tarball = os.path.join(rustc_cache, filename)
|
||||||
if not os.path.exists(tarball):
|
if not os.path.exists(tarball):
|
||||||
get("{}/{}".format(url, filename), tarball, verbose=self.verbose)
|
get("{}/{}".format(url, filename), tarball, verbose=self.verbose)
|
||||||
unpack(tarball, self.bin_root(), match="cargo", verbose=self.verbose)
|
unpack(tarball, self.bin_root(), match="cargo", verbose=self.verbose)
|
||||||
self.fix_executable(self.bin_root() + "/bin/cargo")
|
self.fix_executable(self.bin_root() + "/bin/cargo")
|
||||||
with open(self.cargo_stamp(), 'w') as f:
|
with open(self.cargo_stamp(), 'w') as f:
|
||||||
f.write(self.stage0_cargo_rev())
|
f.write(self.stage0_rustc_date())
|
||||||
|
|
||||||
def fix_executable(self, fname):
|
def fix_executable(self, fname):
|
||||||
# If we're on NixOS we need to change the path to the dynamic loader
|
# If we're on NixOS we need to change the path to the dynamic loader
|
||||||
|
@ -258,9 +264,6 @@ class RustBuild(object):
|
||||||
print("warning: failed to call patchelf: %s" % e)
|
print("warning: failed to call patchelf: %s" % e)
|
||||||
return
|
return
|
||||||
|
|
||||||
def stage0_cargo_rev(self):
|
|
||||||
return self._cargo_rev
|
|
||||||
|
|
||||||
def stage0_rustc_date(self):
|
def stage0_rustc_date(self):
|
||||||
return self._rustc_date
|
return self._rustc_date
|
||||||
|
|
||||||
|
@ -283,7 +286,7 @@ class RustBuild(object):
|
||||||
if not os.path.exists(self.cargo_stamp()) or self.clean:
|
if not os.path.exists(self.cargo_stamp()) or self.clean:
|
||||||
return True
|
return True
|
||||||
with open(self.cargo_stamp(), 'r') as f:
|
with open(self.cargo_stamp(), 'r') as f:
|
||||||
return self.stage0_cargo_rev() != f.read()
|
return self.stage0_rustc_date() != f.read()
|
||||||
|
|
||||||
def bin_root(self):
|
def bin_root(self):
|
||||||
return os.path.join(self.build_dir, self.build, "stage0")
|
return os.path.join(self.build_dir, self.build, "stage0")
|
||||||
|
@ -469,10 +472,10 @@ class RustBuild(object):
|
||||||
cputype = 'i686'
|
cputype = 'i686'
|
||||||
elif cputype in {'xscale', 'arm'}:
|
elif cputype in {'xscale', 'arm'}:
|
||||||
cputype = 'arm'
|
cputype = 'arm'
|
||||||
elif cputype in {'armv6l', 'armv7l', 'armv8l'}:
|
elif cputype == 'armv6l':
|
||||||
cputype = 'arm'
|
cputype = 'arm'
|
||||||
ostype += 'eabihf'
|
ostype += 'eabihf'
|
||||||
elif cputype == 'armv7l':
|
elif cputype in {'armv7l', 'armv8l'}:
|
||||||
cputype = 'armv7'
|
cputype = 'armv7'
|
||||||
ostype += 'eabihf'
|
ostype += 'eabihf'
|
||||||
elif cputype == 'aarch64':
|
elif cputype == 'aarch64':
|
||||||
|
@ -578,7 +581,6 @@ def bootstrap():
|
||||||
|
|
||||||
data = stage0_data(rb.rust_root)
|
data = stage0_data(rb.rust_root)
|
||||||
rb._rustc_channel, rb._rustc_date = data['rustc'].split('-', 1)
|
rb._rustc_channel, rb._rustc_date = data['rustc'].split('-', 1)
|
||||||
rb._cargo_rev = data['cargo']
|
|
||||||
|
|
||||||
# Fetch/build the bootstrap
|
# Fetch/build the bootstrap
|
||||||
rb.build = rb.build_triple()
|
rb.build = rb.build_triple()
|
||||||
|
@ -598,16 +600,19 @@ def bootstrap():
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
start_time = time()
|
start_time = time()
|
||||||
|
help_triggered = ('-h' in sys.argv) or ('--help' in sys.argv) or (len(sys.argv) == 1)
|
||||||
try:
|
try:
|
||||||
bootstrap()
|
bootstrap()
|
||||||
print("Build completed successfully in %s" % format_build_time(time() - start_time))
|
if not help_triggered:
|
||||||
|
print("Build completed successfully in %s" % format_build_time(time() - start_time))
|
||||||
except (SystemExit, KeyboardInterrupt) as e:
|
except (SystemExit, KeyboardInterrupt) as e:
|
||||||
if hasattr(e, 'code') and isinstance(e.code, int):
|
if hasattr(e, 'code') and isinstance(e.code, int):
|
||||||
exit_code = e.code
|
exit_code = e.code
|
||||||
else:
|
else:
|
||||||
exit_code = 1
|
exit_code = 1
|
||||||
print(e)
|
print(e)
|
||||||
print("Build completed unsuccessfully in %s" % format_build_time(time() - start_time))
|
if not help_triggered:
|
||||||
|
print("Build completed unsuccessfully in %s" % format_build_time(time() - start_time))
|
||||||
sys.exit(exit_code)
|
sys.exit(exit_code)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -23,7 +23,7 @@ use build_helper::output;
|
||||||
use Build;
|
use Build;
|
||||||
|
|
||||||
// The version number
|
// The version number
|
||||||
pub const CFG_RELEASE_NUM: &'static str = "1.17.0";
|
pub const CFG_RELEASE_NUM: &'static str = "1.18.0";
|
||||||
|
|
||||||
// An optional number to put after the label, e.g. '.2' -> '-beta.2'
|
// An optional number to put after the label, e.g. '.2' -> '-beta.2'
|
||||||
// Be sure to make this starts with a dot to conform to semver pre-release
|
// Be sure to make this starts with a dot to conform to semver pre-release
|
||||||
|
|
|
@ -176,7 +176,7 @@ pub fn compiletest(build: &Build,
|
||||||
cmd.arg("--docck-python").arg(build.python());
|
cmd.arg("--docck-python").arg(build.python());
|
||||||
|
|
||||||
if build.config.build.ends_with("apple-darwin") {
|
if build.config.build.ends_with("apple-darwin") {
|
||||||
// Force /usr/bin/python on OSX for LLDB tests because we're loading the
|
// Force /usr/bin/python on macOS for LLDB tests because we're loading the
|
||||||
// LLDB plugin's compiled module which only works with the system python
|
// LLDB plugin's compiled module which only works with the system python
|
||||||
// (namely not Homebrew-installed python)
|
// (namely not Homebrew-installed python)
|
||||||
cmd.arg("--lldb-python").arg("/usr/bin/python");
|
cmd.arg("--lldb-python").arg("/usr/bin/python");
|
||||||
|
@ -285,6 +285,16 @@ pub fn docs(build: &Build, compiler: &Compiler) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The nostarch directory in the book is for no starch, and so isn't guaranteed to build.
|
||||||
|
// we don't care if it doesn't build, so skip it.
|
||||||
|
use std::ffi::OsStr;
|
||||||
|
let path: &OsStr = p.as_ref();
|
||||||
|
if let Some(path) = path.to_str() {
|
||||||
|
if path.contains("nostarch") {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
println!("doc tests for: {}", p.display());
|
println!("doc tests for: {}", p.display());
|
||||||
markdown_test(build, compiler, &p);
|
markdown_test(build, compiler, &p);
|
||||||
}
|
}
|
||||||
|
@ -576,7 +586,7 @@ fn android_copy_libs(build: &Build, compiler: &Compiler, target: &str) {
|
||||||
.arg(ADB_TEST_DIR));
|
.arg(ADB_TEST_DIR));
|
||||||
|
|
||||||
let target_dir = format!("{}/{}", ADB_TEST_DIR, target);
|
let target_dir = format!("{}/{}", ADB_TEST_DIR, target);
|
||||||
build.run(Command::new("adb").args(&["shell", "mkdir", &target_dir[..]]));
|
build.run(Command::new("adb").args(&["shell", "mkdir", &target_dir]));
|
||||||
|
|
||||||
for f in t!(build.sysroot_libdir(compiler, target).read_dir()) {
|
for f in t!(build.sysroot_libdir(compiler, target).read_dir()) {
|
||||||
let f = t!(f);
|
let f = t!(f);
|
||||||
|
|
|
@ -22,9 +22,9 @@ use std::path::Path;
|
||||||
use Build;
|
use Build;
|
||||||
|
|
||||||
pub fn clean(build: &Build) {
|
pub fn clean(build: &Build) {
|
||||||
rm_rf(build, "tmp".as_ref());
|
rm_rf("tmp".as_ref());
|
||||||
rm_rf(build, &build.out.join("tmp"));
|
rm_rf(&build.out.join("tmp"));
|
||||||
rm_rf(build, &build.out.join("dist"));
|
rm_rf(&build.out.join("dist"));
|
||||||
|
|
||||||
for host in build.config.host.iter() {
|
for host in build.config.host.iter() {
|
||||||
let entries = match build.out.join(host).read_dir() {
|
let entries = match build.out.join(host).read_dir() {
|
||||||
|
@ -38,32 +38,31 @@ pub fn clean(build: &Build) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
let path = t!(entry.path().canonicalize());
|
let path = t!(entry.path().canonicalize());
|
||||||
rm_rf(build, &path);
|
rm_rf(&path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn rm_rf(build: &Build, path: &Path) {
|
fn rm_rf(path: &Path) {
|
||||||
if !path.exists() {
|
match path.symlink_metadata() {
|
||||||
return
|
Err(e) => {
|
||||||
}
|
if e.kind() == ErrorKind::NotFound {
|
||||||
if path.is_file() {
|
return;
|
||||||
return do_op(path, "remove file", |p| fs::remove_file(p));
|
}
|
||||||
}
|
panic!("failed to get metadata for file {}: {}", path.display(), e);
|
||||||
|
},
|
||||||
|
Ok(metadata) => {
|
||||||
|
if metadata.file_type().is_file() || metadata.file_type().is_symlink() {
|
||||||
|
do_op(path, "remove file", |p| fs::remove_file(p));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for file in t!(fs::read_dir(path)) {
|
for file in t!(fs::read_dir(path)) {
|
||||||
let file = t!(file).path();
|
rm_rf(&t!(file).path());
|
||||||
|
}
|
||||||
if file.is_dir() {
|
do_op(path, "remove dir", |p| fs::remove_dir(p));
|
||||||
rm_rf(build, &file);
|
},
|
||||||
} else {
|
};
|
||||||
// On windows we can't remove a readonly file, and git will
|
|
||||||
// often clone files as readonly. As a result, we have some
|
|
||||||
// special logic to remove readonly files on windows.
|
|
||||||
do_op(&file, "remove file", |p| fs::remove_file(p));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
do_op(path, "remove dir", |p| fs::remove_dir(p));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn do_op<F>(path: &Path, desc: &str, mut f: F)
|
fn do_op<F>(path: &Path, desc: &str, mut f: F)
|
||||||
|
@ -71,9 +70,12 @@ fn do_op<F>(path: &Path, desc: &str, mut f: F)
|
||||||
{
|
{
|
||||||
match f(path) {
|
match f(path) {
|
||||||
Ok(()) => {}
|
Ok(()) => {}
|
||||||
|
// On windows we can't remove a readonly file, and git will often clone files as readonly.
|
||||||
|
// As a result, we have some special logic to remove readonly files on windows.
|
||||||
|
// This is also the reason that we can't use things like fs::remove_dir_all().
|
||||||
Err(ref e) if cfg!(windows) &&
|
Err(ref e) if cfg!(windows) &&
|
||||||
e.kind() == ErrorKind::PermissionDenied => {
|
e.kind() == ErrorKind::PermissionDenied => {
|
||||||
let mut p = t!(path.metadata()).permissions();
|
let mut p = t!(path.symlink_metadata()).permissions();
|
||||||
p.set_readonly(false);
|
p.set_readonly(false);
|
||||||
t!(fs::set_permissions(path, p));
|
t!(fs::set_permissions(path, p));
|
||||||
f(path).unwrap_or_else(|e| {
|
f(path).unwrap_or_else(|e| {
|
||||||
|
|
|
@ -20,6 +20,7 @@ use std::collections::HashMap;
|
||||||
use std::fs::{self, File};
|
use std::fs::{self, File};
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
use std::process::Command;
|
use std::process::Command;
|
||||||
|
use std::env;
|
||||||
|
|
||||||
use build_helper::{output, mtime, up_to_date};
|
use build_helper::{output, mtime, up_to_date};
|
||||||
use filetime::FileTime;
|
use filetime::FileTime;
|
||||||
|
@ -44,6 +45,11 @@ pub fn std(build: &Build, target: &str, compiler: &Compiler) {
|
||||||
build.clear_if_dirty(&out_dir, &build.compiler_path(compiler));
|
build.clear_if_dirty(&out_dir, &build.compiler_path(compiler));
|
||||||
let mut cargo = build.cargo(compiler, Mode::Libstd, target, "build");
|
let mut cargo = build.cargo(compiler, Mode::Libstd, target, "build");
|
||||||
let mut features = build.std_features();
|
let mut features = build.std_features();
|
||||||
|
|
||||||
|
if let Ok(target) = env::var("MACOSX_STD_DEPLOYMENT_TARGET") {
|
||||||
|
cargo.env("MACOSX_DEPLOYMENT_TARGET", target);
|
||||||
|
}
|
||||||
|
|
||||||
// When doing a local rebuild we tell cargo that we're stage1 rather than
|
// When doing a local rebuild we tell cargo that we're stage1 rather than
|
||||||
// stage0. This works fine if the local rust and being-built rust have the
|
// stage0. This works fine if the local rust and being-built rust have the
|
||||||
// same view of what the default allocator is, but fails otherwise. Since
|
// same view of what the default allocator is, but fails otherwise. Since
|
||||||
|
@ -170,6 +176,9 @@ pub fn test(build: &Build, target: &str, compiler: &Compiler) {
|
||||||
let out_dir = build.cargo_out(compiler, Mode::Libtest, target);
|
let out_dir = build.cargo_out(compiler, Mode::Libtest, target);
|
||||||
build.clear_if_dirty(&out_dir, &libstd_stamp(build, compiler, target));
|
build.clear_if_dirty(&out_dir, &libstd_stamp(build, compiler, target));
|
||||||
let mut cargo = build.cargo(compiler, Mode::Libtest, target, "build");
|
let mut cargo = build.cargo(compiler, Mode::Libtest, target, "build");
|
||||||
|
if let Ok(target) = env::var("MACOSX_STD_DEPLOYMENT_TARGET") {
|
||||||
|
cargo.env("MACOSX_DEPLOYMENT_TARGET", target);
|
||||||
|
}
|
||||||
cargo.arg("--manifest-path")
|
cargo.arg("--manifest-path")
|
||||||
.arg(build.src.join("src/libtest/Cargo.toml"));
|
.arg(build.src.join("src/libtest/Cargo.toml"));
|
||||||
build.run(&mut cargo);
|
build.run(&mut cargo);
|
||||||
|
@ -249,7 +258,7 @@ pub fn rustc(build: &Build, target: &str, compiler: &Compiler) {
|
||||||
cargo.env("CFG_LLVM_ROOT", s);
|
cargo.env("CFG_LLVM_ROOT", s);
|
||||||
}
|
}
|
||||||
// Building with a static libstdc++ is only supported on linux right now,
|
// Building with a static libstdc++ is only supported on linux right now,
|
||||||
// not for MSVC or OSX
|
// not for MSVC or macOS
|
||||||
if build.config.llvm_static_stdcpp &&
|
if build.config.llvm_static_stdcpp &&
|
||||||
!target.contains("windows") &&
|
!target.contains("windows") &&
|
||||||
!target.contains("apple") {
|
!target.contains("apple") {
|
||||||
|
|
|
@ -23,7 +23,7 @@ use std::process;
|
||||||
use num_cpus;
|
use num_cpus;
|
||||||
use rustc_serialize::Decodable;
|
use rustc_serialize::Decodable;
|
||||||
use toml::{Parser, Decoder, Value};
|
use toml::{Parser, Decoder, Value};
|
||||||
use util::push_exe_path;
|
use util::{exe, push_exe_path};
|
||||||
|
|
||||||
/// Global configuration for the entire build and/or bootstrap.
|
/// Global configuration for the entire build and/or bootstrap.
|
||||||
///
|
///
|
||||||
|
@ -584,10 +584,10 @@ impl Config {
|
||||||
self.python = Some(path);
|
self.python = Some(path);
|
||||||
}
|
}
|
||||||
"CFG_ENABLE_CCACHE" if value == "1" => {
|
"CFG_ENABLE_CCACHE" if value == "1" => {
|
||||||
self.ccache = Some("ccache".to_string());
|
self.ccache = Some(exe("ccache", &self.build));
|
||||||
}
|
}
|
||||||
"CFG_ENABLE_SCCACHE" if value == "1" => {
|
"CFG_ENABLE_SCCACHE" if value == "1" => {
|
||||||
self.ccache = Some("sccache".to_string());
|
self.ccache = Some(exe("sccache", &self.build));
|
||||||
}
|
}
|
||||||
"CFG_CONFIGURE_ARGS" if value.len() > 0 => {
|
"CFG_CONFIGURE_ARGS" if value.len() > 0 => {
|
||||||
self.configure_args = value.split_whitespace()
|
self.configure_args = value.split_whitespace()
|
||||||
|
|
|
@ -88,11 +88,11 @@
|
||||||
# for each target triple.
|
# for each target triple.
|
||||||
#target = ["x86_64-unknown-linux-gnu"] # defaults to just the build triple
|
#target = ["x86_64-unknown-linux-gnu"] # defaults to just the build triple
|
||||||
|
|
||||||
# Instead of downloading the src/nightlies.txt version of Cargo specified, use
|
# Instead of downloading the src/stage0.txt version of Cargo specified, use
|
||||||
# this Cargo binary instead to build all Rust code
|
# this Cargo binary instead to build all Rust code
|
||||||
#cargo = "/path/to/bin/cargo"
|
#cargo = "/path/to/bin/cargo"
|
||||||
|
|
||||||
# Instead of downloading the src/nightlies.txt version of the compiler
|
# Instead of downloading the src/stage0.txt version of the compiler
|
||||||
# specified, use this rustc binary instead as the stage0 snapshot compiler.
|
# specified, use this rustc binary instead as the stage0 snapshot compiler.
|
||||||
#rustc = "/path/to/bin/rustc"
|
#rustc = "/path/to/bin/rustc"
|
||||||
|
|
||||||
|
|
|
@ -37,8 +37,12 @@ use channel;
|
||||||
use util::{cp_r, libdir, is_dylib, cp_filtered, copy, exe};
|
use util::{cp_r, libdir, is_dylib, cp_filtered, copy, exe};
|
||||||
|
|
||||||
fn pkgname(build: &Build, component: &str) -> String {
|
fn pkgname(build: &Build, component: &str) -> String {
|
||||||
assert!(component.starts_with("rust")); // does not work with cargo
|
if component == "cargo" {
|
||||||
format!("{}-{}", component, build.rust_package_vers())
|
format!("{}-{}", component, build.cargo_package_vers())
|
||||||
|
} else {
|
||||||
|
assert!(component.starts_with("rust"));
|
||||||
|
format!("{}-{}", component, build.rust_package_vers())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn distdir(build: &Build) -> PathBuf {
|
fn distdir(build: &Build) -> PathBuf {
|
||||||
|
@ -429,29 +433,32 @@ pub fn rust_src(build: &Build) {
|
||||||
copy(&build.src.join(item), &dst_src.join(item));
|
copy(&build.src.join(item), &dst_src.join(item));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get cargo-vendor installed, if it isn't already.
|
// If we're building from git sources, we need to vendor a complete distribution.
|
||||||
let mut has_cargo_vendor = false;
|
if build.src_is_git {
|
||||||
let mut cmd = Command::new(&build.cargo);
|
// Get cargo-vendor installed, if it isn't already.
|
||||||
for line in output(cmd.arg("install").arg("--list")).lines() {
|
let mut has_cargo_vendor = false;
|
||||||
has_cargo_vendor |= line.starts_with("cargo-vendor ");
|
|
||||||
}
|
|
||||||
if !has_cargo_vendor {
|
|
||||||
let mut cmd = Command::new(&build.cargo);
|
let mut cmd = Command::new(&build.cargo);
|
||||||
cmd.arg("install")
|
for line in output(cmd.arg("install").arg("--list")).lines() {
|
||||||
.arg("--force")
|
has_cargo_vendor |= line.starts_with("cargo-vendor ");
|
||||||
.arg("--debug")
|
}
|
||||||
.arg("--vers").arg(CARGO_VENDOR_VERSION)
|
if !has_cargo_vendor {
|
||||||
.arg("cargo-vendor")
|
let mut cmd = Command::new(&build.cargo);
|
||||||
.env("RUSTC", &build.rustc);
|
cmd.arg("install")
|
||||||
|
.arg("--force")
|
||||||
|
.arg("--debug")
|
||||||
|
.arg("--vers").arg(CARGO_VENDOR_VERSION)
|
||||||
|
.arg("cargo-vendor")
|
||||||
|
.env("RUSTC", &build.rustc);
|
||||||
|
build.run(&mut cmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vendor all Cargo dependencies
|
||||||
|
let mut cmd = Command::new(&build.cargo);
|
||||||
|
cmd.arg("vendor")
|
||||||
|
.current_dir(&dst_src.join("src"));
|
||||||
build.run(&mut cmd);
|
build.run(&mut cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vendor all Cargo dependencies
|
|
||||||
let mut cmd = Command::new(&build.cargo);
|
|
||||||
cmd.arg("vendor")
|
|
||||||
.current_dir(&dst_src.join("src"));
|
|
||||||
build.run(&mut cmd);
|
|
||||||
|
|
||||||
// Create source tarball in rust-installer format
|
// Create source tarball in rust-installer format
|
||||||
let mut cmd = Command::new(SH_CMD);
|
let mut cmd = Command::new(SH_CMD);
|
||||||
cmd.arg(sanitize_sh(&build.src.join("src/rust-installer/gen-installer.sh")))
|
cmd.arg(sanitize_sh(&build.src.join("src/rust-installer/gen-installer.sh")))
|
||||||
|
@ -533,7 +540,7 @@ pub fn cargo(build: &Build, stage: u32, target: &str) {
|
||||||
let src = build.src.join("cargo");
|
let src = build.src.join("cargo");
|
||||||
let etc = src.join("src/etc");
|
let etc = src.join("src/etc");
|
||||||
let release_num = build.cargo_release_num();
|
let release_num = build.cargo_release_num();
|
||||||
let name = format!("cargo-{}", build.package_vers(&release_num));
|
let name = pkgname(build, "cargo");
|
||||||
let version = build.cargo_info.version(build, &release_num);
|
let version = build.cargo_info.version(build, &release_num);
|
||||||
|
|
||||||
let tmp = tmpdir(build);
|
let tmp = tmpdir(build);
|
||||||
|
@ -591,12 +598,11 @@ pub fn extended(build: &Build, stage: u32, target: &str) {
|
||||||
println!("Dist extended stage{} ({})", stage, target);
|
println!("Dist extended stage{} ({})", stage, target);
|
||||||
|
|
||||||
let dist = distdir(build);
|
let dist = distdir(build);
|
||||||
let cargo_vers = build.cargo_release_num();
|
|
||||||
let rustc_installer = dist.join(format!("{}-{}.tar.gz",
|
let rustc_installer = dist.join(format!("{}-{}.tar.gz",
|
||||||
pkgname(build, "rustc"),
|
pkgname(build, "rustc"),
|
||||||
target));
|
target));
|
||||||
let cargo_installer = dist.join(format!("cargo-{}-{}.tar.gz",
|
let cargo_installer = dist.join(format!("{}-{}.tar.gz",
|
||||||
build.package_vers(&cargo_vers),
|
pkgname(build, "cargo"),
|
||||||
target));
|
target));
|
||||||
let docs_installer = dist.join(format!("{}-{}.tar.gz",
|
let docs_installer = dist.join(format!("{}-{}.tar.gz",
|
||||||
pkgname(build, "rust-docs"),
|
pkgname(build, "rust-docs"),
|
||||||
|
@ -674,7 +680,7 @@ pub fn extended(build: &Build, stage: u32, target: &str) {
|
||||||
|
|
||||||
cp_r(&work.join(&format!("{}-{}", pkgname(build, "rustc"), target)),
|
cp_r(&work.join(&format!("{}-{}", pkgname(build, "rustc"), target)),
|
||||||
&pkg.join("rustc"));
|
&pkg.join("rustc"));
|
||||||
cp_r(&work.join(&format!("cargo-nightly-{}", target)),
|
cp_r(&work.join(&format!("{}-{}", pkgname(build, "cargo"), target)),
|
||||||
&pkg.join("cargo"));
|
&pkg.join("cargo"));
|
||||||
cp_r(&work.join(&format!("{}-{}", pkgname(build, "rust-docs"), target)),
|
cp_r(&work.join(&format!("{}-{}", pkgname(build, "rust-docs"), target)),
|
||||||
&pkg.join("rust-docs"));
|
&pkg.join("rust-docs"));
|
||||||
|
@ -726,7 +732,7 @@ pub fn extended(build: &Build, stage: u32, target: &str) {
|
||||||
cp_r(&work.join(&format!("{}-{}", pkgname(build, "rustc"), target))
|
cp_r(&work.join(&format!("{}-{}", pkgname(build, "rustc"), target))
|
||||||
.join("rustc"),
|
.join("rustc"),
|
||||||
&exe.join("rustc"));
|
&exe.join("rustc"));
|
||||||
cp_r(&work.join(&format!("cargo-nightly-{}", target))
|
cp_r(&work.join(&format!("{}-{}", pkgname(build, "cargo"), target))
|
||||||
.join("cargo"),
|
.join("cargo"),
|
||||||
&exe.join("cargo"));
|
&exe.join("cargo"));
|
||||||
cp_r(&work.join(&format!("{}-{}", pkgname(build, "rust-docs"), target))
|
cp_r(&work.join(&format!("{}-{}", pkgname(build, "rust-docs"), target))
|
||||||
|
|
|
@ -53,6 +53,82 @@ pub fn rustbook(build: &Build, target: &str, name: &str) {
|
||||||
.arg(out));
|
.arg(out));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Build the book and associated stuff.
|
||||||
|
///
|
||||||
|
/// We need to build:
|
||||||
|
///
|
||||||
|
/// * Book (first edition)
|
||||||
|
/// * Book (second edition)
|
||||||
|
/// * Index page
|
||||||
|
/// * Redirect pages
|
||||||
|
pub fn book(build: &Build, target: &str, name: &str) {
|
||||||
|
// build book first edition
|
||||||
|
rustbook(build, target, &format!("{}/first-edition", name));
|
||||||
|
|
||||||
|
// build book second edition
|
||||||
|
rustbook(build, target, &format!("{}/second-edition", name));
|
||||||
|
|
||||||
|
// build the index page
|
||||||
|
let index = format!("{}/index.md", name);
|
||||||
|
println!("Documenting book index ({})", target);
|
||||||
|
invoke_rustdoc(build, target, &index);
|
||||||
|
|
||||||
|
// build the redirect pages
|
||||||
|
println!("Documenting book redirect pages ({})", target);
|
||||||
|
for file in t!(fs::read_dir(build.src.join("src/doc/book/redirects"))) {
|
||||||
|
let file = t!(file);
|
||||||
|
let path = file.path();
|
||||||
|
let path = path.to_str().unwrap();
|
||||||
|
|
||||||
|
invoke_rustdoc(build, target, path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn invoke_rustdoc(build: &Build, target: &str, markdown: &str) {
|
||||||
|
let out = build.doc_out(target);
|
||||||
|
|
||||||
|
let compiler = Compiler::new(0, &build.config.build);
|
||||||
|
|
||||||
|
let path = build.src.join("src/doc").join(markdown);
|
||||||
|
|
||||||
|
let rustdoc = build.rustdoc(&compiler);
|
||||||
|
|
||||||
|
let favicon = build.src.join("src/doc/favicon.inc");
|
||||||
|
let footer = build.src.join("src/doc/footer.inc");
|
||||||
|
|
||||||
|
let version_input = build.src.join("src/doc/version_info.html.template");
|
||||||
|
let version_info = out.join("version_info.html");
|
||||||
|
|
||||||
|
if !up_to_date(&version_input, &version_info) {
|
||||||
|
let mut info = String::new();
|
||||||
|
t!(t!(File::open(&version_input)).read_to_string(&mut info));
|
||||||
|
let info = info.replace("VERSION", &build.rust_release())
|
||||||
|
.replace("SHORT_HASH", build.rust_info.sha_short().unwrap_or(""))
|
||||||
|
.replace("STAMP", build.rust_info.sha().unwrap_or(""));
|
||||||
|
t!(t!(File::create(&version_info)).write_all(info.as_bytes()));
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut cmd = Command::new(&rustdoc);
|
||||||
|
|
||||||
|
build.add_rustc_lib_path(&compiler, &mut cmd);
|
||||||
|
|
||||||
|
let out = out.join("book");
|
||||||
|
|
||||||
|
t!(fs::copy(build.src.join("src/doc/rust.css"), out.join("rust.css")));
|
||||||
|
|
||||||
|
cmd.arg("--html-after-content").arg(&footer)
|
||||||
|
.arg("--html-before-content").arg(&version_info)
|
||||||
|
.arg("--html-in-header").arg(&favicon)
|
||||||
|
.arg("--markdown-playground-url")
|
||||||
|
.arg("https://play.rust-lang.org/")
|
||||||
|
.arg("-o").arg(&out)
|
||||||
|
.arg(&path)
|
||||||
|
.arg("--markdown-css")
|
||||||
|
.arg("rust.css");
|
||||||
|
|
||||||
|
build.run(&mut cmd);
|
||||||
|
}
|
||||||
|
|
||||||
/// Generates all standalone documentation as compiled by the rustdoc in `stage`
|
/// Generates all standalone documentation as compiled by the rustdoc in `stage`
|
||||||
/// for the `target` into `out`.
|
/// for the `target` into `out`.
|
||||||
///
|
///
|
||||||
|
|
|
@ -18,7 +18,7 @@ use std::fs;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use std::process;
|
use std::process;
|
||||||
|
|
||||||
use getopts::{Matches, Options};
|
use getopts::Options;
|
||||||
|
|
||||||
use Build;
|
use Build;
|
||||||
use config::Config;
|
use config::Config;
|
||||||
|
@ -75,7 +75,22 @@ pub enum Subcommand {
|
||||||
|
|
||||||
impl Flags {
|
impl Flags {
|
||||||
pub fn parse(args: &[String]) -> Flags {
|
pub fn parse(args: &[String]) -> Flags {
|
||||||
|
let mut extra_help = String::new();
|
||||||
|
let mut subcommand_help = format!("\
|
||||||
|
Usage: x.py <subcommand> [options] [<paths>...]
|
||||||
|
|
||||||
|
Subcommands:
|
||||||
|
build Compile either the compiler or libraries
|
||||||
|
test Build and run some test suites
|
||||||
|
bench Build and run some benchmarks
|
||||||
|
doc Build documentation
|
||||||
|
clean Clean out build directories
|
||||||
|
dist Build and/or install distribution artifacts
|
||||||
|
|
||||||
|
To learn more about a subcommand, run `./x.py <subcommand> -h`");
|
||||||
|
|
||||||
let mut opts = Options::new();
|
let mut opts = Options::new();
|
||||||
|
// Options common to all subcommands
|
||||||
opts.optflagmulti("v", "verbose", "use verbose output (-vv for very verbose)");
|
opts.optflagmulti("v", "verbose", "use verbose output (-vv for very verbose)");
|
||||||
opts.optflag("i", "incremental", "use incremental compilation");
|
opts.optflag("i", "incremental", "use incremental compilation");
|
||||||
opts.optopt("", "config", "TOML configuration file for build", "FILE");
|
opts.optopt("", "config", "TOML configuration file for build", "FILE");
|
||||||
|
@ -89,21 +104,83 @@ impl Flags {
|
||||||
opts.optopt("j", "jobs", "number of jobs to run in parallel", "JOBS");
|
opts.optopt("j", "jobs", "number of jobs to run in parallel", "JOBS");
|
||||||
opts.optflag("h", "help", "print this help message");
|
opts.optflag("h", "help", "print this help message");
|
||||||
|
|
||||||
let usage = |n, opts: &Options| -> ! {
|
// fn usage()
|
||||||
let command = args.get(0).map(|s| &**s);
|
let usage = |exit_code: i32, opts: &Options, subcommand_help: &str, extra_help: &str| -> ! {
|
||||||
let brief = format!("Usage: x.py {} [options] [<args>...]",
|
println!("{}", opts.usage(subcommand_help));
|
||||||
command.unwrap_or("<command>"));
|
if !extra_help.is_empty() {
|
||||||
|
println!("{}", extra_help);
|
||||||
|
}
|
||||||
|
process::exit(exit_code);
|
||||||
|
};
|
||||||
|
|
||||||
println!("{}", opts.usage(&brief));
|
// We can't use getopt to parse the options until we have completed specifying which
|
||||||
match command {
|
// options are valid, but under the current implementation, some options are conditional on
|
||||||
Some("build") => {
|
// the subcommand. Therefore we must manually identify the subcommand first, so that we can
|
||||||
println!("\
|
// complete the definition of the options. Then we can use the getopt::Matches object from
|
||||||
|
// there on out.
|
||||||
|
let mut possible_subcommands = args.iter().collect::<Vec<_>>();
|
||||||
|
possible_subcommands.retain(|&s|
|
||||||
|
(s == "build")
|
||||||
|
|| (s == "test")
|
||||||
|
|| (s == "bench")
|
||||||
|
|| (s == "doc")
|
||||||
|
|| (s == "clean")
|
||||||
|
|| (s == "dist"));
|
||||||
|
let subcommand = match possible_subcommands.first() {
|
||||||
|
Some(s) => s,
|
||||||
|
None => {
|
||||||
|
// No subcommand -- show the general usage and subcommand help
|
||||||
|
println!("{}\n", subcommand_help);
|
||||||
|
process::exit(0);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Some subcommands get extra options
|
||||||
|
match subcommand.as_str() {
|
||||||
|
"test" => { opts.optmulti("", "test-args", "extra arguments", "ARGS"); },
|
||||||
|
"bench" => { opts.optmulti("", "test-args", "extra arguments", "ARGS"); },
|
||||||
|
"dist" => { opts.optflag("", "install", "run installer as well"); },
|
||||||
|
_ => { },
|
||||||
|
};
|
||||||
|
|
||||||
|
// Done specifying what options are possible, so do the getopts parsing
|
||||||
|
let matches = opts.parse(&args[..]).unwrap_or_else(|e| {
|
||||||
|
// Invalid argument/option format
|
||||||
|
println!("\n{}\n", e);
|
||||||
|
usage(1, &opts, &subcommand_help, &extra_help);
|
||||||
|
});
|
||||||
|
// Extra sanity check to make sure we didn't hit this crazy corner case:
|
||||||
|
//
|
||||||
|
// ./x.py --frobulate clean build
|
||||||
|
// ^-- option ^ ^- actual subcommand
|
||||||
|
// \_ arg to option could be mistaken as subcommand
|
||||||
|
let mut pass_sanity_check = true;
|
||||||
|
match matches.free.get(0) {
|
||||||
|
Some(check_subcommand) => {
|
||||||
|
if &check_subcommand != subcommand {
|
||||||
|
pass_sanity_check = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
None => {
|
||||||
|
pass_sanity_check = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !pass_sanity_check {
|
||||||
|
println!("{}\n", subcommand_help);
|
||||||
|
println!("Sorry, I couldn't figure out which subcommand you were trying to specify.\n\
|
||||||
|
You may need to move some options to after the subcommand.\n");
|
||||||
|
process::exit(1);
|
||||||
|
}
|
||||||
|
// Extra help text for some commands
|
||||||
|
match subcommand.as_str() {
|
||||||
|
"build" => {
|
||||||
|
subcommand_help.push_str("\n
|
||||||
Arguments:
|
Arguments:
|
||||||
This subcommand accepts a number of positional arguments of directories to
|
This subcommand accepts a number of paths to directories to the crates
|
||||||
the crates and/or artifacts to compile. For example:
|
and/or artifacts to compile. For example:
|
||||||
|
|
||||||
./x.py build src/libcore
|
./x.py build src/libcore
|
||||||
./x.py build src/libproc_macro
|
./x.py build src/libcore src/libproc_macro
|
||||||
./x.py build src/libstd --stage 1
|
./x.py build src/libstd --stage 1
|
||||||
|
|
||||||
If no arguments are passed then the complete artifacts for that stage are
|
If no arguments are passed then the complete artifacts for that stage are
|
||||||
|
@ -114,15 +191,13 @@ Arguments:
|
||||||
|
|
||||||
For a quick build with a usable compile, you can pass:
|
For a quick build with a usable compile, you can pass:
|
||||||
|
|
||||||
./x.py build --stage 1 src/libtest
|
./x.py build --stage 1 src/libtest");
|
||||||
");
|
}
|
||||||
}
|
"test" => {
|
||||||
|
subcommand_help.push_str("\n
|
||||||
Some("test") => {
|
|
||||||
println!("\
|
|
||||||
Arguments:
|
Arguments:
|
||||||
This subcommand accepts a number of positional arguments of directories to
|
This subcommand accepts a number of paths to directories to tests that
|
||||||
tests that should be compiled and run. For example:
|
should be compiled and run. For example:
|
||||||
|
|
||||||
./x.py test src/test/run-pass
|
./x.py test src/test/run-pass
|
||||||
./x.py test src/libstd --test-args hash_map
|
./x.py test src/libstd --test-args hash_map
|
||||||
|
@ -132,139 +207,90 @@ Arguments:
|
||||||
compiled and tested.
|
compiled and tested.
|
||||||
|
|
||||||
./x.py test
|
./x.py test
|
||||||
./x.py test --stage 1
|
./x.py test --stage 1");
|
||||||
");
|
}
|
||||||
}
|
"doc" => {
|
||||||
|
subcommand_help.push_str("\n
|
||||||
Some("doc") => {
|
|
||||||
println!("\
|
|
||||||
Arguments:
|
Arguments:
|
||||||
This subcommand accepts a number of positional arguments of directories of
|
This subcommand accepts a number of paths to directories of documentation
|
||||||
documentation to build. For example:
|
to build. For example:
|
||||||
|
|
||||||
./x.py doc src/doc/book
|
./x.py doc src/doc/book
|
||||||
./x.py doc src/doc/nomicon
|
./x.py doc src/doc/nomicon
|
||||||
./x.py doc src/libstd
|
./x.py doc src/doc/book src/libstd
|
||||||
|
|
||||||
If no arguments are passed then everything is documented:
|
If no arguments are passed then everything is documented:
|
||||||
|
|
||||||
./x.py doc
|
./x.py doc
|
||||||
./x.py doc --stage 1
|
./x.py doc --stage 1");
|
||||||
");
|
|
||||||
}
|
|
||||||
|
|
||||||
_ => {}
|
|
||||||
}
|
}
|
||||||
|
_ => { }
|
||||||
if let Some(command) = command {
|
|
||||||
if command == "build" ||
|
|
||||||
command == "dist" ||
|
|
||||||
command == "doc" ||
|
|
||||||
command == "test" ||
|
|
||||||
command == "bench" ||
|
|
||||||
command == "clean" {
|
|
||||||
println!("Available invocations:");
|
|
||||||
if args.iter().any(|a| a == "-v") {
|
|
||||||
let flags = Flags::parse(&["build".to_string()]);
|
|
||||||
let mut config = Config::default();
|
|
||||||
config.build = flags.build.clone();
|
|
||||||
let mut build = Build::new(flags, config);
|
|
||||||
metadata::build(&mut build);
|
|
||||||
step::build_rules(&build).print_help(command);
|
|
||||||
} else {
|
|
||||||
println!(" ... elided, run `./x.py {} -h -v` to see",
|
|
||||||
command);
|
|
||||||
}
|
|
||||||
|
|
||||||
println!("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
println!("\
|
|
||||||
Subcommands:
|
|
||||||
build Compile either the compiler or libraries
|
|
||||||
test Build and run some test suites
|
|
||||||
bench Build and run some benchmarks
|
|
||||||
doc Build documentation
|
|
||||||
clean Clean out build directories
|
|
||||||
dist Build and/or install distribution artifacts
|
|
||||||
|
|
||||||
To learn more about a subcommand, run `./x.py <command> -h`
|
|
||||||
");
|
|
||||||
|
|
||||||
process::exit(n);
|
|
||||||
};
|
};
|
||||||
if args.len() == 0 {
|
// Get any optional paths which occur after the subcommand
|
||||||
println!("a command must be passed");
|
|
||||||
usage(1, &opts);
|
|
||||||
}
|
|
||||||
let parse = |opts: &Options| {
|
|
||||||
let m = opts.parse(&args[1..]).unwrap_or_else(|e| {
|
|
||||||
println!("failed to parse options: {}", e);
|
|
||||||
usage(1, opts);
|
|
||||||
});
|
|
||||||
if m.opt_present("h") {
|
|
||||||
usage(0, opts);
|
|
||||||
}
|
|
||||||
return m
|
|
||||||
};
|
|
||||||
|
|
||||||
let cwd = t!(env::current_dir());
|
let cwd = t!(env::current_dir());
|
||||||
let remaining_as_path = |m: &Matches| {
|
let paths = matches.free[1..].iter().map(|p| cwd.join(p)).collect::<Vec<_>>();
|
||||||
m.free.iter().map(|p| cwd.join(p)).collect::<Vec<_>>()
|
|
||||||
};
|
|
||||||
|
|
||||||
let m: Matches;
|
|
||||||
let cmd = match &args[0][..] {
|
// All subcommands can have an optional "Available paths" section
|
||||||
"build" => {
|
if matches.opt_present("verbose") {
|
||||||
m = parse(&opts);
|
let flags = Flags::parse(&["build".to_string()]);
|
||||||
Subcommand::Build { paths: remaining_as_path(&m) }
|
let mut config = Config::default();
|
||||||
|
config.build = flags.build.clone();
|
||||||
|
let mut build = Build::new(flags, config);
|
||||||
|
metadata::build(&mut build);
|
||||||
|
let maybe_rules_help = step::build_rules(&build).get_help(subcommand);
|
||||||
|
if maybe_rules_help.is_some() {
|
||||||
|
extra_help.push_str(maybe_rules_help.unwrap().as_str());
|
||||||
}
|
}
|
||||||
"doc" => {
|
} else {
|
||||||
m = parse(&opts);
|
extra_help.push_str(format!("Run `./x.py {} -h -v` to see a list of available paths.",
|
||||||
Subcommand::Doc { paths: remaining_as_path(&m) }
|
subcommand).as_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
// User passed in -h/--help?
|
||||||
|
if matches.opt_present("help") {
|
||||||
|
usage(0, &opts, &subcommand_help, &extra_help);
|
||||||
|
}
|
||||||
|
|
||||||
|
let cmd = match subcommand.as_str() {
|
||||||
|
"build" => {
|
||||||
|
Subcommand::Build { paths: paths }
|
||||||
}
|
}
|
||||||
"test" => {
|
"test" => {
|
||||||
opts.optmulti("", "test-args", "extra arguments", "ARGS");
|
|
||||||
m = parse(&opts);
|
|
||||||
Subcommand::Test {
|
Subcommand::Test {
|
||||||
paths: remaining_as_path(&m),
|
paths: paths,
|
||||||
test_args: m.opt_strs("test-args"),
|
test_args: matches.opt_strs("test-args"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"bench" => {
|
"bench" => {
|
||||||
opts.optmulti("", "test-args", "extra arguments", "ARGS");
|
|
||||||
m = parse(&opts);
|
|
||||||
Subcommand::Bench {
|
Subcommand::Bench {
|
||||||
paths: remaining_as_path(&m),
|
paths: paths,
|
||||||
test_args: m.opt_strs("test-args"),
|
test_args: matches.opt_strs("test-args"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
"doc" => {
|
||||||
|
Subcommand::Doc { paths: paths }
|
||||||
|
}
|
||||||
"clean" => {
|
"clean" => {
|
||||||
m = parse(&opts);
|
if paths.len() > 0 {
|
||||||
if m.free.len() > 0 {
|
println!("\nclean takes no arguments\n");
|
||||||
println!("clean takes no arguments");
|
usage(1, &opts, &subcommand_help, &extra_help);
|
||||||
usage(1, &opts);
|
|
||||||
}
|
}
|
||||||
Subcommand::Clean
|
Subcommand::Clean
|
||||||
}
|
}
|
||||||
"dist" => {
|
"dist" => {
|
||||||
opts.optflag("", "install", "run installer as well");
|
|
||||||
m = parse(&opts);
|
|
||||||
Subcommand::Dist {
|
Subcommand::Dist {
|
||||||
paths: remaining_as_path(&m),
|
paths: paths,
|
||||||
install: m.opt_present("install"),
|
install: matches.opt_present("install"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"--help" => usage(0, &opts),
|
_ => {
|
||||||
cmd => {
|
usage(1, &opts, &subcommand_help, &extra_help);
|
||||||
println!("unknown command: {}", cmd);
|
|
||||||
usage(1, &opts);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
let cfg_file = m.opt_str("config").map(PathBuf::from).or_else(|| {
|
let cfg_file = matches.opt_str("config").map(PathBuf::from).or_else(|| {
|
||||||
if fs::metadata("config.toml").is_ok() {
|
if fs::metadata("config.toml").is_ok() {
|
||||||
Some(PathBuf::from("config.toml"))
|
Some(PathBuf::from("config.toml"))
|
||||||
} else {
|
} else {
|
||||||
|
@ -272,31 +298,29 @@ To learn more about a subcommand, run `./x.py <command> -h`
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
let mut stage = m.opt_str("stage").map(|j| j.parse().unwrap());
|
let mut stage = matches.opt_str("stage").map(|j| j.parse().unwrap());
|
||||||
|
|
||||||
let incremental = m.opt_present("i");
|
if matches.opt_present("incremental") {
|
||||||
|
|
||||||
if incremental {
|
|
||||||
if stage.is_none() {
|
if stage.is_none() {
|
||||||
stage = Some(1);
|
stage = Some(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Flags {
|
Flags {
|
||||||
verbose: m.opt_count("v"),
|
verbose: matches.opt_count("verbose"),
|
||||||
stage: stage,
|
stage: stage,
|
||||||
on_fail: m.opt_str("on-fail"),
|
on_fail: matches.opt_str("on-fail"),
|
||||||
keep_stage: m.opt_str("keep-stage").map(|j| j.parse().unwrap()),
|
keep_stage: matches.opt_str("keep-stage").map(|j| j.parse().unwrap()),
|
||||||
build: m.opt_str("build").unwrap_or_else(|| {
|
build: matches.opt_str("build").unwrap_or_else(|| {
|
||||||
env::var("BUILD").unwrap()
|
env::var("BUILD").unwrap()
|
||||||
}),
|
}),
|
||||||
host: split(m.opt_strs("host")),
|
host: split(matches.opt_strs("host")),
|
||||||
target: split(m.opt_strs("target")),
|
target: split(matches.opt_strs("target")),
|
||||||
config: cfg_file,
|
config: cfg_file,
|
||||||
src: m.opt_str("src").map(PathBuf::from),
|
src: matches.opt_str("src").map(PathBuf::from),
|
||||||
jobs: m.opt_str("jobs").map(|j| j.parse().unwrap()),
|
jobs: matches.opt_str("jobs").map(|j| j.parse().unwrap()),
|
||||||
cmd: cmd,
|
cmd: cmd,
|
||||||
incremental: incremental,
|
incremental: matches.opt_present("incremental"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,12 +49,17 @@ pub fn install(build: &Build, stage: u32, host: &str) {
|
||||||
install_sh(&build, "docs", "rust-docs", stage, host, &prefix,
|
install_sh(&build, "docs", "rust-docs", stage, host, &prefix,
|
||||||
&docdir, &libdir, &mandir, &empty_dir);
|
&docdir, &libdir, &mandir, &empty_dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for target in build.config.target.iter() {
|
||||||
|
install_sh(&build, "std", "rust-std", stage, target, &prefix,
|
||||||
|
&docdir, &libdir, &mandir, &empty_dir);
|
||||||
|
}
|
||||||
|
|
||||||
if build.config.rust_save_analysis {
|
if build.config.rust_save_analysis {
|
||||||
install_sh(&build, "analysis", "rust-analysis", stage, host, &prefix,
|
install_sh(&build, "analysis", "rust-analysis", stage, host, &prefix,
|
||||||
&docdir, &libdir, &mandir, &empty_dir);
|
&docdir, &libdir, &mandir, &empty_dir);
|
||||||
}
|
}
|
||||||
install_sh(&build, "std", "rust-std", stage, host, &prefix,
|
|
||||||
&docdir, &libdir, &mandir, &empty_dir);
|
|
||||||
install_sh(&build, "rustc", "rustc", stage, host, &prefix,
|
install_sh(&build, "rustc", "rustc", stage, host, &prefix,
|
||||||
&docdir, &libdir, &mandir, &empty_dir);
|
&docdir, &libdir, &mandir, &empty_dir);
|
||||||
t!(fs::remove_dir_all(&empty_dir));
|
t!(fs::remove_dir_all(&empty_dir));
|
||||||
|
|
|
@ -162,6 +162,7 @@ pub struct Build {
|
||||||
cxx: HashMap<String, gcc::Tool>,
|
cxx: HashMap<String, gcc::Tool>,
|
||||||
crates: HashMap<String, Crate>,
|
crates: HashMap<String, Crate>,
|
||||||
is_sudo: bool,
|
is_sudo: bool,
|
||||||
|
src_is_git: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
@ -180,7 +181,7 @@ struct Crate {
|
||||||
///
|
///
|
||||||
/// These entries currently correspond to the various output directories of the
|
/// These entries currently correspond to the various output directories of the
|
||||||
/// build system, with each mod generating output in a different directory.
|
/// build system, with each mod generating output in a different directory.
|
||||||
#[derive(Clone, Copy)]
|
#[derive(Clone, Copy, PartialEq, Eq)]
|
||||||
pub enum Mode {
|
pub enum Mode {
|
||||||
/// This cargo is going to build the standard library, placing output in the
|
/// This cargo is going to build the standard library, placing output in the
|
||||||
/// "stageN-std" directory.
|
/// "stageN-std" directory.
|
||||||
|
@ -233,6 +234,7 @@ impl Build {
|
||||||
};
|
};
|
||||||
let rust_info = channel::GitInfo::new(&src);
|
let rust_info = channel::GitInfo::new(&src);
|
||||||
let cargo_info = channel::GitInfo::new(&src.join("cargo"));
|
let cargo_info = channel::GitInfo::new(&src.join("cargo"));
|
||||||
|
let src_is_git = src.join(".git").exists();
|
||||||
|
|
||||||
Build {
|
Build {
|
||||||
flags: flags,
|
flags: flags,
|
||||||
|
@ -251,6 +253,7 @@ impl Build {
|
||||||
lldb_version: None,
|
lldb_version: None,
|
||||||
lldb_python_dir: None,
|
lldb_python_dir: None,
|
||||||
is_sudo: is_sudo,
|
is_sudo: is_sudo,
|
||||||
|
src_is_git: src_is_git,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -307,10 +310,7 @@ impl Build {
|
||||||
OutOfSync,
|
OutOfSync,
|
||||||
}
|
}
|
||||||
|
|
||||||
if !self.config.submodules {
|
if !self.src_is_git || !self.config.submodules {
|
||||||
return
|
|
||||||
}
|
|
||||||
if fs::metadata(self.src.join(".git")).is_err() {
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
let git = || {
|
let git = || {
|
||||||
|
@ -491,7 +491,7 @@ impl Build {
|
||||||
// For other crates, however, we know that we've already got a standard
|
// For other crates, however, we know that we've already got a standard
|
||||||
// library up and running, so we can use the normal compiler to compile
|
// library up and running, so we can use the normal compiler to compile
|
||||||
// build scripts in that situation.
|
// build scripts in that situation.
|
||||||
if let Mode::Libstd = mode {
|
if mode == Mode::Libstd {
|
||||||
cargo.env("RUSTC_SNAPSHOT", &self.rustc)
|
cargo.env("RUSTC_SNAPSHOT", &self.rustc)
|
||||||
.env("RUSTC_SNAPSHOT_LIBDIR", self.rustc_snapshot_libdir());
|
.env("RUSTC_SNAPSHOT_LIBDIR", self.rustc_snapshot_libdir());
|
||||||
} else {
|
} else {
|
||||||
|
@ -499,6 +499,27 @@ impl Build {
|
||||||
.env("RUSTC_SNAPSHOT_LIBDIR", self.rustc_libdir(compiler));
|
.env("RUSTC_SNAPSHOT_LIBDIR", self.rustc_libdir(compiler));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// There are two invariants we try must maintain:
|
||||||
|
// * stable crates cannot depend on unstable crates (general Rust rule),
|
||||||
|
// * crates that end up in the sysroot must be unstable (rustbuild rule).
|
||||||
|
//
|
||||||
|
// In order to do enforce the latter, we pass the env var
|
||||||
|
// `RUSTBUILD_UNSTABLE` down the line for any crates which will end up
|
||||||
|
// in the sysroot. We read this in bootstrap/bin/rustc.rs and if it is
|
||||||
|
// set, then we pass the `rustbuild` feature to rustc when building the
|
||||||
|
// the crate.
|
||||||
|
//
|
||||||
|
// In turn, crates that can be used here should recognise the `rustbuild`
|
||||||
|
// feature and opt-in to `rustc_private`.
|
||||||
|
//
|
||||||
|
// We can't always pass `rustbuild` because crates which are outside of
|
||||||
|
// the comipiler, libs, and tests are stable and we don't want to make
|
||||||
|
// their deps unstable (since this would break the first invariant
|
||||||
|
// above).
|
||||||
|
if mode != Mode::Tool {
|
||||||
|
cargo.env("RUSTBUILD_UNSTABLE", "1");
|
||||||
|
}
|
||||||
|
|
||||||
// Ignore incremental modes except for stage0, since we're
|
// Ignore incremental modes except for stage0, since we're
|
||||||
// not guaranteeing correctness acros builds if the compiler
|
// not guaranteeing correctness acros builds if the compiler
|
||||||
// is changing under your feet.`
|
// is changing under your feet.`
|
||||||
|
@ -846,7 +867,7 @@ impl Build {
|
||||||
.filter(|s| !s.starts_with("-O") && !s.starts_with("/O"))
|
.filter(|s| !s.starts_with("-O") && !s.starts_with("/O"))
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
// If we're compiling on OSX then we add a few unconditional flags
|
// If we're compiling on macOS then we add a few unconditional flags
|
||||||
// indicating that we want libc++ (more filled out than libstdc++) and
|
// indicating that we want libc++ (more filled out than libstdc++) and
|
||||||
// we want to compile for 10.7. This way we can ensure that
|
// we want to compile for 10.7. This way we can ensure that
|
||||||
// LLVM/jemalloc/etc are all properly compiled.
|
// LLVM/jemalloc/etc are all properly compiled.
|
||||||
|
@ -994,6 +1015,11 @@ impl Build {
|
||||||
self.package_vers(channel::CFG_RELEASE_NUM)
|
self.package_vers(channel::CFG_RELEASE_NUM)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns the value of `package_vers` above for Cargo
|
||||||
|
fn cargo_package_vers(&self) -> String {
|
||||||
|
self.package_vers(&self.cargo_release_num())
|
||||||
|
}
|
||||||
|
|
||||||
/// Returns the `version` string associated with this compiler for Rust
|
/// Returns the `version` string associated with this compiler for Rust
|
||||||
/// itself.
|
/// itself.
|
||||||
///
|
///
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
//! LLVM and compiler-rt are essentially just wired up to everything else to
|
//! LLVM and compiler-rt are essentially just wired up to everything else to
|
||||||
//! ensure that they're always in place if needed.
|
//! ensure that they're always in place if needed.
|
||||||
|
|
||||||
|
use std::env;
|
||||||
use std::fs::{self, File};
|
use std::fs::{self, File};
|
||||||
use std::io::{Read, Write};
|
use std::io::{Read, Write};
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
@ -145,6 +146,10 @@ pub fn llvm(build: &Build, target: &str) {
|
||||||
cfg.define("CMAKE_CXX_FLAGS", build.cflags(target).join(" "));
|
cfg.define("CMAKE_CXX_FLAGS", build.cflags(target).join(" "));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if env::var_os("SCCACHE_ERROR_LOG").is_some() {
|
||||||
|
cfg.env("RUST_LOG", "sccache=debug");
|
||||||
|
}
|
||||||
|
|
||||||
// FIXME: we don't actually need to build all LLVM tools and all LLVM
|
// FIXME: we don't actually need to build all LLVM tools and all LLVM
|
||||||
// libraries here, e.g. we just want a few components and a few
|
// libraries here, e.g. we just want a few components and a few
|
||||||
// tools. Figure out how to filter them down and only build the right
|
// tools. Figure out how to filter them down and only build the right
|
||||||
|
@ -222,9 +227,24 @@ pub fn openssl(build: &Build, target: &str) {
|
||||||
let tarball = out.join(&name);
|
let tarball = out.join(&name);
|
||||||
if !tarball.exists() {
|
if !tarball.exists() {
|
||||||
let tmp = tarball.with_extension("tmp");
|
let tmp = tarball.with_extension("tmp");
|
||||||
build.run(Command::new("curl")
|
// originally from https://www.openssl.org/source/...
|
||||||
.arg("-o").arg(&tmp)
|
let url = format!("https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/{}",
|
||||||
.arg(format!("https://www.openssl.org/source/{}", name)));
|
name);
|
||||||
|
let mut ok = false;
|
||||||
|
for _ in 0..3 {
|
||||||
|
let status = Command::new("curl")
|
||||||
|
.arg("-o").arg(&tmp)
|
||||||
|
.arg(&url)
|
||||||
|
.status()
|
||||||
|
.expect("failed to spawn curl");
|
||||||
|
if status.success() {
|
||||||
|
ok = true;
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !ok {
|
||||||
|
panic!("failed to download openssl source")
|
||||||
|
}
|
||||||
let mut shasum = if target.contains("apple") {
|
let mut shasum = if target.contains("apple") {
|
||||||
let mut cmd = Command::new("shasum");
|
let mut cmd = Command::new("shasum");
|
||||||
cmd.arg("-a").arg("256");
|
cmd.arg("-a").arg("256");
|
||||||
|
|
|
@ -65,7 +65,7 @@ pub fn check(build: &mut Build) {
|
||||||
|
|
||||||
// If we've got a git directory we're gona need git to update
|
// If we've got a git directory we're gona need git to update
|
||||||
// submodules and learn about various other aspects.
|
// submodules and learn about various other aspects.
|
||||||
if fs::metadata(build.src.join(".git")).is_ok() {
|
if build.src_is_git {
|
||||||
need_cmd("git".as_ref());
|
need_cmd("git".as_ref());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,10 +151,10 @@ pub fn check(build: &mut Build) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for target in build.config.target.iter() {
|
for target in build.config.target.iter() {
|
||||||
// Can't compile for iOS unless we're on OSX
|
// Can't compile for iOS unless we're on macOS
|
||||||
if target.contains("apple-ios") &&
|
if target.contains("apple-ios") &&
|
||||||
!build.config.build.contains("apple-darwin") {
|
!build.config.build.contains("apple-darwin") {
|
||||||
panic!("the iOS target is only supported on OSX");
|
panic!("the iOS target is only supported on macOS");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure musl-root is valid if specified
|
// Make sure musl-root is valid if specified
|
||||||
|
|
|
@ -581,7 +581,7 @@ pub fn build_rules<'a>(build: &'a Build) -> Rules {
|
||||||
.stage(0)
|
.stage(0)
|
||||||
})
|
})
|
||||||
.default(build.config.docs)
|
.default(build.config.docs)
|
||||||
.run(move |s| doc::rustbook(build, s.target, "book"));
|
.run(move |s| doc::book(build, s.target, "book"));
|
||||||
rules.doc("doc-nomicon", "src/doc/nomicon")
|
rules.doc("doc-nomicon", "src/doc/nomicon")
|
||||||
.dep(move |s| {
|
.dep(move |s| {
|
||||||
s.name("tool-rustbook")
|
s.name("tool-rustbook")
|
||||||
|
@ -978,26 +978,25 @@ invalid rule dependency graph detected, was a rule added and maybe typo'd?
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn print_help(&self, command: &str) {
|
pub fn get_help(&self, command: &str) -> Option<String> {
|
||||||
let kind = match command {
|
let kind = match command {
|
||||||
"build" => Kind::Build,
|
"build" => Kind::Build,
|
||||||
"doc" => Kind::Doc,
|
"doc" => Kind::Doc,
|
||||||
"test" => Kind::Test,
|
"test" => Kind::Test,
|
||||||
"bench" => Kind::Bench,
|
"bench" => Kind::Bench,
|
||||||
"dist" => Kind::Dist,
|
"dist" => Kind::Dist,
|
||||||
_ => return,
|
_ => return None,
|
||||||
};
|
};
|
||||||
let rules = self.rules.values().filter(|r| r.kind == kind);
|
let rules = self.rules.values().filter(|r| r.kind == kind);
|
||||||
let rules = rules.filter(|r| !r.path.contains("nowhere"));
|
let rules = rules.filter(|r| !r.path.contains("nowhere"));
|
||||||
let mut rules = rules.collect::<Vec<_>>();
|
let mut rules = rules.collect::<Vec<_>>();
|
||||||
rules.sort_by_key(|r| r.path);
|
rules.sort_by_key(|r| r.path);
|
||||||
|
|
||||||
println!("Available paths:\n");
|
let mut help_string = String::from("Available paths:\n");
|
||||||
for rule in rules {
|
for rule in rules {
|
||||||
print!(" ./x.py {} {}", command, rule.path);
|
help_string.push_str(format!(" ./x.py {} {}\n", command, rule.path).as_str());
|
||||||
|
|
||||||
println!("");
|
|
||||||
}
|
}
|
||||||
|
Some(help_string)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Construct the top-level build steps that we're going to be executing,
|
/// Construct the top-level build steps that we're going to be executing,
|
||||||
|
|
|
@ -152,18 +152,13 @@ For targets: `powerpc-unknown-linux-gnu`
|
||||||
- Path and misc options > Patches origin = Bundled, then local
|
- Path and misc options > Patches origin = Bundled, then local
|
||||||
- Path and misc options > Local patch directory = /tmp/patches
|
- Path and misc options > Local patch directory = /tmp/patches
|
||||||
- Target options > Target Architecture = powerpc
|
- Target options > Target Architecture = powerpc
|
||||||
- Target options > Emit assembly for CPU = power4 -- (+)
|
- Target options > Emit assembly for CPU = powerpc -- pure 32-bit PowerPC
|
||||||
- Target options > Tune for CPU = power6 -- (+)
|
|
||||||
- Operating System > Target OS = linux
|
- Operating System > Target OS = linux
|
||||||
- Operating System > Linux kernel version = 2.6.32.68 -- ~RHEL6 kernel
|
- Operating System > Linux kernel version = 2.6.32.68 -- ~RHEL6 kernel
|
||||||
- C-library > glibc version = 2.12.2 -- ~RHEL6 glibc
|
- C-library > glibc version = 2.12.2 -- ~RHEL6 glibc
|
||||||
- C compiler > gcc version = 4.9.3
|
- C compiler > gcc version = 4.9.3
|
||||||
- C compiler > Core gcc extra config = --with-cpu-32=power4 --with-cpu=default32 -- (+)
|
|
||||||
- C compiler > gcc extra config = --with-cpu-32=power4 --with-cpu=default32 -- (+)
|
|
||||||
- C compiler > C++ = ENABLE -- to cross compile LLVM
|
- C compiler > C++ = ENABLE -- to cross compile LLVM
|
||||||
|
|
||||||
(+) These CPU options match the configuration of the toolchains in RHEL6.
|
|
||||||
|
|
||||||
## `powerpc64-linux-gnu.config`
|
## `powerpc64-linux-gnu.config`
|
||||||
|
|
||||||
For targets: `powerpc64-unknown-linux-gnu`
|
For targets: `powerpc64-unknown-linux-gnu`
|
||||||
|
|
|
@ -13,7 +13,7 @@ RUN dpkg --add-architecture i386 && \
|
||||||
cmake \
|
cmake \
|
||||||
unzip \
|
unzip \
|
||||||
expect \
|
expect \
|
||||||
openjdk-9-jre \
|
openjdk-9-jre-headless \
|
||||||
sudo \
|
sudo \
|
||||||
libstdc++6:i386 \
|
libstdc++6:i386 \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
|
|
|
@ -10,7 +10,9 @@
|
||||||
# except according to those terms.
|
# except according to those terms.
|
||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
ANDROID_EMULATOR_FORCE_32BIT=true \
|
|
||||||
nohup nohup emulator @arm-18 -no-window -partition-size 2047 \
|
# Setting SHELL to a file instead on a symlink helps android
|
||||||
0<&- &>/dev/null &
|
# emulator identify the system
|
||||||
|
export SHELL=/bin/bash
|
||||||
|
nohup nohup emulator @arm-18 -no-window -partition-size 2047 0<&- &>/dev/null &
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|
|
@ -74,7 +74,7 @@ RUN arm-linux-gnueabihf-gcc addentropy.c -o rootfs/addentropy -static
|
||||||
RUN curl -O http://ftp.nl.debian.org/debian/dists/jessie/main/installer-armhf/current/images/device-tree/vexpress-v2p-ca15-tc1.dtb
|
RUN curl -O http://ftp.nl.debian.org/debian/dists/jessie/main/installer-armhf/current/images/device-tree/vexpress-v2p-ca15-tc1.dtb
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
|
|
@ -22,7 +22,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
|
|
@ -27,10 +27,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
|
||||||
chmod +x /usr/local/bin/sccache
|
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
dpkg -i dumb-init_*.deb && \
|
dpkg -i dumb-init_*.deb && \
|
||||||
rm dumb-init_*.deb
|
rm dumb-init_*.deb
|
||||||
|
@ -60,24 +56,22 @@ RUN mkdir /x-tools && chown rustbuild:rustbuild /x-tools
|
||||||
USER rustbuild
|
USER rustbuild
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
|
|
||||||
COPY armv7-linux-gnueabihf.config /tmp/
|
COPY aarch64-linux-gnu.config build-toolchains.sh /tmp/
|
||||||
COPY armv7-linux-gnueabihf.config aarch64-linux-gnu.config build-toolchains.sh /tmp/
|
|
||||||
RUN ./build-toolchains.sh
|
RUN ./build-toolchains.sh
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
ENV PATH=$PATH:/x-tools/aarch64-unknown-linux-gnueabi/bin
|
ENV PATH=$PATH:/x-tools/aarch64-unknown-linux-gnueabi/bin
|
||||||
ENV PATH=$PATH:/x-tools/armv7-unknown-linux-gnueabihf/bin
|
|
||||||
|
|
||||||
ENV CC_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnueabi-gcc \
|
ENV CC_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnueabi-gcc \
|
||||||
AR_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnueabi-ar \
|
AR_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnueabi-ar \
|
||||||
CXX_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnueabi-g++ \
|
CXX_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnueabi-g++
|
||||||
CC_armv7_unknown_linux_gnueabihf=armv7-unknown-linux-gnueabihf-gcc \
|
|
||||||
AR_armv7_unknown_linux_gnueabihf=armv7-unknown-linux-gnueabihf-ar \
|
|
||||||
CXX_armv7_unknown_linux_gnueabihf=armv7-unknown-linux-gnueabihf-g++
|
|
||||||
|
|
||||||
ENV HOSTS=armv7-unknown-linux-gnueabihf
|
ENV HOSTS=aarch64-unknown-linux-gnu
|
||||||
ENV HOSTS=$HOSTS,aarch64-unknown-linux-gnu
|
|
||||||
|
|
||||||
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
||||||
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
37
src/ci/docker/dist-aarch64-linux/build-toolchains.sh
Executable file
37
src/ci/docker/dist-aarch64-linux/build-toolchains.sh
Executable file
|
@ -0,0 +1,37 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
hide_output() {
|
||||||
|
set +x
|
||||||
|
on_err="
|
||||||
|
echo ERROR: An error was encountered with the build.
|
||||||
|
cat /tmp/build.log
|
||||||
|
exit 1
|
||||||
|
"
|
||||||
|
trap "$on_err" ERR
|
||||||
|
bash -c "while true; do sleep 30; echo \$(date) - building ...; done" &
|
||||||
|
PING_LOOP_PID=$!
|
||||||
|
$@ &> /tmp/build.log
|
||||||
|
rm /tmp/build.log
|
||||||
|
trap - ERR
|
||||||
|
kill $PING_LOOP_PID
|
||||||
|
set -x
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cp ../aarch64-linux-gnu.config .config
|
||||||
|
ct-ng oldconfig
|
||||||
|
hide_output ct-ng build
|
||||||
|
cd ..
|
||||||
|
rm -rf build
|
|
@ -32,7 +32,7 @@ RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-ini
|
||||||
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
ENV TARGETS=arm-linux-androideabi
|
ENV TARGETS=arm-linux-androideabi
|
||||||
|
|
|
@ -27,10 +27,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
|
||||||
chmod +x /usr/local/bin/sccache
|
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
dpkg -i dumb-init_*.deb && \
|
dpkg -i dumb-init_*.deb && \
|
||||||
rm dumb-init_*.deb
|
rm dumb-init_*.deb
|
||||||
|
@ -60,23 +56,22 @@ RUN mkdir /x-tools && chown rustbuild:rustbuild /x-tools
|
||||||
USER rustbuild
|
USER rustbuild
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
|
|
||||||
COPY arm-linux-gnueabihf.config arm-linux-gnueabi.config build-toolchains.sh /tmp/
|
COPY arm-linux-gnueabi.config build-toolchains.sh /tmp/
|
||||||
RUN ./build-toolchains.sh
|
RUN ./build-toolchains.sh
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
ENV PATH=$PATH:/x-tools/arm-unknown-linux-gnueabi/bin
|
ENV PATH=$PATH:/x-tools/arm-unknown-linux-gnueabi/bin
|
||||||
ENV PATH=$PATH:/x-tools/arm-unknown-linux-gnueabihf/bin
|
|
||||||
|
|
||||||
ENV CC_arm_unknown_linux_gnueabi=arm-unknown-linux-gnueabi-gcc \
|
ENV CC_arm_unknown_linux_gnueabi=arm-unknown-linux-gnueabi-gcc \
|
||||||
AR_arm_unknown_linux_gnueabi=arm-unknown-linux-gnueabi-ar \
|
AR_arm_unknown_linux_gnueabi=arm-unknown-linux-gnueabi-ar \
|
||||||
CXX_arm_unknown_linux_gnueabi=arm-unknown-linux-gnueabi-g++ \
|
CXX_arm_unknown_linux_gnueabi=arm-unknown-linux-gnueabi-g++
|
||||||
CC_arm_unknown_linux_gnueabihf=arm-unknown-linux-gnueabihf-gcc \
|
|
||||||
AR_arm_unknown_linux_gnueabihf=arm-unknown-linux-gnueabihf-ar \
|
|
||||||
CXX_arm_unknown_linux_gnueabihf=arm-unknown-linux-gnueabihf-g++
|
|
||||||
|
|
||||||
ENV HOSTS=arm-unknown-linux-gnueabi
|
ENV HOSTS=arm-unknown-linux-gnueabi
|
||||||
ENV HOSTS=$HOSTS,arm-unknown-linux-gnueabihf
|
|
||||||
|
|
||||||
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
||||||
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
||||||
|
|
|
@ -35,11 +35,3 @@ ct-ng oldconfig
|
||||||
hide_output ct-ng build
|
hide_output ct-ng build
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf build
|
rm -rf build
|
||||||
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
cp ../arm-linux-gnueabihf.config .config
|
|
||||||
ct-ng oldconfig
|
|
||||||
hide_output ct-ng build
|
|
||||||
cd ..
|
|
||||||
rm -rf build
|
|
||||||
|
|
77
src/ci/docker/dist-armhf-linux/Dockerfile
Normal file
77
src/ci/docker/dist-armhf-linux/Dockerfile
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
FROM ubuntu:16.04
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
automake \
|
||||||
|
bison \
|
||||||
|
bzip2 \
|
||||||
|
ca-certificates \
|
||||||
|
cmake \
|
||||||
|
curl \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gawk \
|
||||||
|
gdb \
|
||||||
|
git \
|
||||||
|
gperf \
|
||||||
|
help2man \
|
||||||
|
libncurses-dev \
|
||||||
|
libtool-bin \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
python2.7 \
|
||||||
|
sudo \
|
||||||
|
texinfo \
|
||||||
|
wget \
|
||||||
|
xz-utils \
|
||||||
|
libssl-dev \
|
||||||
|
pkg-config
|
||||||
|
|
||||||
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
dpkg -i dumb-init_*.deb && \
|
||||||
|
rm dumb-init_*.deb
|
||||||
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
|
# Ubuntu 16.04 (this contianer) ships with make 4, but something in the
|
||||||
|
# toolchains we build below chokes on that, so go back to make 3
|
||||||
|
RUN curl https://ftp.gnu.org/gnu/make/make-3.81.tar.gz | tar xzf - && \
|
||||||
|
cd make-3.81 && \
|
||||||
|
./configure --prefix=/usr && \
|
||||||
|
make && \
|
||||||
|
make install && \
|
||||||
|
cd .. && \
|
||||||
|
rm -rf make-3.81
|
||||||
|
|
||||||
|
RUN curl http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.22.0.tar.bz2 | \
|
||||||
|
tar xjf - && \
|
||||||
|
cd crosstool-ng && \
|
||||||
|
./configure --prefix=/usr/local && \
|
||||||
|
make -j$(nproc) && \
|
||||||
|
make install && \
|
||||||
|
cd .. && \
|
||||||
|
rm -rf crosstool-ng
|
||||||
|
|
||||||
|
RUN groupadd -r rustbuild && useradd -m -r -g rustbuild rustbuild
|
||||||
|
RUN mkdir /x-tools && chown rustbuild:rustbuild /x-tools
|
||||||
|
USER rustbuild
|
||||||
|
WORKDIR /tmp
|
||||||
|
|
||||||
|
COPY arm-linux-gnueabihf.config build-toolchains.sh /tmp/
|
||||||
|
RUN ./build-toolchains.sh
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
|
ENV PATH=$PATH:/x-tools/arm-unknown-linux-gnueabihf/bin
|
||||||
|
|
||||||
|
ENV CC_arm_unknown_linux_gnueabihf=arm-unknown-linux-gnueabihf-gcc \
|
||||||
|
AR_arm_unknown_linux_gnueabihf=arm-unknown-linux-gnueabihf-ar \
|
||||||
|
CXX_arm_unknown_linux_gnueabihf=arm-unknown-linux-gnueabihf-g++
|
||||||
|
|
||||||
|
ENV HOSTS=arm-unknown-linux-gnueabihf
|
||||||
|
|
||||||
|
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
||||||
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
37
src/ci/docker/dist-armhf-linux/build-toolchains.sh
Executable file
37
src/ci/docker/dist-armhf-linux/build-toolchains.sh
Executable file
|
@ -0,0 +1,37 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
hide_output() {
|
||||||
|
set +x
|
||||||
|
on_err="
|
||||||
|
echo ERROR: An error was encountered with the build.
|
||||||
|
cat /tmp/build.log
|
||||||
|
exit 1
|
||||||
|
"
|
||||||
|
trap "$on_err" ERR
|
||||||
|
bash -c "while true; do sleep 30; echo \$(date) - building ...; done" &
|
||||||
|
PING_LOOP_PID=$!
|
||||||
|
$@ &> /tmp/build.log
|
||||||
|
rm /tmp/build.log
|
||||||
|
trap - ERR
|
||||||
|
kill $PING_LOOP_PID
|
||||||
|
set -x
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cp ../arm-linux-gnueabihf.config .config
|
||||||
|
ct-ng oldconfig
|
||||||
|
hide_output ct-ng build
|
||||||
|
cd ..
|
||||||
|
rm -rf build
|
77
src/ci/docker/dist-armv7-linux/Dockerfile
Normal file
77
src/ci/docker/dist-armv7-linux/Dockerfile
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
FROM ubuntu:16.04
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
automake \
|
||||||
|
bison \
|
||||||
|
bzip2 \
|
||||||
|
ca-certificates \
|
||||||
|
cmake \
|
||||||
|
curl \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gawk \
|
||||||
|
gdb \
|
||||||
|
git \
|
||||||
|
gperf \
|
||||||
|
help2man \
|
||||||
|
libncurses-dev \
|
||||||
|
libtool-bin \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
python2.7 \
|
||||||
|
sudo \
|
||||||
|
texinfo \
|
||||||
|
wget \
|
||||||
|
xz-utils \
|
||||||
|
libssl-dev \
|
||||||
|
pkg-config
|
||||||
|
|
||||||
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
dpkg -i dumb-init_*.deb && \
|
||||||
|
rm dumb-init_*.deb
|
||||||
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
|
# Ubuntu 16.04 (this contianer) ships with make 4, but something in the
|
||||||
|
# toolchains we build below chokes on that, so go back to make 3
|
||||||
|
RUN curl https://ftp.gnu.org/gnu/make/make-3.81.tar.gz | tar xzf - && \
|
||||||
|
cd make-3.81 && \
|
||||||
|
./configure --prefix=/usr && \
|
||||||
|
make && \
|
||||||
|
make install && \
|
||||||
|
cd .. && \
|
||||||
|
rm -rf make-3.81
|
||||||
|
|
||||||
|
RUN curl http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.22.0.tar.bz2 | \
|
||||||
|
tar xjf - && \
|
||||||
|
cd crosstool-ng && \
|
||||||
|
./configure --prefix=/usr/local && \
|
||||||
|
make -j$(nproc) && \
|
||||||
|
make install && \
|
||||||
|
cd .. && \
|
||||||
|
rm -rf crosstool-ng
|
||||||
|
|
||||||
|
RUN groupadd -r rustbuild && useradd -m -r -g rustbuild rustbuild
|
||||||
|
RUN mkdir /x-tools && chown rustbuild:rustbuild /x-tools
|
||||||
|
USER rustbuild
|
||||||
|
WORKDIR /tmp
|
||||||
|
|
||||||
|
COPY build-toolchains.sh armv7-linux-gnueabihf.config /tmp/
|
||||||
|
RUN ./build-toolchains.sh
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
|
ENV PATH=$PATH:/x-tools/armv7-unknown-linux-gnueabihf/bin
|
||||||
|
|
||||||
|
ENV CC_armv7_unknown_linux_gnueabihf=armv7-unknown-linux-gnueabihf-gcc \
|
||||||
|
AR_armv7_unknown_linux_gnueabihf=armv7-unknown-linux-gnueabihf-ar \
|
||||||
|
CXX_armv7_unknown_linux_gnueabihf=armv7-unknown-linux-gnueabihf-g++
|
||||||
|
|
||||||
|
ENV HOSTS=armv7-unknown-linux-gnueabihf
|
||||||
|
|
||||||
|
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
||||||
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
|
@ -35,11 +35,3 @@ ct-ng oldconfig
|
||||||
hide_output ct-ng build
|
hide_output ct-ng build
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf build
|
rm -rf build
|
||||||
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
cp ../aarch64-linux-gnu.config .config
|
|
||||||
ct-ng oldconfig
|
|
||||||
hide_output ct-ng build
|
|
||||||
cd ..
|
|
||||||
rm -rf build
|
|
|
@ -14,13 +14,14 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
swig \
|
swig \
|
||||||
libedit-dev \
|
libedit-dev \
|
||||||
libncurses5-dev
|
libncurses5-dev \
|
||||||
|
patch
|
||||||
|
|
||||||
RUN curl -L https://cmake.org/files/v3.8/cmake-3.8.0-rc1-Linux-x86_64.tar.gz | \
|
RUN curl -L https://cmake.org/files/v3.8/cmake-3.8.0-rc1-Linux-x86_64.tar.gz | \
|
||||||
tar xzf - -C /usr/local --strip-components=1
|
tar xzf - -C /usr/local --strip-components=1
|
||||||
|
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
COPY shared.sh build-toolchain.sh /tmp/
|
COPY shared.sh build-toolchain.sh compiler-rt-dso-handle.patch /tmp/
|
||||||
RUN /tmp/build-toolchain.sh
|
RUN /tmp/build-toolchain.sh
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
@ -29,7 +30,7 @@ RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-ini
|
||||||
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
ENV \
|
ENV \
|
||||||
|
|
|
@ -9,26 +9,31 @@
|
||||||
# option. This file may not be copied, modified, or distributed
|
# option. This file may not be copied, modified, or distributed
|
||||||
# except according to those terms.
|
# except according to those terms.
|
||||||
|
|
||||||
|
# ignore-tidy-linelength
|
||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
source shared.sh
|
source shared.sh
|
||||||
|
|
||||||
# Download sources
|
# Download sources
|
||||||
SRCS=(
|
SRCS=(
|
||||||
"https://fuchsia.googlesource.com/magenta magenta ac69119"
|
"https://fuchsia.googlesource.com/magenta magenta d17073dc8de344ead3b65e8cc6a12280dec38c84"
|
||||||
"https://fuchsia.googlesource.com/third_party/llvm llvm 5463083"
|
"https://llvm.googlesource.com/llvm llvm 3f58a16d8eec385e2b3ebdfbb84ff9d3bf27e025"
|
||||||
"https://fuchsia.googlesource.com/third_party/clang llvm/tools/clang 4ff7b4b"
|
"https://llvm.googlesource.com/clang llvm/tools/clang 727ea63e6e82677f6e10e05e08bc7d6bdbae3111"
|
||||||
"https://fuchsia.googlesource.com/third_party/lld llvm/tools/lld fd465a3"
|
"https://llvm.googlesource.com/lld llvm/tools/lld a31286c1366e5e89b8872803fded13805a1a084b"
|
||||||
"https://fuchsia.googlesource.com/third_party/lldb llvm/tools/lldb 6bb11f8"
|
"https://llvm.googlesource.com/lldb llvm/tools/lldb 0b2384abec4cb99ad66687712e07dee4dd9d187e"
|
||||||
"https://fuchsia.googlesource.com/third_party/compiler-rt llvm/runtimes/compiler-rt 52d4ecc"
|
"https://llvm.googlesource.com/compiler-rt llvm/runtimes/compiler-rt 9093a35c599fe41278606a20b51095ea8bd5a081"
|
||||||
"https://fuchsia.googlesource.com/third_party/libcxx llvm/runtimes/libcxx e891cc8"
|
"https://llvm.googlesource.com/libcxx llvm/runtimes/libcxx 607e0c71ec4f7fd377ad3f6c47b08dbe89f66eaa"
|
||||||
"https://fuchsia.googlesource.com/third_party/libcxxabi llvm/runtimes/libcxxabi f0f0257"
|
"https://llvm.googlesource.com/libcxxabi llvm/runtimes/libcxxabi 0a3a1a8a5ca5ef69e0f6b7d5b9d13e63e6fd2c19"
|
||||||
"https://fuchsia.googlesource.com/third_party/libunwind llvm/runtimes/libunwind 50bddc1"
|
"https://llvm.googlesource.com/libunwind llvm/runtimes/libunwind e128003563d99d9ee62247c4cee40f07d21c03e3"
|
||||||
)
|
)
|
||||||
|
|
||||||
fetch() {
|
fetch() {
|
||||||
mkdir -p $2
|
mkdir -p $2
|
||||||
pushd $2 > /dev/null
|
pushd $2 > /dev/null
|
||||||
curl -sL $1/+archive/$3.tar.gz | tar xzf -
|
git init
|
||||||
|
git remote add origin $1
|
||||||
|
git fetch --depth=1 origin $3
|
||||||
|
git reset --hard FETCH_HEAD
|
||||||
popd > /dev/null
|
popd > /dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,6 +41,11 @@ for i in "${SRCS[@]}"; do
|
||||||
fetch $i
|
fetch $i
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Remove this once https://reviews.llvm.org/D28791 is resolved
|
||||||
|
cd llvm/runtimes/compiler-rt
|
||||||
|
patch -Np1 < /tmp/compiler-rt-dso-handle.patch
|
||||||
|
cd ../../..
|
||||||
|
|
||||||
# Build toolchain
|
# Build toolchain
|
||||||
cd llvm
|
cd llvm
|
||||||
mkdir build
|
mkdir build
|
||||||
|
|
41
src/ci/docker/dist-fuchsia/compiler-rt-dso-handle.patch
Normal file
41
src/ci/docker/dist-fuchsia/compiler-rt-dso-handle.patch
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt
|
||||||
|
index fc4384af2..b442264c0 100644
|
||||||
|
--- a/lib/builtins/CMakeLists.txt
|
||||||
|
+++ b/lib/builtins/CMakeLists.txt
|
||||||
|
@@ -194,6 +194,12 @@ if(APPLE)
|
||||||
|
atomic_thread_fence.c)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
+if(FUCHSIA)
|
||||||
|
+ set(GENERIC_SOURCES
|
||||||
|
+ ${GENERIC_SOURCES}
|
||||||
|
+ dso_handle.c)
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
if(NOT WIN32 OR MINGW)
|
||||||
|
set(GENERIC_SOURCES
|
||||||
|
${GENERIC_SOURCES}
|
||||||
|
diff --git a/lib/builtins/dso_handle.c b/lib/builtins/dso_handle.c
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..7766cd0aa
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/lib/builtins/dso_handle.c
|
||||||
|
@@ -0,0 +1,18 @@
|
||||||
|
+/* ===-- dso_handle.c - Provide __dso_handle -------------------------------===
|
||||||
|
+ *
|
||||||
|
+ * The LLVM Compiler Infrastructure
|
||||||
|
+ *
|
||||||
|
+ * This file is dual licensed under the MIT and the University of Illinois Open
|
||||||
|
+ * Source Licenses. See LICENSE.TXT for details.
|
||||||
|
+ *
|
||||||
|
+ * ===----------------------------------------------------------------------===
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+/* __dso_handle symbol is mandated by C++ ABI with a value which is an address
|
||||||
|
+ * in one of the object's segments, and as such this symbol has to be included
|
||||||
|
+ * statically and cannot be a part of a shared library. Traditionally, it has
|
||||||
|
+ * been defined in crtbegin.o but there's no principled reason for it to be
|
||||||
|
+ * there. We defined this symbol in the builtin library which is built as a
|
||||||
|
+ * static library and always included in the final link.
|
||||||
|
+ */
|
||||||
|
+__attribute__((visibility("hidden"))) void *const __dso_handle;
|
|
@ -26,7 +26,7 @@ RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-ini
|
||||||
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
ENV RUST_CONFIGURE_ARGS \
|
ENV RUST_CONFIGURE_ARGS \
|
||||||
|
|
|
@ -15,11 +15,14 @@ set -ex
|
||||||
export CFLAGS="-fPIC -Wa,-mrelax-relocations=no"
|
export CFLAGS="-fPIC -Wa,-mrelax-relocations=no"
|
||||||
export CXXFLAGS="-Wa,-mrelax-relocations=no"
|
export CXXFLAGS="-Wa,-mrelax-relocations=no"
|
||||||
|
|
||||||
MUSL=musl-1.1.14
|
MUSL=musl-1.1.16
|
||||||
curl https://www.musl-libc.org/releases/$MUSL.tar.gz | tar xzf -
|
curl https://www.musl-libc.org/releases/$MUSL.tar.gz | tar xzf -
|
||||||
cd $MUSL
|
cd $MUSL
|
||||||
CFLAGS="$CFLAGS -m32" ./configure --prefix=/musl-i686 --disable-shared --target=i686
|
CC=gcc \
|
||||||
make -j10
|
CFLAGS="$CFLAGS -m32" \
|
||||||
|
./configure --prefix=/musl-i686 --disable-shared \
|
||||||
|
--target=i686
|
||||||
|
make AR=ar RANLIB=ranlib -j10
|
||||||
make install
|
make install
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
||||||
COPY build-toolchain.sh /tmp/
|
COPY build-toolchain.sh /tmp/
|
||||||
RUN /tmp/build-toolchain.sh x86_64
|
|
||||||
RUN /tmp/build-toolchain.sh i686
|
RUN /tmp/build-toolchain.sh i686
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
@ -26,19 +25,15 @@ RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-ini
|
||||||
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
ENV \
|
ENV \
|
||||||
AR_x86_64_unknown_freebsd=x86_64-unknown-freebsd10-ar \
|
|
||||||
CC_x86_64_unknown_freebsd=x86_64-unknown-freebsd10-gcc \
|
|
||||||
CXX_x86_64_unknown_freebsd=x86_64-unknown-freebsd10-g++ \
|
|
||||||
AR_i686_unknown_freebsd=i686-unknown-freebsd10-ar \
|
AR_i686_unknown_freebsd=i686-unknown-freebsd10-ar \
|
||||||
CC_i686_unknown_freebsd=i686-unknown-freebsd10-gcc \
|
CC_i686_unknown_freebsd=i686-unknown-freebsd10-gcc \
|
||||||
CXX_i686_unknown_freebsd=i686-unknown-freebsd10-g++
|
CXX_i686_unknown_freebsd=i686-unknown-freebsd10-g++
|
||||||
|
|
||||||
ENV HOSTS=x86_64-unknown-freebsd
|
ENV HOSTS=i686-unknown-freebsd
|
||||||
ENV HOSTS=$HOSTS,i686-unknown-freebsd
|
|
||||||
|
|
||||||
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
||||||
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
|
@ -2,10 +2,17 @@ FROM centos:5
|
||||||
|
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
|
|
||||||
|
# Centos 5 is EOL and is no longer available from the usual mirrors, so switch
|
||||||
|
# to http://vault.centos.org/
|
||||||
|
RUN sed -i 's/enabled=1/enabled=0/' /etc/yum/pluginconf.d/fastestmirror.conf
|
||||||
|
RUN sed -i 's/mirrorlist/#mirrorlist/' /etc/yum.repos.d/*.repo
|
||||||
|
RUN sed -i 's/#\(baseurl.*\)mirror.centos.org/\1107.158.252.35/' /etc/yum.repos.d/*.repo
|
||||||
|
|
||||||
RUN yum upgrade -y && yum install -y \
|
RUN yum upgrade -y && yum install -y \
|
||||||
curl \
|
curl \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
gcc \
|
gcc \
|
||||||
|
gcc-c++ \
|
||||||
make \
|
make \
|
||||||
glibc-devel \
|
glibc-devel \
|
||||||
perl \
|
perl \
|
||||||
|
@ -75,15 +82,20 @@ RUN curl -Lo /rustroot/dumb-init \
|
||||||
ENTRYPOINT ["/rustroot/dumb-init", "--"]
|
ENTRYPOINT ["/rustroot/dumb-init", "--"]
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
ENV HOSTS=i686-unknown-linux-gnu
|
ENV HOSTS=i686-unknown-linux-gnu
|
||||||
ENV HOSTS=$HOSTS,x86_64-unknown-linux-gnu
|
|
||||||
|
|
||||||
ENV RUST_CONFIGURE_ARGS \
|
ENV RUST_CONFIGURE_ARGS \
|
||||||
--host=$HOSTS \
|
--host=$HOSTS \
|
||||||
--enable-extended \
|
--enable-extended \
|
||||||
--enable-sanitizers
|
--enable-sanitizers
|
||||||
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
||||||
|
|
||||||
|
# This is the only builder which will create source tarballs
|
||||||
ENV DIST_SRC 1
|
ENV DIST_SRC 1
|
||||||
|
|
||||||
|
# When we build cargo in this container, we don't want it to use the system
|
||||||
|
# libcurl, instead it should compile its own.
|
||||||
|
ENV LIBCURL_NO_PKG_CONFIG 1
|
|
@ -13,12 +13,14 @@ set -ex
|
||||||
|
|
||||||
source shared.sh
|
source shared.sh
|
||||||
|
|
||||||
curl https://ftp.gnu.org/gnu/gcc/gcc-4.7.4/gcc-4.7.4.tar.bz2 | tar xjf -
|
GCC=4.8.5
|
||||||
cd gcc-4.7.4
|
|
||||||
|
curl https://ftp.gnu.org/gnu/gcc/gcc-$GCC/gcc-$GCC.tar.bz2 | tar xjf -
|
||||||
|
cd gcc-$GCC
|
||||||
./contrib/download_prerequisites
|
./contrib/download_prerequisites
|
||||||
mkdir ../gcc-build
|
mkdir ../gcc-build
|
||||||
cd ../gcc-build
|
cd ../gcc-build
|
||||||
hide_output ../gcc-4.7.4/configure \
|
hide_output ../gcc-$GCC/configure \
|
||||||
--prefix=/rustroot \
|
--prefix=/rustroot \
|
||||||
--enable-languages=c,c++
|
--enable-languages=c,c++
|
||||||
hide_output make -j10
|
hide_output make -j10
|
||||||
|
@ -27,5 +29,5 @@ ln -nsf gcc /rustroot/bin/cc
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf gcc-build
|
rm -rf gcc-build
|
||||||
rm -rf gcc-4.7.4
|
rm -rf gcc-$GCC
|
||||||
yum erase -y gcc binutils
|
yum erase -y gcc gcc-c++ binutils
|
|
@ -13,12 +13,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
gdb \
|
gdb \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
g++-mips-linux-gnu \
|
g++-mips-linux-gnu \
|
||||||
g++-mipsel-linux-gnu \
|
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
@ -27,7 +26,6 @@ RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-ini
|
||||||
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
ENV HOSTS=mips-unknown-linux-gnu
|
ENV HOSTS=mips-unknown-linux-gnu
|
||||||
ENV HOSTS=$HOSTS,mipsel-unknown-linux-gnu
|
|
||||||
|
|
||||||
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
||||||
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
||||||
|
|
|
@ -13,12 +13,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
gdb \
|
gdb \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
g++-mips64-linux-gnuabi64 \
|
g++-mips64-linux-gnuabi64 \
|
||||||
g++-mips64el-linux-gnuabi64 \
|
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
@ -27,7 +26,6 @@ RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-ini
|
||||||
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
ENV HOSTS=mips64-unknown-linux-gnuabi64
|
ENV HOSTS=mips64-unknown-linux-gnuabi64
|
||||||
ENV HOSTS=$HOSTS,mips64el-unknown-linux-gnuabi64
|
|
||||||
|
|
||||||
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
||||||
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
||||||
|
|
31
src/ci/docker/dist-mips64el-linux/Dockerfile
Normal file
31
src/ci/docker/dist-mips64el-linux/Dockerfile
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
FROM ubuntu:16.04
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
g++ \
|
||||||
|
make \
|
||||||
|
file \
|
||||||
|
curl \
|
||||||
|
ca-certificates \
|
||||||
|
python2.7 \
|
||||||
|
git \
|
||||||
|
cmake \
|
||||||
|
sudo \
|
||||||
|
gdb \
|
||||||
|
xz-utils \
|
||||||
|
g++-mips64el-linux-gnuabi64 \
|
||||||
|
libssl-dev \
|
||||||
|
pkg-config
|
||||||
|
|
||||||
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
dpkg -i dumb-init_*.deb && \
|
||||||
|
rm dumb-init_*.deb
|
||||||
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
|
ENV HOSTS=mips64el-unknown-linux-gnuabi64
|
||||||
|
|
||||||
|
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
||||||
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
31
src/ci/docker/dist-mipsel-linux/Dockerfile
Normal file
31
src/ci/docker/dist-mipsel-linux/Dockerfile
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
FROM ubuntu:16.04
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
g++ \
|
||||||
|
make \
|
||||||
|
file \
|
||||||
|
curl \
|
||||||
|
ca-certificates \
|
||||||
|
python2.7 \
|
||||||
|
git \
|
||||||
|
cmake \
|
||||||
|
sudo \
|
||||||
|
gdb \
|
||||||
|
xz-utils \
|
||||||
|
g++-mipsel-linux-gnu \
|
||||||
|
libssl-dev \
|
||||||
|
pkg-config
|
||||||
|
|
||||||
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
dpkg -i dumb-init_*.deb && \
|
||||||
|
rm dumb-init_*.deb
|
||||||
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
|
ENV HOSTS=mipsel-unknown-linux-gnu
|
||||||
|
|
||||||
|
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
||||||
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
|
@ -27,10 +27,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
|
||||||
chmod +x /usr/local/bin/sccache
|
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
dpkg -i dumb-init_*.deb && \
|
dpkg -i dumb-init_*.deb && \
|
||||||
rm dumb-init_*.deb
|
rm dumb-init_*.deb
|
||||||
|
@ -66,6 +62,10 @@ RUN ./build-powerpc-toolchain.sh
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
ENV PATH=$PATH:/x-tools/powerpc-unknown-linux-gnu/bin
|
ENV PATH=$PATH:/x-tools/powerpc-unknown-linux-gnu/bin
|
||||||
|
|
||||||
ENV \
|
ENV \
|
||||||
|
|
|
@ -101,8 +101,8 @@ CT_ARCH_SUPPORTS_WITH_FLOAT=y
|
||||||
CT_ARCH_DEFAULT_BE=y
|
CT_ARCH_DEFAULT_BE=y
|
||||||
CT_ARCH_DEFAULT_32=y
|
CT_ARCH_DEFAULT_32=y
|
||||||
CT_ARCH_ABI=""
|
CT_ARCH_ABI=""
|
||||||
CT_ARCH_CPU="power4"
|
CT_ARCH_CPU="powerpc"
|
||||||
CT_ARCH_TUNE="power6"
|
CT_ARCH_TUNE=""
|
||||||
CT_ARCH_BE=y
|
CT_ARCH_BE=y
|
||||||
# CT_ARCH_LE is not set
|
# CT_ARCH_LE is not set
|
||||||
CT_ARCH_32=y
|
CT_ARCH_32=y
|
||||||
|
@ -391,8 +391,8 @@ CT_CC_GCC_HAS_LIBSANITIZER=y
|
||||||
CT_CC_GCC_VERSION="4.9.3"
|
CT_CC_GCC_VERSION="4.9.3"
|
||||||
# CT_CC_LANG_FORTRAN is not set
|
# CT_CC_LANG_FORTRAN is not set
|
||||||
CT_CC_GCC_ENABLE_CXX_FLAGS=""
|
CT_CC_GCC_ENABLE_CXX_FLAGS=""
|
||||||
CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="--with-cpu-32=power4 --with-cpu=default32"
|
CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY=""
|
||||||
CT_CC_GCC_EXTRA_CONFIG_ARRAY="--with-cpu-32=power4 --with-cpu=default32"
|
CT_CC_GCC_EXTRA_CONFIG_ARRAY=""
|
||||||
CT_CC_GCC_EXTRA_ENV_ARRAY=""
|
CT_CC_GCC_EXTRA_ENV_ARRAY=""
|
||||||
CT_CC_GCC_STATIC_LIBSTDCXX=y
|
CT_CC_GCC_STATIC_LIBSTDCXX=y
|
||||||
# CT_CC_GCC_SYSTEM_ZLIB is not set
|
# CT_CC_GCC_SYSTEM_ZLIB is not set
|
||||||
|
|
|
@ -25,11 +25,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
wget \
|
wget \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
|
||||||
chmod +x /usr/local/bin/sccache
|
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
dpkg -i dumb-init_*.deb && \
|
dpkg -i dumb-init_*.deb && \
|
||||||
|
@ -61,27 +57,23 @@ USER rustbuild
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
|
|
||||||
COPY patches/ /tmp/patches/
|
COPY patches/ /tmp/patches/
|
||||||
COPY powerpc64-linux-gnu.config build-powerpc64-toolchain.sh /tmp/
|
COPY shared.sh powerpc64-linux-gnu.config build-powerpc64-toolchain.sh /tmp/
|
||||||
RUN ./build-powerpc64-toolchain.sh
|
RUN ./build-powerpc64-toolchain.sh
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
RUN apt-get install -y --no-install-recommends rpm2cpio cpio
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
COPY build-powerpc64le-toolchain.sh /tmp/
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
RUN ./build-powerpc64le-toolchain.sh
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
ENV PATH=$PATH:/x-tools/powerpc64-unknown-linux-gnu/bin
|
ENV PATH=$PATH:/x-tools/powerpc64-unknown-linux-gnu/bin
|
||||||
|
|
||||||
ENV \
|
ENV \
|
||||||
AR_powerpc64_unknown_linux_gnu=powerpc64-unknown-linux-gnu-ar \
|
AR_powerpc64_unknown_linux_gnu=powerpc64-unknown-linux-gnu-ar \
|
||||||
CC_powerpc64_unknown_linux_gnu=powerpc64-unknown-linux-gnu-gcc \
|
CC_powerpc64_unknown_linux_gnu=powerpc64-unknown-linux-gnu-gcc \
|
||||||
CXX_powerpc64_unknown_linux_gnu=powerpc64-unknown-linux-gnu-g++ \
|
CXX_powerpc64_unknown_linux_gnu=powerpc64-unknown-linux-gnu-g++
|
||||||
AR_powerpc64le_unknown_linux_gnu=powerpc64le-linux-gnu-ar \
|
|
||||||
CC_powerpc64le_unknown_linux_gnu=powerpc64le-linux-gnu-gcc \
|
|
||||||
CXX_powerpc64le_unknown_linux_gnu=powerpc64le-linux-gnu-g++
|
|
||||||
|
|
||||||
ENV HOSTS=powerpc64-unknown-linux-gnu
|
ENV HOSTS=powerpc64-unknown-linux-gnu
|
||||||
ENV HOSTS=$HOSTS,powerpc64le-unknown-linux-gnu
|
|
||||||
|
|
||||||
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
||||||
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
||||||
|
|
|
@ -11,22 +11,7 @@
|
||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
hide_output() {
|
source shared.sh
|
||||||
set +x
|
|
||||||
on_err="
|
|
||||||
echo ERROR: An error was encountered with the build.
|
|
||||||
cat /tmp/build.log
|
|
||||||
exit 1
|
|
||||||
"
|
|
||||||
trap "$on_err" ERR
|
|
||||||
bash -c "while true; do sleep 30; echo \$(date) - building ...; done" &
|
|
||||||
PING_LOOP_PID=$!
|
|
||||||
$@ &> /tmp/build.log
|
|
||||||
rm /tmp/build.log
|
|
||||||
trap - ERR
|
|
||||||
kill $PING_LOOP_PID
|
|
||||||
set -x
|
|
||||||
}
|
|
||||||
|
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
|
|
25
src/ci/docker/dist-powerpc64-linux/shared.sh
Normal file
25
src/ci/docker/dist-powerpc64-linux/shared.sh
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
hide_output() {
|
||||||
|
set +x
|
||||||
|
on_err="
|
||||||
|
echo ERROR: An error was encountered with the build.
|
||||||
|
cat /tmp/build.log
|
||||||
|
exit 1
|
||||||
|
"
|
||||||
|
trap "$on_err" ERR
|
||||||
|
bash -c "while true; do sleep 30; echo \$(date) - building ...; done" &
|
||||||
|
PING_LOOP_PID=$!
|
||||||
|
$@ &> /tmp/build.log
|
||||||
|
trap - ERR
|
||||||
|
kill $PING_LOOP_PID
|
||||||
|
set -x
|
||||||
|
}
|
77
src/ci/docker/dist-powerpc64le-linux/Dockerfile
Normal file
77
src/ci/docker/dist-powerpc64le-linux/Dockerfile
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
FROM ubuntu:16.04
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
automake \
|
||||||
|
bison \
|
||||||
|
bzip2 \
|
||||||
|
ca-certificates \
|
||||||
|
cmake \
|
||||||
|
curl \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gawk \
|
||||||
|
gdb \
|
||||||
|
git \
|
||||||
|
gperf \
|
||||||
|
help2man \
|
||||||
|
libncurses-dev \
|
||||||
|
libtool-bin \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
python2.7 \
|
||||||
|
sudo \
|
||||||
|
texinfo \
|
||||||
|
wget \
|
||||||
|
xz-utils \
|
||||||
|
libssl-dev \
|
||||||
|
pkg-config
|
||||||
|
|
||||||
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
dpkg -i dumb-init_*.deb && \
|
||||||
|
rm dumb-init_*.deb
|
||||||
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
|
# Ubuntu 16.04 (this contianer) ships with make 4, but something in the
|
||||||
|
# toolchains we build below chokes on that, so go back to make 3
|
||||||
|
RUN curl https://ftp.gnu.org/gnu/make/make-3.81.tar.gz | tar xzf - && \
|
||||||
|
cd make-3.81 && \
|
||||||
|
./configure --prefix=/usr && \
|
||||||
|
make && \
|
||||||
|
make install && \
|
||||||
|
cd .. && \
|
||||||
|
rm -rf make-3.81
|
||||||
|
|
||||||
|
RUN curl http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.22.0.tar.bz2 | \
|
||||||
|
tar xjf - && \
|
||||||
|
cd crosstool-ng && \
|
||||||
|
./configure --prefix=/usr/local && \
|
||||||
|
make -j$(nproc) && \
|
||||||
|
make install && \
|
||||||
|
cd .. && \
|
||||||
|
rm -rf crosstool-ng
|
||||||
|
|
||||||
|
RUN groupadd -r rustbuild && useradd -m -r -g rustbuild rustbuild
|
||||||
|
RUN mkdir /x-tools && chown rustbuild:rustbuild /x-tools
|
||||||
|
USER rustbuild
|
||||||
|
WORKDIR /tmp
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
RUN apt-get install -y --no-install-recommends rpm2cpio cpio
|
||||||
|
COPY shared.sh build-powerpc64le-toolchain.sh /tmp/
|
||||||
|
RUN ./build-powerpc64le-toolchain.sh
|
||||||
|
|
||||||
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
|
ENV \
|
||||||
|
AR_powerpc64le_unknown_linux_gnu=powerpc64le-linux-gnu-ar \
|
||||||
|
CC_powerpc64le_unknown_linux_gnu=powerpc64le-linux-gnu-gcc \
|
||||||
|
CXX_powerpc64le_unknown_linux_gnu=powerpc64le-linux-gnu-g++
|
||||||
|
|
||||||
|
ENV HOSTS=powerpc64le-unknown-linux-gnu
|
||||||
|
|
||||||
|
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
||||||
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
|
@ -11,6 +11,8 @@
|
||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
|
source shared.sh
|
||||||
|
|
||||||
BINUTILS=2.25.1
|
BINUTILS=2.25.1
|
||||||
GCC=5.3.0
|
GCC=5.3.0
|
||||||
TARGET=powerpc64le-linux-gnu
|
TARGET=powerpc64le-linux-gnu
|
||||||
|
@ -40,9 +42,9 @@ pushd binutils-$TARGET
|
||||||
curl https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS.tar.bz2 | tar xjf -
|
curl https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS.tar.bz2 | tar xjf -
|
||||||
mkdir binutils-build
|
mkdir binutils-build
|
||||||
cd binutils-build
|
cd binutils-build
|
||||||
../binutils-$BINUTILS/configure --target=$TARGET --with-sysroot=$SYSROOT
|
hide_output ../binutils-$BINUTILS/configure --target=$TARGET --with-sysroot=$SYSROOT
|
||||||
make -j10
|
hide_output make -j10
|
||||||
make install
|
hide_output make install
|
||||||
popd
|
popd
|
||||||
rm -rf binutils-$TARGET
|
rm -rf binutils-$TARGET
|
||||||
|
|
||||||
|
@ -51,11 +53,11 @@ mkdir gcc-$TARGET
|
||||||
pushd gcc-$TARGET
|
pushd gcc-$TARGET
|
||||||
curl https://ftp.gnu.org/gnu/gcc/gcc-$GCC/gcc-$GCC.tar.bz2 | tar xjf -
|
curl https://ftp.gnu.org/gnu/gcc/gcc-$GCC/gcc-$GCC.tar.bz2 | tar xjf -
|
||||||
cd gcc-$GCC
|
cd gcc-$GCC
|
||||||
./contrib/download_prerequisites
|
hide_output ./contrib/download_prerequisites
|
||||||
|
|
||||||
mkdir ../gcc-build
|
mkdir ../gcc-build
|
||||||
cd ../gcc-build
|
cd ../gcc-build
|
||||||
../gcc-$GCC/configure \
|
hide_output ../gcc-$GCC/configure \
|
||||||
--enable-languages=c,c++ \
|
--enable-languages=c,c++ \
|
||||||
--target=$TARGET \
|
--target=$TARGET \
|
||||||
--with-cpu=power8 \
|
--with-cpu=power8 \
|
||||||
|
@ -72,8 +74,8 @@ cd ../gcc-build
|
||||||
--disable-libsanitizer \
|
--disable-libsanitizer \
|
||||||
--disable-libquadmath-support \
|
--disable-libquadmath-support \
|
||||||
--disable-lto
|
--disable-lto
|
||||||
make -j10
|
hide_output hide_output make -j10
|
||||||
make install
|
hide_output make install
|
||||||
|
|
||||||
popd
|
popd
|
||||||
rm -rf gcc-$TARGET
|
rm -rf gcc-$TARGET
|
25
src/ci/docker/dist-powerpc64le-linux/shared.sh
Normal file
25
src/ci/docker/dist-powerpc64le-linux/shared.sh
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
hide_output() {
|
||||||
|
set +x
|
||||||
|
on_err="
|
||||||
|
echo ERROR: An error was encountered with the build.
|
||||||
|
cat /tmp/build.log
|
||||||
|
exit 1
|
||||||
|
"
|
||||||
|
trap "$on_err" ERR
|
||||||
|
bash -c "while true; do sleep 30; echo \$(date) - building ...; done" &
|
||||||
|
PING_LOOP_PID=$!
|
||||||
|
$@ &> /tmp/build.log
|
||||||
|
trap - ERR
|
||||||
|
kill $PING_LOOP_PID
|
||||||
|
set -x
|
||||||
|
}
|
|
@ -1,120 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# Copyright 2016 The Rust Project Developers. See the COPYRIGHT
|
|
||||||
# file at the top-level directory of this distribution and at
|
|
||||||
# http://rust-lang.org/COPYRIGHT.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
|
||||||
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
|
||||||
# option. This file may not be copied, modified, or distributed
|
|
||||||
# except according to those terms.
|
|
||||||
|
|
||||||
# ignore-tidy-linelength
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
BINUTILS=2.25.1
|
|
||||||
GCC=5.3.0
|
|
||||||
|
|
||||||
# First up, build binutils
|
|
||||||
mkdir binutils
|
|
||||||
cd binutils
|
|
||||||
curl https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS.tar.bz2 | tar xjf -
|
|
||||||
mkdir binutils-build
|
|
||||||
cd binutils-build
|
|
||||||
../binutils-$BINUTILS/configure \
|
|
||||||
--target=x86_64-unknown-netbsd
|
|
||||||
make -j10
|
|
||||||
make install
|
|
||||||
cd ../..
|
|
||||||
rm -rf binutils
|
|
||||||
|
|
||||||
# Next, download the NetBSD libc and relevant header files
|
|
||||||
mkdir netbsd
|
|
||||||
# originally from:
|
|
||||||
# https://ftp.netbsd.org/pub/NetBSD/NetBSD-7.0/amd64/binary/sets/base.tgz
|
|
||||||
curl https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-01-16-netbsd-base.tgz | \
|
|
||||||
tar xzf - -C netbsd ./usr/include ./usr/lib ./lib
|
|
||||||
# originally from:
|
|
||||||
# https://ftp.netbsd.org/pub/NetBSD/NetBSD-7.0/amd64/binary/sets/comp.tgz
|
|
||||||
curl https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-01-16-netbsd-comp.tgz | \
|
|
||||||
tar xzf - -C netbsd ./usr/include ./usr/lib
|
|
||||||
|
|
||||||
dst=/usr/local/x86_64-unknown-netbsd
|
|
||||||
cp -r netbsd/usr/include $dst
|
|
||||||
cp netbsd/usr/lib/crt0.o $dst/lib
|
|
||||||
cp netbsd/usr/lib/crti.o $dst/lib
|
|
||||||
cp netbsd/usr/lib/crtn.o $dst/lib
|
|
||||||
cp netbsd/usr/lib/crtbeginS.o $dst/lib
|
|
||||||
cp netbsd/usr/lib/crtendS.o $dst/lib
|
|
||||||
cp netbsd/usr/lib/crtbegin.o $dst/lib
|
|
||||||
cp netbsd/usr/lib/crtend.o $dst/lib
|
|
||||||
cp netbsd/usr/lib/gcrt0.o $dst/lib
|
|
||||||
cp netbsd/usr/lib/libc.a $dst/lib
|
|
||||||
cp netbsd/usr/lib/libc_p.a $dst/lib
|
|
||||||
cp netbsd/usr/lib/libc_pic.a $dst/lib
|
|
||||||
cp netbsd/lib/libc.so.12.193.1 $dst/lib
|
|
||||||
cp netbsd/lib/libutil.so.7.21 $dst/lib
|
|
||||||
cp netbsd/usr/lib/libm.a $dst/lib
|
|
||||||
cp netbsd/usr/lib/libm_p.a $dst/lib
|
|
||||||
cp netbsd/usr/lib/libm_pic.a $dst/lib
|
|
||||||
cp netbsd/lib/libm.so.0.11 $dst/lib
|
|
||||||
cp netbsd/usr/lib/librt.so.1.1 $dst/lib
|
|
||||||
cp netbsd/usr/lib/libpthread.a $dst/lib
|
|
||||||
cp netbsd/usr/lib/libpthread_p.a $dst/lib
|
|
||||||
cp netbsd/usr/lib/libpthread_pic.a $dst/lib
|
|
||||||
cp netbsd/usr/lib/libpthread.so.1.2 $dst/lib
|
|
||||||
|
|
||||||
ln -s libc.so.12.193.1 $dst/lib/libc.so
|
|
||||||
ln -s libc.so.12.193.1 $dst/lib/libc.so.12
|
|
||||||
ln -s libm.so.0.11 $dst/lib/libm.so
|
|
||||||
ln -s libm.so.0.11 $dst/lib/libm.so.0
|
|
||||||
ln -s libutil.so.7.21 $dst/lib/libutil.so
|
|
||||||
ln -s libutil.so.7.21 $dst/lib/libutil.so.7
|
|
||||||
ln -s libpthread.so.1.2 $dst/lib/libpthread.so
|
|
||||||
ln -s libpthread.so.1.2 $dst/lib/libpthread.so.1
|
|
||||||
ln -s librt.so.1.1 $dst/lib/librt.so
|
|
||||||
|
|
||||||
rm -rf netbsd
|
|
||||||
|
|
||||||
# Finally, download and build gcc to target NetBSD
|
|
||||||
mkdir gcc
|
|
||||||
cd gcc
|
|
||||||
curl https://ftp.gnu.org/gnu/gcc/gcc-$GCC/gcc-$GCC.tar.bz2 | tar xjf -
|
|
||||||
cd gcc-$GCC
|
|
||||||
./contrib/download_prerequisites
|
|
||||||
|
|
||||||
# Originally from
|
|
||||||
# ftp://ftp.netbsd.org/pub/pkgsrc/pkgsrc-2016Q4/pkgsrc/lang/gcc5/patches/patch-libstdc%2B%2B-v3_config_os_bsd_netbsd_ctype__base.h
|
|
||||||
PATCHES="https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-01-13-netbsd-patch1.patch"
|
|
||||||
|
|
||||||
# Originally from
|
|
||||||
# ftp://ftp.netbsd.org/pub/pkgsrc/pkgsrc-2016Q4/pkgsrc/lang/gcc5/patches/patch-libstdc%2B%2B-v3_config_os_bsd_netbsd_ctype__configure__char.cc
|
|
||||||
PATCHES="$PATCHES https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-01-13-netbsd-patch2.patch"
|
|
||||||
|
|
||||||
for patch in $PATCHES; do
|
|
||||||
curl $patch | patch -Np0
|
|
||||||
done
|
|
||||||
|
|
||||||
mkdir ../gcc-build
|
|
||||||
cd ../gcc-build
|
|
||||||
../gcc-$GCC/configure \
|
|
||||||
--enable-languages=c,c++ \
|
|
||||||
--target=x86_64-unknown-netbsd \
|
|
||||||
--disable-libcilkrts \
|
|
||||||
--disable-multilib \
|
|
||||||
--disable-nls \
|
|
||||||
--disable-libgomp \
|
|
||||||
--disable-libquadmath \
|
|
||||||
--disable-libssp \
|
|
||||||
--disable-libvtv \
|
|
||||||
--disable-libcilkrt \
|
|
||||||
--disable-libada \
|
|
||||||
--disable-libsanitizer \
|
|
||||||
--disable-libquadmath-support \
|
|
||||||
--disable-lto
|
|
||||||
make -j10
|
|
||||||
make install
|
|
||||||
|
|
||||||
cd ../..
|
|
||||||
rm -rf gcc
|
|
|
@ -27,10 +27,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
|
||||||
chmod +x /usr/local/bin/sccache
|
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
dpkg -i dumb-init_*.deb && \
|
dpkg -i dumb-init_*.deb && \
|
||||||
rm dumb-init_*.deb
|
rm dumb-init_*.deb
|
||||||
|
@ -66,21 +62,18 @@ RUN ./build-s390x-toolchain.sh
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
COPY build-netbsd-toolchain.sh /tmp/
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
RUN ./build-netbsd-toolchain.sh
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
ENV PATH=$PATH:/x-tools/s390x-ibm-linux-gnu/bin
|
ENV PATH=$PATH:/x-tools/s390x-ibm-linux-gnu/bin
|
||||||
|
|
||||||
ENV \
|
ENV \
|
||||||
AR_x86_64_unknown_netbsd=x86_64-unknown-netbsd-ar \
|
|
||||||
CC_x86_64_unknown_netbsd=x86_64-unknown-netbsd-gcc \
|
|
||||||
CXX_x86_64_unknown_netbsd=x86_64-unknown-netbsd-g++ \
|
|
||||||
CC_s390x_unknown_linux_gnu=s390x-ibm-linux-gnu-gcc \
|
CC_s390x_unknown_linux_gnu=s390x-ibm-linux-gnu-gcc \
|
||||||
AR_s390x_unknown_linux_gnu=s390x-ibm-linux-gnu-ar \
|
AR_s390x_unknown_linux_gnu=s390x-ibm-linux-gnu-ar \
|
||||||
CXX_s390x_unknown_linux_gnu=s390x-ibm-linux-gnu-g++
|
CXX_s390x_unknown_linux_gnu=s390x-ibm-linux-gnu-g++
|
||||||
|
|
||||||
ENV HOSTS=x86_64-unknown-netbsd
|
ENV HOSTS=s390x-unknown-linux-gnu
|
||||||
ENV HOSTS=$HOSTS,s390x-unknown-linux-gnu
|
|
||||||
|
|
||||||
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
||||||
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
39
src/ci/docker/dist-x86_64-freebsd/Dockerfile
Normal file
39
src/ci/docker/dist-x86_64-freebsd/Dockerfile
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
FROM ubuntu:16.04
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
g++ \
|
||||||
|
make \
|
||||||
|
file \
|
||||||
|
curl \
|
||||||
|
ca-certificates \
|
||||||
|
python2.7 \
|
||||||
|
git \
|
||||||
|
cmake \
|
||||||
|
sudo \
|
||||||
|
bzip2 \
|
||||||
|
xz-utils \
|
||||||
|
wget \
|
||||||
|
libssl-dev \
|
||||||
|
pkg-config
|
||||||
|
|
||||||
|
COPY build-toolchain.sh /tmp/
|
||||||
|
RUN /tmp/build-toolchain.sh x86_64
|
||||||
|
|
||||||
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
dpkg -i dumb-init_*.deb && \
|
||||||
|
rm dumb-init_*.deb
|
||||||
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
|
ENV \
|
||||||
|
AR_x86_64_unknown_freebsd=x86_64-unknown-freebsd10-ar \
|
||||||
|
CC_x86_64_unknown_freebsd=x86_64-unknown-freebsd10-gcc \
|
||||||
|
CXX_x86_64_unknown_freebsd=x86_64-unknown-freebsd10-g++
|
||||||
|
|
||||||
|
ENV HOSTS=x86_64-unknown-freebsd
|
||||||
|
|
||||||
|
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
||||||
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
112
src/ci/docker/dist-x86_64-freebsd/build-toolchain.sh
Executable file
112
src/ci/docker/dist-x86_64-freebsd/build-toolchain.sh
Executable file
|
@ -0,0 +1,112 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2016 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
ARCH=$1
|
||||||
|
BINUTILS=2.25.1
|
||||||
|
GCC=5.3.0
|
||||||
|
|
||||||
|
hide_output() {
|
||||||
|
set +x
|
||||||
|
on_err="
|
||||||
|
echo ERROR: An error was encountered with the build.
|
||||||
|
cat /tmp/build.log
|
||||||
|
exit 1
|
||||||
|
"
|
||||||
|
trap "$on_err" ERR
|
||||||
|
bash -c "while true; do sleep 30; echo \$(date) - building ...; done" &
|
||||||
|
PING_LOOP_PID=$!
|
||||||
|
$@ &> /tmp/build.log
|
||||||
|
trap - ERR
|
||||||
|
kill $PING_LOOP_PID
|
||||||
|
set -x
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir binutils
|
||||||
|
cd binutils
|
||||||
|
|
||||||
|
# First up, build binutils
|
||||||
|
curl https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS.tar.bz2 | tar xjf -
|
||||||
|
mkdir binutils-build
|
||||||
|
cd binutils-build
|
||||||
|
hide_output ../binutils-$BINUTILS/configure \
|
||||||
|
--target=$ARCH-unknown-freebsd10
|
||||||
|
hide_output make -j10
|
||||||
|
hide_output make install
|
||||||
|
cd ../..
|
||||||
|
rm -rf binutils
|
||||||
|
|
||||||
|
# Next, download the FreeBSD libc and relevant header files
|
||||||
|
|
||||||
|
mkdir freebsd
|
||||||
|
case "$ARCH" in
|
||||||
|
x86_64)
|
||||||
|
URL=ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.2-RELEASE/base.txz
|
||||||
|
;;
|
||||||
|
i686)
|
||||||
|
URL=ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/10.2-RELEASE/base.txz
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
curl $URL | tar xJf - -C freebsd ./usr/include ./usr/lib ./lib
|
||||||
|
|
||||||
|
dst=/usr/local/$ARCH-unknown-freebsd10
|
||||||
|
|
||||||
|
cp -r freebsd/usr/include $dst/
|
||||||
|
cp freebsd/usr/lib/crt1.o $dst/lib
|
||||||
|
cp freebsd/usr/lib/Scrt1.o $dst/lib
|
||||||
|
cp freebsd/usr/lib/crti.o $dst/lib
|
||||||
|
cp freebsd/usr/lib/crtn.o $dst/lib
|
||||||
|
cp freebsd/usr/lib/libc.a $dst/lib
|
||||||
|
cp freebsd/usr/lib/libutil.a $dst/lib
|
||||||
|
cp freebsd/usr/lib/libutil_p.a $dst/lib
|
||||||
|
cp freebsd/usr/lib/libm.a $dst/lib
|
||||||
|
cp freebsd/usr/lib/librt.so.1 $dst/lib
|
||||||
|
cp freebsd/usr/lib/libexecinfo.so.1 $dst/lib
|
||||||
|
cp freebsd/lib/libc.so.7 $dst/lib
|
||||||
|
cp freebsd/lib/libm.so.5 $dst/lib
|
||||||
|
cp freebsd/lib/libutil.so.9 $dst/lib
|
||||||
|
cp freebsd/lib/libthr.so.3 $dst/lib/libpthread.so
|
||||||
|
|
||||||
|
ln -s libc.so.7 $dst/lib/libc.so
|
||||||
|
ln -s libm.so.5 $dst/lib/libm.so
|
||||||
|
ln -s librt.so.1 $dst/lib/librt.so
|
||||||
|
ln -s libutil.so.9 $dst/lib/libutil.so
|
||||||
|
ln -s libexecinfo.so.1 $dst/lib/libexecinfo.so
|
||||||
|
rm -rf freebsd
|
||||||
|
|
||||||
|
# Finally, download and build gcc to target FreeBSD
|
||||||
|
mkdir gcc
|
||||||
|
cd gcc
|
||||||
|
curl https://ftp.gnu.org/gnu/gcc/gcc-$GCC/gcc-$GCC.tar.bz2 | tar xjf -
|
||||||
|
cd gcc-$GCC
|
||||||
|
./contrib/download_prerequisites
|
||||||
|
|
||||||
|
mkdir ../gcc-build
|
||||||
|
cd ../gcc-build
|
||||||
|
hide_output ../gcc-$GCC/configure \
|
||||||
|
--enable-languages=c,c++ \
|
||||||
|
--target=$ARCH-unknown-freebsd10 \
|
||||||
|
--disable-multilib \
|
||||||
|
--disable-nls \
|
||||||
|
--disable-libgomp \
|
||||||
|
--disable-libquadmath \
|
||||||
|
--disable-libssp \
|
||||||
|
--disable-libvtv \
|
||||||
|
--disable-libcilkrts \
|
||||||
|
--disable-libada \
|
||||||
|
--disable-libsanitizer \
|
||||||
|
--disable-libquadmath-support \
|
||||||
|
--disable-lto
|
||||||
|
hide_output make -j10
|
||||||
|
hide_output make install
|
||||||
|
cd ../..
|
||||||
|
rm -rf gcc
|
101
src/ci/docker/dist-x86_64-linux/Dockerfile
Normal file
101
src/ci/docker/dist-x86_64-linux/Dockerfile
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
FROM centos:5
|
||||||
|
|
||||||
|
WORKDIR /build
|
||||||
|
|
||||||
|
# Centos 5 is EOL and is no longer available from the usual mirrors, so switch
|
||||||
|
# to http://vault.centos.org/
|
||||||
|
RUN sed -i 's/enabled=1/enabled=0/' /etc/yum/pluginconf.d/fastestmirror.conf
|
||||||
|
RUN sed -i 's/mirrorlist/#mirrorlist/' /etc/yum.repos.d/*.repo
|
||||||
|
RUN sed -i 's/#\(baseurl.*\)mirror.centos.org/\1107.158.252.35/' /etc/yum.repos.d/*.repo
|
||||||
|
|
||||||
|
RUN yum upgrade -y && yum install -y \
|
||||||
|
curl \
|
||||||
|
bzip2 \
|
||||||
|
gcc \
|
||||||
|
gcc-c++ \
|
||||||
|
make \
|
||||||
|
glibc-devel \
|
||||||
|
perl \
|
||||||
|
zlib-devel \
|
||||||
|
file \
|
||||||
|
xz \
|
||||||
|
which \
|
||||||
|
pkgconfig \
|
||||||
|
wget \
|
||||||
|
autoconf \
|
||||||
|
gettext
|
||||||
|
|
||||||
|
ENV PATH=/rustroot/bin:$PATH
|
||||||
|
ENV LD_LIBRARY_PATH=/rustroot/lib64:/rustroot/lib
|
||||||
|
ENV PKG_CONFIG_PATH=/rustroot/lib/pkgconfig
|
||||||
|
WORKDIR /tmp
|
||||||
|
COPY shared.sh build-binutils.sh /tmp/
|
||||||
|
|
||||||
|
# We need a build of openssl which supports SNI to download artifacts from
|
||||||
|
# static.rust-lang.org. This'll be used to link into libcurl below (and used
|
||||||
|
# later as well), so build a copy of OpenSSL with dynamic libraries into our
|
||||||
|
# generic root.
|
||||||
|
COPY build-openssl.sh /tmp/
|
||||||
|
RUN ./build-openssl.sh
|
||||||
|
|
||||||
|
# The `curl` binary on CentOS doesn't support SNI which is needed for fetching
|
||||||
|
# some https urls we have, so install a new version of libcurl + curl which is
|
||||||
|
# using the openssl we just built previously.
|
||||||
|
#
|
||||||
|
# Note that we also disable a bunch of optional features of curl that we don't
|
||||||
|
# really need.
|
||||||
|
COPY build-curl.sh /tmp/
|
||||||
|
RUN ./build-curl.sh
|
||||||
|
|
||||||
|
# binutils < 2.22 has a bug where the 32-bit executables it generates
|
||||||
|
# immediately segfault in Rust, so we need to install our own binutils.
|
||||||
|
#
|
||||||
|
# See https://github.com/rust-lang/rust/issues/20440 for more info
|
||||||
|
RUN ./build-binutils.sh
|
||||||
|
|
||||||
|
# Need a newer version of gcc than centos has to compile LLVM nowadays
|
||||||
|
COPY build-gcc.sh /tmp/
|
||||||
|
RUN ./build-gcc.sh
|
||||||
|
|
||||||
|
# CentOS 5.5 has Python 2.4 by default, but LLVM needs 2.7+
|
||||||
|
COPY build-python.sh /tmp/
|
||||||
|
RUN ./build-python.sh
|
||||||
|
|
||||||
|
# Apparently CentOS 5.5 desn't have `git` in yum, but we're gonna need it for
|
||||||
|
# cloning, so download and build it here.
|
||||||
|
COPY build-git.sh /tmp/
|
||||||
|
RUN ./build-git.sh
|
||||||
|
|
||||||
|
# libssh2 (a dependency of Cargo) requires cmake 2.8.11 or higher but CentOS
|
||||||
|
# only has 2.6.4, so build our own
|
||||||
|
COPY build-cmake.sh /tmp/
|
||||||
|
RUN ./build-cmake.sh
|
||||||
|
|
||||||
|
# for sanitizers, we need kernel headers files newer than the ones CentOS ships
|
||||||
|
# with so we install newer ones here
|
||||||
|
COPY build-headers.sh /tmp/
|
||||||
|
RUN ./build-headers.sh
|
||||||
|
|
||||||
|
RUN curl -Lo /rustroot/dumb-init \
|
||||||
|
https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64 && \
|
||||||
|
chmod +x /rustroot/dumb-init
|
||||||
|
ENTRYPOINT ["/rustroot/dumb-init", "--"]
|
||||||
|
|
||||||
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
|
ENV HOSTS=x86_64-unknown-linux-gnu
|
||||||
|
|
||||||
|
ENV RUST_CONFIGURE_ARGS \
|
||||||
|
--host=$HOSTS \
|
||||||
|
--enable-extended \
|
||||||
|
--enable-sanitizers
|
||||||
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
||||||
|
|
||||||
|
# This is the only builder which will create source tarballs
|
||||||
|
ENV DIST_SRC 1
|
||||||
|
|
||||||
|
# When we build cargo in this container, we don't want it to use the system
|
||||||
|
# libcurl, instead it should compile its own.
|
||||||
|
ENV LIBCURL_NO_PKG_CONFIG 1
|
26
src/ci/docker/dist-x86_64-linux/build-binutils.sh
Executable file
26
src/ci/docker/dist-x86_64-linux/build-binutils.sh
Executable file
|
@ -0,0 +1,26 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
source shared.sh
|
||||||
|
|
||||||
|
curl https://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2 | tar xfj -
|
||||||
|
|
||||||
|
mkdir binutils-build
|
||||||
|
cd binutils-build
|
||||||
|
hide_output ../binutils-2.25.1/configure --prefix=/rustroot
|
||||||
|
hide_output make -j10
|
||||||
|
hide_output make install
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
rm -rf binutils-build
|
||||||
|
rm -rf binutils-2.25.1
|
25
src/ci/docker/dist-x86_64-linux/build-cmake.sh
Executable file
25
src/ci/docker/dist-x86_64-linux/build-cmake.sh
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
source shared.sh
|
||||||
|
|
||||||
|
curl https://cmake.org/files/v3.6/cmake-3.6.3.tar.gz | tar xzf -
|
||||||
|
|
||||||
|
mkdir cmake-build
|
||||||
|
cd cmake-build
|
||||||
|
hide_output ../cmake-3.6.3/configure --prefix=/rustroot
|
||||||
|
hide_output make -j10
|
||||||
|
hide_output make install
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
rm -rf cmake-build
|
||||||
|
rm -rf cmake-3.6.3
|
43
src/ci/docker/dist-x86_64-linux/build-curl.sh
Executable file
43
src/ci/docker/dist-x86_64-linux/build-curl.sh
Executable file
|
@ -0,0 +1,43 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
source shared.sh
|
||||||
|
|
||||||
|
VERSION=7.51.0
|
||||||
|
|
||||||
|
curl http://cool.haxx.se/download/curl-$VERSION.tar.bz2 | tar xjf -
|
||||||
|
|
||||||
|
mkdir curl-build
|
||||||
|
cd curl-build
|
||||||
|
hide_output ../curl-$VERSION/configure \
|
||||||
|
--prefix=/rustroot \
|
||||||
|
--with-ssl=/rustroot \
|
||||||
|
--disable-sspi \
|
||||||
|
--disable-gopher \
|
||||||
|
--disable-smtp \
|
||||||
|
--disable-smb \
|
||||||
|
--disable-imap \
|
||||||
|
--disable-pop3 \
|
||||||
|
--disable-tftp \
|
||||||
|
--disable-telnet \
|
||||||
|
--disable-manual \
|
||||||
|
--disable-dict \
|
||||||
|
--disable-rtsp \
|
||||||
|
--disable-ldaps \
|
||||||
|
--disable-ldap
|
||||||
|
hide_output make -j10
|
||||||
|
hide_output make install
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
rm -rf curl-build
|
||||||
|
rm -rf curl-$VERSION
|
||||||
|
yum erase -y curl
|
33
src/ci/docker/dist-x86_64-linux/build-gcc.sh
Executable file
33
src/ci/docker/dist-x86_64-linux/build-gcc.sh
Executable file
|
@ -0,0 +1,33 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
source shared.sh
|
||||||
|
|
||||||
|
GCC=4.8.5
|
||||||
|
|
||||||
|
curl https://ftp.gnu.org/gnu/gcc/gcc-$GCC/gcc-$GCC.tar.bz2 | tar xjf -
|
||||||
|
cd gcc-$GCC
|
||||||
|
./contrib/download_prerequisites
|
||||||
|
mkdir ../gcc-build
|
||||||
|
cd ../gcc-build
|
||||||
|
hide_output ../gcc-$GCC/configure \
|
||||||
|
--prefix=/rustroot \
|
||||||
|
--enable-languages=c,c++
|
||||||
|
hide_output make -j10
|
||||||
|
hide_output make install
|
||||||
|
ln -nsf gcc /rustroot/bin/cc
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
rm -rf gcc-build
|
||||||
|
rm -rf gcc-$GCC
|
||||||
|
yum erase -y gcc gcc-c++ binutils
|
24
src/ci/docker/dist-x86_64-linux/build-git.sh
Executable file
24
src/ci/docker/dist-x86_64-linux/build-git.sh
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
source shared.sh
|
||||||
|
|
||||||
|
curl https://www.kernel.org/pub/software/scm/git/git-2.10.0.tar.gz | tar xzf -
|
||||||
|
|
||||||
|
cd git-2.10.0
|
||||||
|
make configure
|
||||||
|
hide_output ./configure --prefix=/rustroot
|
||||||
|
hide_output make -j10
|
||||||
|
hide_output make install
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
rm -rf git-2.10.0
|
25
src/ci/docker/dist-x86_64-linux/build-headers.sh
Executable file
25
src/ci/docker/dist-x86_64-linux/build-headers.sh
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
source shared.sh
|
||||||
|
|
||||||
|
curl https://cdn.kernel.org/pub/linux/kernel/v3.x/linux-3.2.84.tar.xz | unxz | tar x
|
||||||
|
|
||||||
|
cd linux-3.2.84
|
||||||
|
hide_output make mrproper
|
||||||
|
hide_output make INSTALL_HDR_PATH=dest headers_install
|
||||||
|
|
||||||
|
find dest/include \( -name .install -o -name ..install.cmd \) -delete
|
||||||
|
yes | cp -fr dest/include/* /usr/include
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
rm -rf linux-3.2.84
|
27
src/ci/docker/dist-x86_64-linux/build-openssl.sh
Executable file
27
src/ci/docker/dist-x86_64-linux/build-openssl.sh
Executable file
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
source shared.sh
|
||||||
|
|
||||||
|
VERSION=1.0.2j
|
||||||
|
|
||||||
|
curl https://www.openssl.org/source/openssl-$VERSION.tar.gz | tar xzf -
|
||||||
|
|
||||||
|
cd openssl-$VERSION
|
||||||
|
hide_output ./config --prefix=/rustroot shared -fPIC
|
||||||
|
hide_output make -j10
|
||||||
|
hide_output make install
|
||||||
|
cd ..
|
||||||
|
rm -rf openssl-$VERSION
|
||||||
|
|
||||||
|
# Make the system cert collection available to the new install.
|
||||||
|
ln -nsf /etc/pki/tls/cert.pem /rustroot/ssl/
|
30
src/ci/docker/dist-x86_64-linux/build-python.sh
Executable file
30
src/ci/docker/dist-x86_64-linux/build-python.sh
Executable file
|
@ -0,0 +1,30 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
source shared.sh
|
||||||
|
|
||||||
|
curl https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz | \
|
||||||
|
tar xzf -
|
||||||
|
|
||||||
|
mkdir python-build
|
||||||
|
cd python-build
|
||||||
|
|
||||||
|
# Gotta do some hackery to tell python about our custom OpenSSL build, but other
|
||||||
|
# than that fairly normal.
|
||||||
|
CFLAGS='-I /rustroot/include' LDFLAGS='-L /rustroot/lib -L /rustroot/lib64' \
|
||||||
|
hide_output ../Python-2.7.12/configure --prefix=/rustroot
|
||||||
|
hide_output make -j10
|
||||||
|
hide_output make install
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
rm -rf python-build
|
||||||
|
rm -rf Python-2.7.12
|
25
src/ci/docker/dist-x86_64-linux/shared.sh
Normal file
25
src/ci/docker/dist-x86_64-linux/shared.sh
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
hide_output() {
|
||||||
|
set +x
|
||||||
|
on_err="
|
||||||
|
echo ERROR: An error was encountered with the build.
|
||||||
|
cat /tmp/build.log
|
||||||
|
exit 1
|
||||||
|
"
|
||||||
|
trap "$on_err" ERR
|
||||||
|
bash -c "while true; do sleep 30; echo \$(date) - building ...; done" &
|
||||||
|
PING_LOOP_PID=$!
|
||||||
|
$@ &> /tmp/build.log
|
||||||
|
trap - ERR
|
||||||
|
kill $PING_LOOP_PID
|
||||||
|
set -x
|
||||||
|
}
|
|
@ -26,7 +26,7 @@ RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-ini
|
||||||
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
ENV RUST_CONFIGURE_ARGS \
|
ENV RUST_CONFIGURE_ARGS \
|
||||||
|
|
|
@ -15,7 +15,7 @@ set -ex
|
||||||
export CFLAGS="-fPIC -Wa,-mrelax-relocations=no"
|
export CFLAGS="-fPIC -Wa,-mrelax-relocations=no"
|
||||||
export CXXFLAGS="-Wa,-mrelax-relocations=no"
|
export CXXFLAGS="-Wa,-mrelax-relocations=no"
|
||||||
|
|
||||||
MUSL=musl-1.1.14
|
MUSL=musl-1.1.16
|
||||||
curl https://www.musl-libc.org/releases/$MUSL.tar.gz | tar xzf -
|
curl https://www.musl-libc.org/releases/$MUSL.tar.gz | tar xzf -
|
||||||
cd $MUSL
|
cd $MUSL
|
||||||
./configure --prefix=/musl-x86_64 --disable-shared
|
./configure --prefix=/musl-x86_64 --disable-shared
|
||||||
|
|
78
src/ci/docker/dist-x86_64-netbsd/Dockerfile
Normal file
78
src/ci/docker/dist-x86_64-netbsd/Dockerfile
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
FROM ubuntu:16.04
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
automake \
|
||||||
|
bison \
|
||||||
|
bzip2 \
|
||||||
|
ca-certificates \
|
||||||
|
cmake \
|
||||||
|
curl \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gawk \
|
||||||
|
gdb \
|
||||||
|
git \
|
||||||
|
gperf \
|
||||||
|
help2man \
|
||||||
|
libncurses-dev \
|
||||||
|
libtool-bin \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
python2.7 \
|
||||||
|
sudo \
|
||||||
|
texinfo \
|
||||||
|
wget \
|
||||||
|
xz-utils \
|
||||||
|
libssl-dev \
|
||||||
|
pkg-config
|
||||||
|
|
||||||
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
dpkg -i dumb-init_*.deb && \
|
||||||
|
rm dumb-init_*.deb
|
||||||
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
|
# Ubuntu 16.04 (this contianer) ships with make 4, but something in the
|
||||||
|
# toolchains we build below chokes on that, so go back to make 3
|
||||||
|
RUN curl https://ftp.gnu.org/gnu/make/make-3.81.tar.gz | tar xzf - && \
|
||||||
|
cd make-3.81 && \
|
||||||
|
./configure --prefix=/usr && \
|
||||||
|
make && \
|
||||||
|
make install && \
|
||||||
|
cd .. && \
|
||||||
|
rm -rf make-3.81
|
||||||
|
|
||||||
|
RUN curl http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.22.0.tar.bz2 | \
|
||||||
|
tar xjf - && \
|
||||||
|
cd crosstool-ng && \
|
||||||
|
./configure --prefix=/usr/local && \
|
||||||
|
make -j$(nproc) && \
|
||||||
|
make install && \
|
||||||
|
cd .. && \
|
||||||
|
rm -rf crosstool-ng
|
||||||
|
|
||||||
|
RUN groupadd -r rustbuild && useradd -m -r -g rustbuild rustbuild
|
||||||
|
RUN mkdir /x-tools && chown rustbuild:rustbuild /x-tools
|
||||||
|
USER rustbuild
|
||||||
|
WORKDIR /tmp
|
||||||
|
|
||||||
|
COPY build-netbsd-toolchain.sh /tmp/
|
||||||
|
RUN ./build-netbsd-toolchain.sh
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
|
ENV PATH=$PATH:/x-tools/x86_64-unknown-netbsd/bin
|
||||||
|
|
||||||
|
ENV \
|
||||||
|
AR_x86_64_unknown_netbsd=x86_64--netbsd-ar \
|
||||||
|
CC_x86_64_unknown_netbsd=x86_64--netbsd-gcc-sysroot \
|
||||||
|
CXX_x86_64_unknown_netbsd=x86_64--netbsd-g++-sysroot
|
||||||
|
|
||||||
|
ENV HOSTS=x86_64-unknown-netbsd
|
||||||
|
|
||||||
|
ENV RUST_CONFIGURE_ARGS --host=$HOSTS --enable-extended
|
||||||
|
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
|
83
src/ci/docker/dist-x86_64-netbsd/build-netbsd-toolchain.sh
Executable file
83
src/ci/docker/dist-x86_64-netbsd/build-netbsd-toolchain.sh
Executable file
|
@ -0,0 +1,83 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Copyright 2016 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
# ignore-tidy-linelength
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
hide_output() {
|
||||||
|
set +x
|
||||||
|
on_err="
|
||||||
|
echo ERROR: An error was encountered with the build.
|
||||||
|
cat /tmp/build.log
|
||||||
|
exit 1
|
||||||
|
"
|
||||||
|
trap "$on_err" ERR
|
||||||
|
bash -c "while true; do sleep 30; echo \$(date) - building ...; done" &
|
||||||
|
PING_LOOP_PID=$!
|
||||||
|
$@ &> /tmp/build.log
|
||||||
|
rm /tmp/build.log
|
||||||
|
trap - ERR
|
||||||
|
kill $PING_LOOP_PID
|
||||||
|
set -x
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir netbsd
|
||||||
|
cd netbsd
|
||||||
|
|
||||||
|
mkdir -p /x-tools/x86_64-unknown-netbsd/sysroot
|
||||||
|
|
||||||
|
URL=https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror
|
||||||
|
|
||||||
|
# Originally from ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-$BSD/source/sets/*.tgz
|
||||||
|
curl $URL/2017-03-17-netbsd-src.tgz | tar xzf -
|
||||||
|
curl $URL/2017-03-17-netbsd-gnusrc.tgz | tar xzf -
|
||||||
|
curl $URL/2017-03-17-netbsd-sharesrc.tgz | tar xzf -
|
||||||
|
curl $URL/2017-03-17-netbsd-syssrc.tgz | tar xzf -
|
||||||
|
|
||||||
|
# Originally from ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-$BSD/amd64/binary/sets/*.tgz
|
||||||
|
curl $URL/2017-03-17-netbsd-base.tgz | \
|
||||||
|
tar xzf - -C /x-tools/x86_64-unknown-netbsd/sysroot ./usr/include ./usr/lib ./lib
|
||||||
|
curl $URL/2017-03-17-netbsd-comp.tgz | \
|
||||||
|
tar xzf - -C /x-tools/x86_64-unknown-netbsd/sysroot ./usr/include ./usr/lib
|
||||||
|
|
||||||
|
cd usr/src
|
||||||
|
|
||||||
|
# The options, in order, do the following
|
||||||
|
# * this is an unpriviledged build
|
||||||
|
# * output to a predictable location
|
||||||
|
# * disable various uneeded stuff
|
||||||
|
MKUNPRIVED=yes TOOLDIR=/x-tools/x86_64-unknown-netbsd \
|
||||||
|
MKSHARE=no MKDOC=no MKHTML=no MKINFO=no MKKMOD=no MKLINT=no MKMAN=no MKNLS=no MKPROFILE=no \
|
||||||
|
hide_output ./build.sh -j10 -m amd64 tools
|
||||||
|
|
||||||
|
cd ../..
|
||||||
|
|
||||||
|
rm -rf usr
|
||||||
|
|
||||||
|
cat > /x-tools/x86_64-unknown-netbsd/bin/x86_64--netbsd-gcc-sysroot <<'EOF'
|
||||||
|
#!/bin/bash
|
||||||
|
exec /x-tools/x86_64-unknown-netbsd/bin/x86_64--netbsd-gcc --sysroot=/x-tools/x86_64-unknown-netbsd/sysroot "$@"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > /x-tools/x86_64-unknown-netbsd/bin/x86_64--netbsd-g++-sysroot <<'EOF'
|
||||||
|
#!/bin/bash
|
||||||
|
exec /x-tools/x86_64-unknown-netbsd/bin/x86_64--netbsd-g++ --sysroot=/x-tools/x86_64-unknown-netbsd/sysroot "$@"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
GCC_SHA1=`sha1sum -b /x-tools/x86_64-unknown-netbsd/bin/x86_64--netbsd-gcc | cut -d' ' -f1`
|
||||||
|
GPP_SHA1=`sha1sum -b /x-tools/x86_64-unknown-netbsd/bin/x86_64--netbsd-g++ | cut -d' ' -f1`
|
||||||
|
|
||||||
|
echo "# $GCC_SHA1" >> /x-tools/x86_64-unknown-netbsd/bin/x86_64--netbsd-gcc-sysroot
|
||||||
|
echo "# $GPP_SHA1" >> /x-tools/x86_64-unknown-netbsd/bin/x86_64--netbsd-g++-sysroot
|
||||||
|
|
||||||
|
chmod +x /x-tools/x86_64-unknown-netbsd/bin/x86_64--netbsd-gcc-sysroot
|
||||||
|
chmod +x /x-tools/x86_64-unknown-netbsd/bin/x86_64--netbsd-g++-sysroot
|
|
@ -15,7 +15,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
lib32stdc++6
|
lib32stdc++6
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
|
|
@ -29,7 +29,24 @@ exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
curl https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz | \
|
curl https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz | \
|
||||||
tar xzf -
|
tar xzf -
|
||||||
|
|
||||||
|
# Some versions of the EMSDK archive have their contents in .emsdk-portable
|
||||||
|
# and others in emsdk_portable. Make sure the EMSDK ends up in a fixed path.
|
||||||
|
if [ -d emsdk-portable ]; then
|
||||||
|
mv emsdk-portable emsdk_portable
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d emsdk_portable ]; then
|
||||||
|
echo "ERROR: Invalid emsdk archive. Dumping working directory." >&2
|
||||||
|
ls -l
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Some versions of the EMSDK set the permissions of the root directory to
|
||||||
|
# 0700. Ensure the directory is readable by all users.
|
||||||
|
chmod 755 emsdk_portable
|
||||||
|
|
||||||
source emsdk_portable/emsdk_env.sh
|
source emsdk_portable/emsdk_env.sh
|
||||||
hide_output emsdk update
|
hide_output emsdk update
|
||||||
hide_output emsdk install --build=Release sdk-tag-1.37.1-32bit
|
hide_output emsdk install --build=Release sdk-tag-1.37.1-32bit
|
||||||
|
|
|
@ -14,7 +14,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
xz-utils
|
xz-utils
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
|
|
@ -14,7 +14,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
xz-utils
|
xz-utils
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
|
|
@ -39,7 +39,6 @@ if [ "$SCCACHE_BUCKET" != "" ]; then
|
||||||
args="$args --env AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY"
|
args="$args --env AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY"
|
||||||
args="$args --env SCCACHE_ERROR_LOG=/tmp/sccache/sccache.log"
|
args="$args --env SCCACHE_ERROR_LOG=/tmp/sccache/sccache.log"
|
||||||
args="$args --env SCCACHE_LOG_LEVEL=debug"
|
args="$args --env SCCACHE_LOG_LEVEL=debug"
|
||||||
args="$args --env RUST_LOG=sccache=debug"
|
|
||||||
args="$args --volume $objdir/tmp:/tmp/sccache"
|
args="$args --volume $objdir/tmp:/tmp/sccache"
|
||||||
else
|
else
|
||||||
mkdir -p $HOME/.cache/sccache
|
mkdir -p $HOME/.cache/sccache
|
||||||
|
@ -58,6 +57,7 @@ exec docker \
|
||||||
--env DEPLOY_ALT=$DEPLOY_ALT \
|
--env DEPLOY_ALT=$DEPLOY_ALT \
|
||||||
--env LOCAL_USER_ID=`id -u` \
|
--env LOCAL_USER_ID=`id -u` \
|
||||||
--volume "$HOME/.cargo:/cargo" \
|
--volume "$HOME/.cargo:/cargo" \
|
||||||
|
--volume "$HOME/rustsrc:$HOME/rustsrc" \
|
||||||
--privileged \
|
--privileged \
|
||||||
--rm \
|
--rm \
|
||||||
rust-ci \
|
rust-ci \
|
||||||
|
|
|
@ -15,7 +15,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
|
|
@ -14,7 +14,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
xz-utils
|
xz-utils
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
|
|
@ -16,7 +16,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
||||||
RUN curl -o /usr/local/bin/sccache \
|
RUN curl -o /usr/local/bin/sccache \
|
||||||
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-02-25-sccache-x86_64-unknown-linux-musl && \
|
https://s3.amazonaws.com/rust-lang-ci/rust-ci-mirror/2017-04-04-sccache-x86_64-unknown-linux-musl && \
|
||||||
chmod +x /usr/local/bin/sccache
|
chmod +x /usr/local/bin/sccache
|
||||||
|
|
||||||
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
RUN curl -OL https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue