summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO38
-rw-r--r--PKGBUILD55
-rw-r--r--mingw-config.toml597
3 files changed, 57 insertions, 633 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 789d5238d6ed..7150624e74e3 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = mingw-w64-rust
pkgdesc = Systems programming language focused on safety, speed and concurrency (mingw-w64)
- pkgver = 1.34.2
+ pkgver = 1.77.1
pkgrel = 1
url = https://www.rust-lang.org
arch = x86_64
@@ -13,38 +13,38 @@ pkgbase = mingw-w64-rust
makedepends = perl
makedepends = python
makedepends = nodejs
+ makedepends = procps-ng
makedepends = cmake
depends = gcc-libs
depends = curl
depends = libgit2
- depends = mingw-w64-gcc
+ depends = mingw-w64-gcc>=10.1.0
optdepends = mingw-w64-wine: for cargo test support
- noextract = rust-std-1.33.0-x86_64-unknown-linux-gnu.tar.xz
- noextract = rustc-1.33.0-x86_64-unknown-linux-gnu.tar.xz
- noextract = cargo-0.34.0-x86_64-unknown-linux-gnu.tar.xz
+ noextract = rust-std-1.76.0-x86_64-unknown-linux-gnu.tar.xz
+ noextract = rustc-1.76.0-x86_64-unknown-linux-gnu.tar.xz
+ noextract = cargo-1.76.0-x86_64-unknown-linux-gnu.tar.xz
options = !strip
options = staticlibs
options = !buildflags
backup = opt/rust/cargo/config
- source = https://static.rust-lang.org/dist/rustc-1.34.2-src.tar.xz
- source = https://static.rust-lang.org/dist/rustc-1.34.2-src.tar.xz.asc
- source = https://static.rust-lang.org/dist/2019-02-28/rust-std-1.33.0-x86_64-unknown-linux-gnu.tar.xz
- source = https://static.rust-lang.org/dist/2019-02-28/rust-std-1.33.0-x86_64-unknown-linux-gnu.tar.xz.asc
- source = https://static.rust-lang.org/dist/2019-02-28/rustc-1.33.0-x86_64-unknown-linux-gnu.tar.xz
- source = https://static.rust-lang.org/dist/2019-02-28/rustc-1.33.0-x86_64-unknown-linux-gnu.tar.xz.asc
- source = https://static.rust-lang.org/dist/2019-02-28/cargo-0.34.0-x86_64-unknown-linux-gnu.tar.xz
- source = https://static.rust-lang.org/dist/2019-02-28/cargo-0.34.0-x86_64-unknown-linux-gnu.tar.xz.asc
+ source = https://static.rust-lang.org/dist/rustc-1.77.1-src.tar.xz
+ source = https://static.rust-lang.org/dist/rustc-1.77.1-src.tar.xz.asc
+ source = https://static.rust-lang.org/dist/2024-02-08/rust-std-1.76.0-x86_64-unknown-linux-gnu.tar.xz
+ source = https://static.rust-lang.org/dist/2024-02-08/rust-std-1.76.0-x86_64-unknown-linux-gnu.tar.xz.asc
+ source = https://static.rust-lang.org/dist/2024-02-08/rustc-1.76.0-x86_64-unknown-linux-gnu.tar.xz
+ source = https://static.rust-lang.org/dist/2024-02-08/rustc-1.76.0-x86_64-unknown-linux-gnu.tar.xz.asc
+ source = https://static.rust-lang.org/dist/2024-02-08/cargo-1.76.0-x86_64-unknown-linux-gnu.tar.xz
+ source = https://static.rust-lang.org/dist/2024-02-08/cargo-1.76.0-x86_64-unknown-linux-gnu.tar.xz.asc
source = mingw-config.toml
validpgpkeys = 108F66205EAEB0AAA8DD5E1C85AB96E6FA1BE5FE
- sha256sums = 2b3b3a5462aa31d07f39721af73ef394803ceae3472e2470f28b7ee0b12e38ef
+ sha256sums = 2ddc6f5e01df1bd6c7ff94d9931574181795a231b199ca6948d433fa5e795873
sha256sums = SKIP
- sha256sums = 6f20343ed73faf5fdfc423bec38a9bb1910a0a962af6f2dddd7184407543ed0e
+ sha256sums = e41150b52d923a3bbe166c4ecc5719f56576274b0d034d764768aee279ae2063
sha256sums = SKIP
- sha256sums = 57c5ced1a826d34f26e50adf041528dd0000f2a59e8be32d2359386843382ce1
+ sha256sums = 9fadfcf71bc6a0ddfd026b9624163faf1c5689dd4a1f7cc1f857167ade4aa6eb
sha256sums = SKIP
- sha256sums = 1730c8ebcacc1327eb28b328cb9f5a2c612bb3d9efff9c350647adf19f304e15
+ sha256sums = 30ec0ad9fca443ec12c544f9ce448dacdde411a45b9042961938b650e918ccfb
sha256sums = SKIP
- sha256sums = d7b86ebb3382c838cb931ed0292e4a8133dd524beed7abe0f3ab8d7bc5973d04
+ sha256sums = 14e684d6db06462a247c6af89dbfa55fc024a1c9c24448fa45abb7818f9433b6
pkgname = mingw-w64-rust
-
diff --git a/PKGBUILD b/PKGBUILD
index 389f71cadb80..d8b95fb57788 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,13 +5,12 @@
# Contributor: userwithuid < userwithuid at gmail dot com >
_pkgname=rust
-_date=2019-02-28
-_rustc=1.33.0
-_cargo=0.34.0
+_date=2024-02-08
+_rustc=1.76.0
pkgname=mingw-w64-rust
_prefix=opt/rust
-pkgver=1.34.2
+pkgver=1.77.1
pkgrel=1
pkgdesc="Systems programming language focused on safety, speed and concurrency (mingw-w64)"
arch=('x86_64')
@@ -20,7 +19,7 @@ license=('MIT' 'Apache' 'custom')
depends=('gcc-libs'
'curl'
'libgit2'
- 'mingw-w64-gcc')
+ 'mingw-w64-gcc>=10.1.0')
optdepends=('mingw-w64-wine: for cargo test support')
makedepends=('gdb'
'ninja'
@@ -28,63 +27,55 @@ makedepends=('gdb'
'perl'
'python'
'nodejs'
+ 'procps-ng'
'cmake')
options=('!strip' 'staticlibs' '!buildflags')
source=("https://static.rust-lang.org/dist/rustc-${pkgver}-src.tar.xz"{,.asc}
"https://static.rust-lang.org/dist/${_date}/rust-std-${_rustc}-x86_64-unknown-linux-gnu.tar.xz"{,.asc}
"https://static.rust-lang.org/dist/${_date}/rustc-${_rustc}-x86_64-unknown-linux-gnu.tar.xz"{,.asc}
- "https://static.rust-lang.org/dist/${_date}/cargo-${_cargo}-x86_64-unknown-linux-gnu.tar.xz"{,.asc}
+ "https://static.rust-lang.org/dist/${_date}/cargo-${_rustc}-x86_64-unknown-linux-gnu.tar.xz"{,.asc}
"mingw-config.toml")
noextract=("rust-std-${_rustc}-x86_64-unknown-linux-gnu.tar.xz"
"rustc-${_rustc}-x86_64-unknown-linux-gnu.tar.xz"
- "cargo-${_cargo}-x86_64-unknown-linux-gnu.tar.xz")
-sha256sums=('2b3b3a5462aa31d07f39721af73ef394803ceae3472e2470f28b7ee0b12e38ef'
+ "cargo-${_rustc}-x86_64-unknown-linux-gnu.tar.xz")
+sha256sums=('2ddc6f5e01df1bd6c7ff94d9931574181795a231b199ca6948d433fa5e795873'
'SKIP'
- '6f20343ed73faf5fdfc423bec38a9bb1910a0a962af6f2dddd7184407543ed0e'
+ 'e41150b52d923a3bbe166c4ecc5719f56576274b0d034d764768aee279ae2063'
'SKIP'
- '57c5ced1a826d34f26e50adf041528dd0000f2a59e8be32d2359386843382ce1'
+ '9fadfcf71bc6a0ddfd026b9624163faf1c5689dd4a1f7cc1f857167ade4aa6eb'
'SKIP'
- '1730c8ebcacc1327eb28b328cb9f5a2c612bb3d9efff9c350647adf19f304e15'
+ '30ec0ad9fca443ec12c544f9ce448dacdde411a45b9042961938b650e918ccfb'
'SKIP'
- 'd7b86ebb3382c838cb931ed0292e4a8133dd524beed7abe0f3ab8d7bc5973d04')
+ '14e684d6db06462a247c6af89dbfa55fc024a1c9c24448fa45abb7818f9433b6')
validpgpkeys=('108F66205EAEB0AAA8DD5E1C85AB96E6FA1BE5FE') # Rust Language (Tag and Release Signing Key) <rust-key@rust-lang.org>
backup=("opt/rust/cargo/config")
-PKGEXT=".pkg.tar.gz"
prepare() {
cd "rustc-${pkgver}-src"
cp "${srcdir}"/mingw-config.toml config.toml
sed -i "s|\@PREFIX\@|/${_prefix}|" config.toml
- cd "${srcdir}/rustc-${pkgver}-src/src/bootstrap"
- sed -i "s|tar.gz|tar.xz|" bootstrap.py
cd "${srcdir}"
mkdir -p "${srcdir}/rustc-${pkgver}-src/build/cache/${_date}"
cp rust-std-${_rustc}-x86_64-unknown-linux-gnu.tar.xz "rustc-${pkgver}-src/build/cache/${_date}"
cp rustc-${_rustc}-x86_64-unknown-linux-gnu.tar.xz "rustc-${pkgver}-src/build/cache/${_date}"
- cp cargo-${_cargo}-x86_64-unknown-linux-gnu.tar.xz "rustc-${pkgver}-src/build/cache/${_date}"
+ cp cargo-${_rustc}-x86_64-unknown-linux-gnu.tar.xz "rustc-${pkgver}-src/build/cache/${_date}"
}
build() {
cd "rustc-${pkgver}-src"
- export CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
- export CXXFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
- python ./x.py build
+ export CFLAGS="-O2 -pipe -fno-plt -Wall -D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
+ export CXXFLAGS="-O2 -pipe -fno-plt -Wall -D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
+ # TODO: find a way to disable packaging
+ DESTDIR="${srcdir}/rust_install" python ./x.py install
}
package() {
cd "rustc-${pkgver}-src"
-
- # rust will build install tools there
- export CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
- export CXXFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
- # TODO: find a way to disable packaging
- # use level 0 to speed up xz packaging
- sed -i 's|XzEncoder::new(create_new_file(tar_xz)?, 6)|XzEncoder::new(create_new_file(tar_xz)?, 0)|' "src/tools/rust-installer/src/tarballer.rs"
- DESTDIR="${pkgdir}" python ./x.py install
+ mv "${srcdir}/rust_install/"* "${pkgdir}"
# license
install -dm755 "${pkgdir}/usr/share/licenses/${pkgname}/"{rust,cargo}
@@ -93,7 +84,7 @@ package() {
mv "${pkgdir}"/${_prefix}/share/doc/rust/{LICENSE-*,COPYRIGHT} "${pkgdir}/usr/share/licenses/${pkgname}/rust/"
# remove unused files
- rm -r "${pkgdir}/etc/"
+ rm -r "${pkgdir}/etc"
rm -r "${pkgdir}/${_prefix}/share"
rm "${pkgdir}/${_prefix}/lib/rustlib/"{manifest-*,install.log,uninstall.sh,components,rust-installer-version}
@@ -110,15 +101,19 @@ package() {
# strip
strip --strip-all "${pkgdir}/${_prefix}/bin/"{cargo,rustc,rustdoc}
- strip --strip-all "${pkgdir}/${_prefix}/lib/rustlib/x86_64-unknown-linux-gnu/bin/"rust-lld
+ strip --strip-all "${pkgdir}/${_prefix}/lib/rustlib/x86_64-unknown-linux-gnu/bin/"rust-*
+ strip --strip-all "${pkgdir}/${_prefix}/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld/"*
+ strip --strip-unneeded "${pkgdir}/${_prefix}/lib/librustc"*.so
strip --strip-unneeded "${pkgdir}/${_prefix}/lib/rustlib/x86_64-unknown-linux-gnu/lib/"*.so
- strip --strip-unneeded "${pkgdir}/${_prefix}/lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends/"*.so
i686-w64-mingw32-strip --strip-unneeded "${pkgdir}/${_prefix}/lib/rustlib/i686-pc-windows-gnu/lib/"*.dll
x86_64-w64-mingw32-strip --strip-unneeded "${pkgdir}/${_prefix}/lib/rustlib/x86_64-pc-windows-gnu/lib/"*.dll
# config
install -dm777 "${pkgdir}/opt/rust/cargo"
cat << EOF >> "${pkgdir}/opt/rust/cargo/config"
+[net]
+git-fetch-with-cli = true
+
[target.i686-pc-windows-gnu]
linker = "/usr/bin/i686-w64-mingw32-gcc"
ar = "/usr/i686-w64-mingw32/bin/ar"
diff --git a/mingw-config.toml b/mingw-config.toml
index 5069da0b05b0..975307d7cf13 100644
--- a/mingw-config.toml
+++ b/mingw-config.toml
@@ -1,629 +1,58 @@
-# Sample TOML configuration file for building Rust.
-#
-# To configure rustbuild, copy this file to the directory from which you will be
-# running the build, and name it config.toml.
-#
-# All options are commented out by default in this file, and they're commented
-# out with their default values. The build system by default looks for
-# `config.toml` in the current directory of a build for build configuration, but
-# a custom configuration file can also be specified with `--config` to the build
-# system.
+change-id = 118703
-# =============================================================================
-# Tweaking how LLVM is compiled
-# =============================================================================
[llvm]
-
-# Indicates whether rustc will support compilation with LLVM
-# note: rustc does not compile without LLVM at the moment
-enabled = true
-
-# Indicates whether the LLVM build is a Release or Debug build
-optimize = true
-
-# Indicates whether LLVM should be built with ThinLTO. Note that this will
-# only succeed if you use clang, lld, llvm-ar, and llvm-ranlib in your C/C++
-# toolchain (see the `cc`, `cxx`, `linker`, `ar`, and `ranlib` options below).
-# More info at: https://clang.llvm.org/docs/ThinLTO.html#clang-bootstrap
-#thin-lto = false
-
-# Indicates whether an LLVM Release build should include debug info
-release-debuginfo = false
-
-# Indicates whether the LLVM assertions are enabled or not
-assertions = false
-
-# Indicates whether ccache is used when building LLVM
-ccache = false
-# or alternatively ...
-#ccache = "/path/to/ccache"
-
-# If an external LLVM root is specified, we automatically check the version by
-# default to make sure it's within the range that we're expecting, but setting
-# this flag will indicate that this version check should not be done.
-#version-check = true
-
-# Link libstdc++ statically into the librustc_llvm instead of relying on a
-# dynamic version to be available.
-static-libstdcpp = true
-
-# Tell the LLVM build system to use Ninja instead of the platform default for
-# the generated build system. This can sometimes be faster than make, for
-# example.
-ninja = true
-
-# LLVM targets to build support for.
-# Note: this is NOT related to Rust compilation targets. However, as Rust is
-# dependent on LLVM for code generation, turning targets off here WILL lead to
-# the resulting rustc being unable to compile for the disabled architectures.
-# Also worth pointing out is that, in case support for new targets are added to
-# LLVM, enabling them here doesn't mean Rust is automatically gaining said
-# support. You'll need to write a target specification at least, and most
-# likely, teach rustc about the C ABI of the target. Get in touch with the
-# Rust team and file an issue if you need assistance in porting!
targets = "X86"
-
-# LLVM experimental targets to build support for. These targets are specified in
-# the same format as above, but since these targets are experimental, they are
-# not built by default and the experimental Rust compilation targets that depend
-# on them will not work unless the user opts in to building them. By default the
-# `WebAssembly` and `RISCV` targets are enabled when compiling LLVM from scratch.
experimental-targets = ""
+link-jobs = 1
-# Cap the number of parallel linker invocations when compiling LLVM.
-# This can be useful when building LLVM with debug info, which significantly
-# increases the size of binaries and consequently the memory required by
-# each linker process.
-# If absent or 0, linker invocations are treated like any other job and
-# controlled by rustbuild's -j parameter.
-link-jobs = 0
-
-# When invoking `llvm-config` this configures whether the `--shared` argument is
-# passed to prefer linking to shared libraries.
-link-shared = false
-
-# When building llvm, this configures what is being appended to the version.
-# If absent, we let the version as-is.
-#version-suffix = "-rust"
-
-# On MSVC you can compile LLVM with clang-cl, but the test suite doesn't pass
-# with clang-cl, so this is special in that it only compiles LLVM with clang-cl
-#clang-cl = '/path/to/clang-cl.exe'
-
-# Pass extra compiler and linker flags to the LLVM CMake build.
-#cflags = "-fextra-flag"
-#cxxflags = "-fextra-flag"
-#ldflags = "-Wl,extra-flag"
-
-# Use libc++ when building LLVM instead of libstdc++. This is the default on
-# platforms already use libc++ as the default C++ library, but this option
-# allows you to use libc++ even on platforms when it's not. You need to ensure
-# that your host compiler ships with libc++.
-use-libcxx = false
-
-# The value specified here will be passed as `-DLLVM_USE_LINKER` to CMake.
-#use-linker = "lld"
-
-
-# =============================================================================
-# General build configuration options
-# =============================================================================
[build]
-
-# Build triple for the original snapshot compiler. This must be a compiler that
-# nightlies are already produced for. The current platform must be able to run
-# binaries of this build triple and the nightly will be used to bootstrap the
-# first compiler.
-build = "x86_64-unknown-linux-gnu" # defaults to your host platform
-
-# In addition to the build triple, other triples to produce full compiler
-# toolchains for. Each of these triples will be bootstrapped from the build
-# triple and then will continue to bootstrap themselves. This platform must
-# currently be able to run all of the triples provided here.
-host = ["x86_64-unknown-linux-gnu"] # defaults to just the build triple
-
-# In addition to all host triples, other triples to produce the standard library
-# for. Each host triple will be used to produce a copy of the standard library
-# for each target triple.
-target = ["x86_64-unknown-linux-gnu", "i686-pc-windows-gnu", "x86_64-pc-windows-gnu"] # defaults to just the build triple
-
-# Instead of downloading the src/stage0.txt version of Cargo specified, use
-# this Cargo binary instead to build all Rust code
-#cargo = "/path/to/bin/cargo"
-
-# Instead of downloading the src/stage0.txt version of the compiler
-# specified, use this rustc binary instead as the stage0 snapshot compiler.
-#rustc = "/path/to/bin/rustc"
-
-# Flag to specify whether any documentation is built. If false, rustdoc and
-# friends will still be compiled but they will not be used to generate any
-# documentation.
+build = "x86_64-unknown-linux-gnu"
+host = ["x86_64-unknown-linux-gnu"]
+target = ["x86_64-unknown-linux-gnu", "i686-pc-windows-gnu", "x86_64-pc-windows-gnu"]
docs = false
-
-# Indicate whether the compiler should be documented in addition to the standard
-# library and facade crates.
-compiler-docs = false
-
-# Indicate whether submodules are managed and updated automatically.
-submodules = true
-
-# Update submodules only when the checked out commit in the submodules differs
-# from what is committed in the main rustc repo.
-fast-submodules = true
-
-# The path to (or name of) the GDB executable to use. This is only used for
-# executing the debuginfo test suite.
-gdb = "gdb"
-
-# The node.js executable to use. Note that this is only used for the emscripten
-# target when running tests, otherwise this can be omitted.
-nodejs = "node"
-
-# Python interpreter to use for various tasks throughout the build, notably
-# rustdoc tests, the lldb python interpreter, and some dist bits and pieces.
-# Note that Python 2 is currently required.
-python = "python2.7"
-
-# Force Cargo to check that Cargo.lock describes the precise dependency
-# set that all the Cargo.toml files create, instead of updating it.
-locked-deps = false
-
-# Indicate whether the vendored sources are used for Rust dependencies or not
+submodules = false
+locked-deps = true
vendor = true
-
-# Typically the build system will build the rust compiler twice. The second
-# compiler, however, will simply use its own libraries to link against. If you
-# would rather to perform a full bootstrap, compiling the compiler three times,
-# then you can set this option to true. You shouldn't ever need to set this
-# option to true.
-full-bootstrap = false
-
-# Enable a build of the extended rust tool set which is not only the compiler
-# but also tools such as Cargo. This will also produce "combined installers"
-# which are used to install Rust and Cargo together. This is disabled by
-# default.
extended = true
-
-# Installs chosen set of extended tools if enables. By default builds all.
-# If chosen tool failed to build the installation fails.
-tools = ["cargo"]
-
-# Verbosity level: 0 == not verbose, 1 == verbose, 2 == very verbose
-verbose = 0
-
-# Build the sanitizer runtimes
-sanitizers = false
-
-# Build the profiler runtime
-profiler = false
-
-# Indicates whether the native libraries linked into Cargo will be statically
-# linked or not.
+tools = [
+ "cargo",
+ "rustdoc",
+]
cargo-native-static = true
-# Run the build with low priority, by setting the process group's "nice" value
-# to +10 on Unix platforms, and by using a "low priority" job object on Windows.
-low-priority = false
-
-# Arguments passed to the `./configure` script, used during distcheck. You
-# probably won't fill this in but rather it's filled in by the `./configure`
-# script.
-configure-args = []
-
-# Indicates that a local rebuild is occurring instead of a full bootstrap,
-# essentially skipping stage0 as the local compiler is recompiling itself again.
-local-rebuild = false
-
-# Print out how long each rustbuild step took (mostly intended for CI and
-# tracking over time)
-print-step-timings = false
-
-# =============================================================================
-# General install configuration options
-# =============================================================================
[install]
-
-# Instead of installing to /usr/local, install to this path instead.
prefix = "@PREFIX@"
-# Where to install system configuration files
-# If this is a relative path, it will get installed in `prefix` above
-sysconfdir = "/etc"
-
-# Where to install documentation in `prefix` above
-docdir = "share/doc/rust"
-
-# Where to install binaries in `prefix` above
-bindir = "bin"
-
-# Where to install libraries in `prefix` above
-libdir = "lib"
-
-# Where to install man pages in `prefix` above
-mandir = "share/man"
-
-# Where to install data in `prefix` above (currently unused)
-datadir = "share"
-
-# Where to install additional info in `prefix` above (currently unused)
-infodir = "share/info"
-
-# Where to install local state (currently unused)
-# If this is a relative path, it will get installed in `prefix` above
-localstatedir = "/var/lib"
-
-# =============================================================================
-# Options for compiling Rust code itself
-# =============================================================================
[rust]
-
-# Whether or not to optimize the compiler and standard library.
-#
-# Note: the slowness of the non optimized compiler compiling itself usually
-# outweighs the time gains in not doing optimizations, therefore a
-# full bootstrap takes much more time with `optimize` set to false.
-optimize = true
-
-# Indicates that the build should be configured for debugging Rust. A
-# `debug`-enabled compiler and standard library will be somewhat
-# slower (due to e.g. checking of debug assertions) but should remain
-# usable.
-#
-# Note: If this value is set to `true`, it will affect a number of
-# configuration options below as well, if they have been left
-# unconfigured in this file.
-#
-# Note: changes to the `debug` setting do *not* affect `optimize`
-# above. In theory, a "maximally debuggable" environment would
-# set `optimize` to `false` above to assist the introspection
-# facilities of debuggers like lldb and gdb. To recreate such an
-# environment, explicitly set `optimize` to `false` and `debug`
-# to `true`. In practice, everyone leaves `optimize` set to
-# `true`, because an unoptimized rustc with debugging
-# enabled becomes *unusably slow* (e.g. rust-lang/rust#24840
-# reported a 25x slowdown) and bootstrapping the supposed
-# "maximally debuggable" environment (notably libstd) takes
-# hours to build.
-#
-debug = false
-
-# Number of codegen units to use for each compiler invocation. A value of 0
-# means "the number of cores on this machine", and 1+ is passed through to the
-# compiler.
-codegen-units = 1
-
-# Sets the number of codegen units to build the standard library with,
-# regardless of what the codegen-unit setting for the rest of the compiler is.
+codegen-units = 0
codegen-units-std = 1
-
-# Whether or not debug assertions are enabled for the compiler and standard
-# library.
-debug-assertions = false
-
-# Whether or not debuginfo is emitted
-debuginfo = true
-
-# Whether or not line number debug information is emitted
-debuginfo-lines = true
-
-# Whether or not to only build debuginfo for the standard library if enabled.
-# If enabled, this will not compile the compiler with debuginfo, just the
-# standard library.
-debuginfo-only-std = false
-
-# Enable debuginfo for the extended tools: cargo, rls, rustfmt
-# Adding debuginfo makes them several times larger.
-#debuginfo-tools = false
-
-# Whether or not `panic!`s generate backtraces (RUST_BACKTRACE)
-backtrace = true
-
-# Whether to always use incremental compilation when building rustc
-incremental = false
-
-# Build a multi-threaded rustc
-parallel-compiler = false
-
-# The default linker that will be hard-coded into the generated compiler for
-# targets that don't specify linker explicitly in their target specifications.
-# Note that this is not the linker used to link said compiler.
-default-linker = "cc"
-
-# The "channel" for the Rust build to produce. The stable/beta channels only
-# allow using stable features, whereas the nightly and dev channels allow using
-# nightly features
channel = "stable"
-
-# By default the `rustc` executable is built with `-Wl,-rpath` flags on Unix
-# platforms to ensure that the compiler is usable by default from the build
-# directory (as it links to a number of dynamic libraries). This may not be
-# desired in distributions, for example.
-rpath = true
-
-# Emits extraneous output from tests to ensure that failures of the test
-# harness are debuggable just from logfiles.
-verbose-tests = false
-
-# Flag indicating whether tests are compiled with optimizations (the -O flag) or
-# with debuginfo (the -g flag)
-optimize-tests = true
-debuginfo-tests = false
-
-# Flag indicating whether codegen tests will be run or not. If you get an error
-# saying that the FileCheck executable is missing, you may want to disable this.
-# Also see the target's llvm-filecheck option.
-codegen-tests = true
-
-# Flag indicating whether git info will be retrieved from .git automatically.
-# Having the git information can cause a lot of rebuilds during development.
-# Note: If this attribute is not explicitly set (e.g. if left commented out) it
-# will default to true if channel = "dev", but will default to false otherwise.
-ignore-git = true
-
-# When creating source tarballs whether or not to create a source tarball.
dist-src = false
-
-# Whether to also run the Miri tests suite when running tests.
-# As a side-effect also generates MIR for all libraries.
-test-miri = false
-
-# After building or testing extended tools (e.g. clippy and rustfmt), append the
-# result (broken, compiling, testing) into this JSON file.
-#save-toolstates = "/path/to/toolstates.json"
-
-# This is an array of the codegen backends that will be compiled for the rustc
-# that's being compiled. The default is to only build the LLVM codegen backend,
-# but you can also optionally enable the "emscripten" backend for asm.js or
-# make this an empty array (but that probably won't get too far in the
-# bootstrap)
-codegen-backends = ["llvm"]
-
-# This is the name of the directory in which codegen backends will get installed
-codegen-backends-dir = "codegen-backends"
-
-# Flag indicating whether `libstd` calls an imported function to handle basic IO
-# when targeting WebAssembly. Enable this to debug tests for the `wasm32-unknown-unknown`
-# target, as without this option the test output will not be captured.
-wasm-syscall = false
-
-# Indicates whether LLD will be compiled and made available in the sysroot for
-# rustc to execute.
lld = true
-
-# Indicates whether some LLVM tools, like llvm-objdump, will be made available in the
-# sysroot.
-llvm-tools = false
-
-# Indicates whether LLDB will be made available in the sysroot.
-# This is only built if LLVM is also being built.
-lldb = false
-
-# Whether to deny warnings in crates
deny-warnings = false
-# Print backtrace on internal compiler errors during bootstrap
-backtrace-on-ice = false
-
-# Whether to verify generated LLVM IR
-verify-llvm-ir = false
-
-# Map all debuginfo paths for libstd and crates to `/rust/$sha/$crate/...`,
-# generally only set for releases
-remap-debuginfo = false
-
-# Link the compiler against `jemalloc`, where on Linux and OSX it should
-# override the default allocator for rustc and LLVM.
-jemalloc = false
-
-# Run tests in various test suites with the "nll compare mode" in addition to
-# running the tests in normal mode. Largely only used on CI and during local
-# development of NLL
-test-compare-mode = false
-
-# =============================================================================
-# Options for specific targets
-#
-# Each of the following options is scoped to the specific target triple in
-# question and is used for determining how to compile each target.
-# =============================================================================
[target.x86_64-unknown-linux-gnu]
-
-# C compiler to be used to compiler C code. Note that the
-# default value is platform specific, and if not specified it may also depend on
-# what platform is crossing to what platform.
cc = "cc"
-
-# C++ compiler to be used to compiler C++ code (e.g. LLVM and our LLVM shims).
-# This is only used for host targets.
cxx = "c++"
-
-# Archiver to be used to assemble static libraries compiled from C/C++ code.
-# Note: an absolute path should be used, otherwise LLVM build will break.
ar = "ar"
-
-# Ranlib to be used to assemble static libraries compiled from C/C++ code.
-# Note: an absolute path should be used, otherwise LLVM build will break.
ranlib = "ranlib"
-
-# Linker to be used to link Rust code. Note that the
-# default value is platform specific, and if not specified it may also depend on
-# what platform is crossing to what platform.
linker = "cc"
-# Path to the `llvm-config` binary of the installation of a custom LLVM to link
-# against. Note that if this is specified we don't compile LLVM at all for this
-# target.
-#llvm-config = "../path/to/llvm/root/bin/llvm-config"
-
-# Normally the build system can find LLVM's FileCheck utility, but if
-# not, you can specify an explicit file name for it.
-#llvm-filecheck = "/path/to/FileCheck"
-
-# If this target is for Android, this option will be required to specify where
-# the NDK for the target lives. This is used to find the C compiler to link and
-# build native code.
-#android-ndk = "/path/to/ndk"
-
-# Force static or dynamic linkage of the standard library for this target. If
-# this target is a host for rustc, this will also affect the linkage of the
-# compiler itself. This is useful for building rustc on targets that normally
-# only use static libraries. If unset, the target's default linkage is used.
-crt-static = false
-
-# The root location of the MUSL installation directory. The library directory
-# will also need to contain libunwind.a for an unwinding implementation. Note
-# that this option only makes sense for MUSL targets that produce statically
-# linked binaries
-#musl-root = "..."
-
-# Used in testing for configuring where the QEMU images are located, you
-# probably don't want to use this.
-#qemu-rootfs = "..."
-
[target.i686-pc-windows-gnu]
-
-# C compiler to be used to compiler C code. Note that the
-# default value is platform specific, and if not specified it may also depend on
-# what platform is crossing to what platform.
cc = "i686-w64-mingw32-cc"
-
-# C++ compiler to be used to compiler C++ code (e.g. LLVM and our LLVM shims).
-# This is only used for host targets.
cxx = "i686-w64-mingw32-c++"
-
-# Archiver to be used to assemble static libraries compiled from C/C++ code.
-# Note: an absolute path should be used, otherwise LLVM build will break.
ar = "i686-w64-mingw32-ar"
-
-# Ranlib to be used to assemble static libraries compiled from C/C++ code.
-# Note: an absolute path should be used, otherwise LLVM build will break.
ranlib = "i686-w64-mingw32-ranlib"
-
-# Linker to be used to link Rust code. Note that the
-# default value is platform specific, and if not specified it may also depend on
-# what platform is crossing to what platform.
linker = "i686-w64-mingw32-cc"
-
-# Path to the `llvm-config` binary of the installation of a custom LLVM to link
-# against. Note that if this is specified we don't compile LLVM at all for this
-# target.
-#llvm-config = "../path/to/llvm/root/bin/llvm-config"
-
-# Normally the build system can find LLVM's FileCheck utility, but if
-# not, you can specify an explicit file name for it.
-#llvm-filecheck = "/path/to/FileCheck"
-
-# If this target is for Android, this option will be required to specify where
-# the NDK for the target lives. This is used to find the C compiler to link and
-# build native code.
-#android-ndk = "/path/to/ndk"
-
-# Force static or dynamic linkage of the standard library for this target. If
-# this target is a host for rustc, this will also affect the linkage of the
-# compiler itself. This is useful for building rustc on targets that normally
-# only use static libraries. If unset, the target's default linkage is used.
crt-static = true
-# The root location of the MUSL installation directory. The library directory
-# will also need to contain libunwind.a for an unwinding implementation. Note
-# that this option only makes sense for MUSL targets that produce statically
-# linked binaries
-#musl-root = "..."
-
-# Used in testing for configuring where the QEMU images are located, you
-# probably don't want to use this.
-#qemu-rootfs = "..."
-
[target.x86_64-pc-windows-gnu]
-
-# C compiler to be used to compiler C code. Note that the
-# default value is platform specific, and if not specified it may also depend on
-# what platform is crossing to what platform.
cc = "x86_64-w64-mingw32-cc"
-
-# C++ compiler to be used to compiler C++ code (e.g. LLVM and our LLVM shims).
-# This is only used for host targets.
cxx = "x86_64-w64-mingw32-c++"
-
-# Archiver to be used to assemble static libraries compiled from C/C++ code.
-# Note: an absolute path should be used, otherwise LLVM build will break.
ar = "x86_64-w64-mingw32-ar"
-
-# Ranlib to be used to assemble static libraries compiled from C/C++ code.
-# Note: an absolute path should be used, otherwise LLVM build will break.
ranlib = "x86_64-w64-mingw32-ranlib"
-
-# Linker to be used to link Rust code. Note that the
-# default value is platform specific, and if not specified it may also depend on
-# what platform is crossing to what platform.
linker = "x86_64-w64-mingw32-cc"
-
-# Path to the `llvm-config` binary of the installation of a custom LLVM to link
-# against. Note that if this is specified we don't compile LLVM at all for this
-# target.
-#llvm-config = "../path/to/llvm/root/bin/llvm-config"
-
-# Normally the build system can find LLVM's FileCheck utility, but if
-# not, you can specify an explicit file name for it.
-#llvm-filecheck = "/path/to/FileCheck"
-
-# If this target is for Android, this option will be required to specify where
-# the NDK for the target lives. This is used to find the C compiler to link and
-# build native code.
-#android-ndk = "/path/to/ndk"
-
-# Force static or dynamic linkage of the standard library for this target. If
-# this target is a host for rustc, this will also affect the linkage of the
-# compiler itself. This is useful for building rustc on targets that normally
-# only use static libraries. If unset, the target's default linkage is used.
crt-static = true
-# The root location of the MUSL installation directory. The library directory
-# will also need to contain libunwind.a for an unwinding implementation. Note
-# that this option only makes sense for MUSL targets that produce statically
-# linked binaries
-#musl-root = "..."
-
-# Used in testing for configuring where the QEMU images are located, you
-# probably don't want to use this.
-#qemu-rootfs = "..."
-
-# =============================================================================
-# Distribution options
-#
-# These options are related to distribution, mostly for the Rust project itself.
-# You probably won't need to concern yourself with any of these options
-# =============================================================================
[dist]
-
-# This is the folder of artifacts that the build system will sign. All files in
-# this directory will be signed with the default gpg key using the system `gpg`
-# binary. The `asc` and `sha256` files will all be output into the standard dist
-# output folder (currently `build/dist`)
-#
-# This folder should be populated ahead of time before the build system is
-# invoked.
-#sign-folder = "path/to/folder/to/sign"
-
-# This is a file which contains the password of the default gpg key. This will
-# be passed to `gpg` down the road when signing all files in `sign-folder`
-# above. This should be stored in plaintext.
-#gpg-password-file = "path/to/gpg/password"
-
-# The remote address that all artifacts will eventually be uploaded to. The
-# build system generates manifests which will point to these urls, and for the
-# manifests to be correct they'll have to have the right URLs encoded.
-#
-# Note that this address should not contain a trailing slash as file names will
-# be appended to it.
-#upload-addr = "https://example.com/folder"
-
-# Whether to build a plain source tarball to upload
-# We disable that on Windows not to override the one already uploaded on S3
-# as the one built on Windows will contain backslashes in paths causing problems
-# on linux
-#src-tarball = true
-#
-
-# Whether to allow failures when building tools
-#missing-tools = false
+compression-formats = ["gz"]