commit
d1b208b7b0
@ -0,0 +1,2 @@
|
|||||||
|
SOURCES/rustc-1.62.1-src.tar.xz
|
||||||
|
SOURCES/wasi-libc-9886d3d6200fcc3726329966860fc058707406cd.tar.gz
|
@ -0,0 +1,2 @@
|
|||||||
|
a7e0c2aa676d343f5980d37fd50ffaed9a35d458 SOURCES/rustc-1.62.1-src.tar.xz
|
||||||
|
22625595caa645e86282b79b5564abb40250d244 SOURCES/wasi-libc-9886d3d6200fcc3726329966860fc058707406cd.tar.gz
|
@ -0,0 +1,26 @@
|
|||||||
|
From b521511174b1a08dddfac243604d649b71cc7386 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ivan Mironov <mironov.ivan@gmail.com>
|
||||||
|
Date: Sun, 8 Dec 2019 17:23:08 +0500
|
||||||
|
Subject: [PATCH] Use lld provided by system for wasm
|
||||||
|
|
||||||
|
---
|
||||||
|
compiler/rustc_target/src/spec/wasm_base.rs | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/compiler/rustc_target/src/spec/wasm_base.rs b/compiler/rustc_target/src/spec/wasm_base.rs
|
||||||
|
index de7b7374af31..eebbe616e9b6 100644
|
||||||
|
--- a/compiler/rustc_target/src/spec/wasm_base.rs
|
||||||
|
+++ b/compiler/rustc_target/src/spec/wasm_base.rs
|
||||||
|
@@ -99,8 +99,7 @@ pub fn options() -> TargetOptions {
|
||||||
|
// arguments just yet
|
||||||
|
limit_rdylib_exports: false,
|
||||||
|
|
||||||
|
- // we use the LLD shipped with the Rust toolchain by default
|
||||||
|
- linker: Some("rust-lld".into()),
|
||||||
|
+ linker: Some("lld".into()),
|
||||||
|
lld_flavor: LldFlavor::Wasm,
|
||||||
|
linker_is_gnu: false,
|
||||||
|
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
@ -0,0 +1,51 @@
|
|||||||
|
# Explicitly use bindir tools, in case others are in the PATH,
|
||||||
|
# like the rustup shims in a user's ~/.cargo/bin/.
|
||||||
|
#
|
||||||
|
# Since cargo 1.31, install only uses $CARGO_HOME/config, ignoring $PWD.
|
||||||
|
# https://github.com/rust-lang/cargo/issues/6397
|
||||||
|
# But we can set CARGO_HOME locally, which is a good idea anyway to make sure
|
||||||
|
# it never writes to ~/.cargo during rpmbuild.
|
||||||
|
%__cargo %{_bindir}/env CARGO_HOME=.cargo %{_bindir}/cargo
|
||||||
|
%__rustc %{_bindir}/rustc
|
||||||
|
%__rustdoc %{_bindir}/rustdoc
|
||||||
|
|
||||||
|
# Enable optimization, debuginfo, and link hardening.
|
||||||
|
%__global_rustflags -Copt-level=3 -Cdebuginfo=2 -Clink-arg=-Wl,-z,relro,-z,now
|
||||||
|
|
||||||
|
%__global_rustflags_toml [%{lua:
|
||||||
|
for arg in string.gmatch(rpm.expand("%{__global_rustflags}"), "%S+") do
|
||||||
|
print('"' .. arg .. '", ')
|
||||||
|
end}]
|
||||||
|
|
||||||
|
%cargo_prep(V:) (\
|
||||||
|
%{__mkdir} -p .cargo \
|
||||||
|
cat > .cargo/config << EOF \
|
||||||
|
[build]\
|
||||||
|
rustc = "%{__rustc}"\
|
||||||
|
rustdoc = "%{__rustdoc}"\
|
||||||
|
rustflags = %{__global_rustflags_toml}\
|
||||||
|
\
|
||||||
|
[install]\
|
||||||
|
root = "%{buildroot}%{_prefix}"\
|
||||||
|
\
|
||||||
|
[term]\
|
||||||
|
verbose = true\
|
||||||
|
EOF\
|
||||||
|
%if 0%{-V:1}\
|
||||||
|
%{__tar} -xoaf %{S:%{-V*}}\
|
||||||
|
cat >> .cargo/config << EOF \
|
||||||
|
\
|
||||||
|
[source.crates-io]\
|
||||||
|
replace-with = "vendored-sources"\
|
||||||
|
\
|
||||||
|
[source.vendored-sources]\
|
||||||
|
directory = "./vendor"\
|
||||||
|
EOF\
|
||||||
|
%endif\
|
||||||
|
)
|
||||||
|
|
||||||
|
%cargo_build %__cargo build --release %{?_smp_mflags}
|
||||||
|
|
||||||
|
%cargo_test %__cargo test --release %{?_smp_mflags} --no-fail-fast
|
||||||
|
|
||||||
|
%cargo_install %__cargo install --no-track --path .
|
@ -0,0 +1,44 @@
|
|||||||
|
diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs
|
||||||
|
index 638b2a7b5a9f..79d4ecf4cb91 100644
|
||||||
|
--- a/compiler/rustc_codegen_ssa/src/back/link.rs
|
||||||
|
+++ b/compiler/rustc_codegen_ssa/src/back/link.rs
|
||||||
|
@@ -763,7 +763,7 @@ fn link_natively<'a, B: ArchiveBuilder<'a>>(
|
||||||
|
&& cmd.get_args().iter().any(|e| e.to_string_lossy() == "-no-pie")
|
||||||
|
{
|
||||||
|
info!("linker output: {:?}", out);
|
||||||
|
- warn!("Linker does not support -no-pie command line option. Retrying without.");
|
||||||
|
+ info!("Linker does not support -no-pie command line option. Retrying without.");
|
||||||
|
for arg in cmd.take_args() {
|
||||||
|
if arg.to_string_lossy() != "-no-pie" {
|
||||||
|
cmd.arg(arg);
|
||||||
|
@@ -782,7 +782,7 @@ fn link_natively<'a, B: ArchiveBuilder<'a>>(
|
||||||
|
&& cmd.get_args().iter().any(|e| e.to_string_lossy() == "-static-pie")
|
||||||
|
{
|
||||||
|
info!("linker output: {:?}", out);
|
||||||
|
- warn!(
|
||||||
|
+ info!(
|
||||||
|
"Linker does not support -static-pie command line option. Retrying with -static instead."
|
||||||
|
);
|
||||||
|
// Mirror `add_(pre,post)_link_objects` to replace CRT objects.
|
||||||
|
@@ -1507,15 +1507,14 @@ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
|
}
|
||||||
|
|
||||||
|
fn link_output_kind(sess: &Session, crate_type: CrateType) -> LinkOutputKind {
|
||||||
|
- let kind = match (crate_type, sess.crt_static(Some(crate_type)), sess.relocation_model()) {
|
||||||
|
+ // Only use PIE if explicitly specified.
|
||||||
|
+ let explicit_pic =
|
||||||
|
+ matches!(sess.opts.cg.relocation_model, Some(RelocModel::Pic | RelocModel::Pie));
|
||||||
|
+ let kind = match (crate_type, sess.crt_static(Some(crate_type)), explicit_pic) {
|
||||||
|
(CrateType::Executable, _, _) if sess.is_wasi_reactor() => LinkOutputKind::WasiReactorExe,
|
||||||
|
- (CrateType::Executable, false, RelocModel::Pic | RelocModel::Pie) => {
|
||||||
|
- LinkOutputKind::DynamicPicExe
|
||||||
|
- }
|
||||||
|
+ (CrateType::Executable, false, true) => LinkOutputKind::DynamicPicExe,
|
||||||
|
(CrateType::Executable, false, _) => LinkOutputKind::DynamicNoPicExe,
|
||||||
|
- (CrateType::Executable, true, RelocModel::Pic | RelocModel::Pie) => {
|
||||||
|
- LinkOutputKind::StaticPicExe
|
||||||
|
- }
|
||||||
|
+ (CrateType::Executable, true, true) => LinkOutputKind::StaticPicExe,
|
||||||
|
(CrateType::Executable, true, _) => LinkOutputKind::StaticNoPicExe,
|
||||||
|
(_, true, _) => LinkOutputKind::StaticDylib,
|
||||||
|
(_, false, _) => LinkOutputKind::DynamicDylib,
|
@ -0,0 +1,42 @@
|
|||||||
|
--- rustc-1.59.0-src/Cargo.lock.orig 2022-02-21 18:48:37.000000000 -0800
|
||||||
|
+++ rustc-1.59.0-src/Cargo.lock 2022-02-22 10:16:10.381962862 -0800
|
||||||
|
@@ -1935,7 +1935,6 @@
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"libc",
|
||||||
|
- "libssh2-sys",
|
||||||
|
"libz-sys",
|
||||||
|
"openssl-sys",
|
||||||
|
"pkg-config",
|
||||||
|
@@ -1968,20 +1967,6 @@
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
-name = "libssh2-sys"
|
||||||
|
-version = "0.2.23"
|
||||||
|
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
-checksum = "b094a36eb4b8b8c8a7b4b8ae43b2944502be3e59cd87687595cf6b0a71b3f4ca"
|
||||||
|
-dependencies = [
|
||||||
|
- "cc",
|
||||||
|
- "libc",
|
||||||
|
- "libz-sys",
|
||||||
|
- "openssl-sys",
|
||||||
|
- "pkg-config",
|
||||||
|
- "vcpkg",
|
||||||
|
-]
|
||||||
|
-
|
||||||
|
-[[package]]
|
||||||
|
name = "libz-sys"
|
||||||
|
version = "1.1.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
--- rustc-1.59.0-src/vendor/git2/Cargo.toml.orig 2022-02-21 20:14:37.000000000 -0800
|
||||||
|
+++ rustc-1.59.0-src/vendor/git2/Cargo.toml 2022-02-22 10:12:23.021772490 -0800
|
||||||
|
@@ -51,7 +51,7 @@
|
||||||
|
version = "0.1.39"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
-default = ["ssh", "https", "ssh_key_from_memory"]
|
||||||
|
+default = ["https"]
|
||||||
|
https = ["libgit2-sys/https", "openssl-sys", "openssl-probe"]
|
||||||
|
ssh = ["libgit2-sys/ssh"]
|
||||||
|
ssh_key_from_memory = ["libgit2-sys/ssh_key_from_memory"]
|
@ -0,0 +1,18 @@
|
|||||||
|
--- rustc-1.61.0-src/src/etc/rust-gdb.orig 2022-05-17 18:29:36.000000000 -0700
|
||||||
|
+++ rustc-1.61.0-src/src/etc/rust-gdb 2022-05-18 11:18:13.732709661 -0700
|
||||||
|
@@ -14,6 +14,9 @@ fi
|
||||||
|
RUSTC_SYSROOT="$("$RUSTC" --print=sysroot)"
|
||||||
|
GDB_PYTHON_MODULE_DIRECTORY="$RUSTC_SYSROOT/lib/rustlib/etc"
|
||||||
|
|
||||||
|
+RUST_STD_BUILD="@BUILDDIR@/library/"
|
||||||
|
+RUST_STD_SRC="$RUSTC_SYSROOT/lib/rustlib/src/rust/library/"
|
||||||
|
+
|
||||||
|
# Run GDB with the additional arguments that load the pretty printers
|
||||||
|
# Set the environment variable `RUST_GDB` to overwrite the call to a
|
||||||
|
# different/specific command (defaults to `gdb`).
|
||||||
|
@@ -21,4 +24,5 @@ RUST_GDB="${RUST_GDB:-gdb}"
|
||||||
|
PYTHONPATH="$PYTHONPATH:$GDB_PYTHON_MODULE_DIRECTORY" exec ${RUST_GDB} \
|
||||||
|
--directory="$GDB_PYTHON_MODULE_DIRECTORY" \
|
||||||
|
-iex "add-auto-load-safe-path $GDB_PYTHON_MODULE_DIRECTORY" \
|
||||||
|
+ -iex "set substitute-path $RUST_STD_BUILD $RUST_STD_SRC" \
|
||||||
|
"$@"
|
@ -0,0 +1,90 @@
|
|||||||
|
--- rustc-beta-src/Cargo.lock.orig 2022-06-22 14:03:26.309745526 -0700
|
||||||
|
+++ rustc-beta-src/Cargo.lock 2022-06-22 14:03:26.310745506 -0700
|
||||||
|
@@ -990,7 +990,6 @@
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"libc",
|
||||||
|
- "libnghttp2-sys",
|
||||||
|
"libz-sys",
|
||||||
|
"openssl-sys",
|
||||||
|
"pkg-config",
|
||||||
|
@@ -2101,16 +2100,6 @@
|
||||||
|
checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
-name = "libnghttp2-sys"
|
||||||
|
-version = "0.1.4+1.41.0"
|
||||||
|
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
-checksum = "03624ec6df166e79e139a2310ca213283d6b3c30810c54844f307086d4488df1"
|
||||||
|
-dependencies = [
|
||||||
|
- "cc",
|
||||||
|
- "libc",
|
||||||
|
-]
|
||||||
|
-
|
||||||
|
-[[package]]
|
||||||
|
name = "libz-sys"
|
||||||
|
version = "1.1.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2022-06-22 14:03:26.310745506 -0700
|
||||||
|
+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2022-06-22 14:04:22.058596881 -0700
|
||||||
|
@@ -22,7 +22,7 @@
|
||||||
|
cargo-util = { path = "crates/cargo-util", version = "0.1.3" }
|
||||||
|
crates-io = { path = "crates/crates-io", version = "0.34.0" }
|
||||||
|
crossbeam-utils = "0.8"
|
||||||
|
-curl = { version = "0.4.41", features = ["http2"] }
|
||||||
|
+curl = { version = "0.4.41", features = [] }
|
||||||
|
curl-sys = "0.4.50"
|
||||||
|
env_logger = "0.9.0"
|
||||||
|
pretty_env_logger = { version = "0.4", optional = true }
|
||||||
|
--- rustc-beta-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs.orig 2022-06-13 07:34:54.000000000 -0700
|
||||||
|
+++ rustc-beta-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs 2022-06-22 14:03:26.311745485 -0700
|
||||||
|
@@ -183,16 +183,8 @@
|
||||||
|
}
|
||||||
|
self.fetch_started = true;
|
||||||
|
|
||||||
|
- // We've enabled the `http2` feature of `curl` in Cargo, so treat
|
||||||
|
- // failures here as fatal as it would indicate a build-time problem.
|
||||||
|
- self.multiplexing = self.config.http_config()?.multiplexing.unwrap_or(true);
|
||||||
|
-
|
||||||
|
- self.multi
|
||||||
|
- .pipelining(false, self.multiplexing)
|
||||||
|
- .with_context(|| "failed to enable multiplexing/pipelining in curl")?;
|
||||||
|
-
|
||||||
|
- // let's not flood the server with connections
|
||||||
|
- self.multi.set_max_host_connections(2)?;
|
||||||
|
+ // Multiplexing is disabled because the system libcurl doesn't support it.
|
||||||
|
+ self.multiplexing = false;
|
||||||
|
|
||||||
|
self.config
|
||||||
|
.shell()
|
||||||
|
--- rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs.orig 2022-06-13 07:34:54.000000000 -0700
|
||||||
|
+++ rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs 2022-06-22 14:03:26.311745485 -0700
|
||||||
|
@@ -403,16 +403,9 @@
|
||||||
|
sources: SourceMap<'cfg>,
|
||||||
|
config: &'cfg Config,
|
||||||
|
) -> CargoResult<PackageSet<'cfg>> {
|
||||||
|
- // We've enabled the `http2` feature of `curl` in Cargo, so treat
|
||||||
|
- // failures here as fatal as it would indicate a build-time problem.
|
||||||
|
- let mut multi = Multi::new();
|
||||||
|
- let multiplexing = config.http_config()?.multiplexing.unwrap_or(true);
|
||||||
|
- multi
|
||||||
|
- .pipelining(false, multiplexing)
|
||||||
|
- .with_context(|| "failed to enable multiplexing/pipelining in curl")?;
|
||||||
|
-
|
||||||
|
- // let's not flood crates.io with connections
|
||||||
|
- multi.set_max_host_connections(2)?;
|
||||||
|
+ // Multiplexing is disabled because the system libcurl doesn't support it.
|
||||||
|
+ let multi = Multi::new();
|
||||||
|
+ let multiplexing = false;
|
||||||
|
|
||||||
|
Ok(PackageSet {
|
||||||
|
packages: package_ids
|
||||||
|
@@ -658,7 +651,7 @@
|
||||||
|
macro_rules! try_old_curl {
|
||||||
|
($e:expr, $msg:expr) => {
|
||||||
|
let result = $e;
|
||||||
|
- if cfg!(target_os = "macos") {
|
||||||
|
+ if cfg!(any(target_os = "linux", target_os = "macos")) {
|
||||||
|
if let Err(e) = result {
|
||||||
|
warn!("ignoring libcurl {} error: {}", $msg, e);
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue