diff options
-rw-r--r-- | .SRCINFO | 38 | ||||
-rw-r--r-- | PKGBUILD | 55 | ||||
-rw-r--r-- | mingw-config.toml | 597 |
3 files changed, 57 insertions, 633 deletions
@@ -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 - @@ -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"] |