mirror of
https://abf.rosa.ru/djam/rust.git
synced 2025-02-23 18:02:53 +00:00
commit
c3c3b6a14f
3 changed files with 42 additions and 4 deletions
2
.abf.yml
2
.abf.yml
|
@ -1,4 +1,4 @@
|
|||
sources:
|
||||
rust-1.33.0-i686-unknown-linux-gnu.tar.xz: 9fbd40945dbf0445ae6ba67e137f5a121182fbd8
|
||||
rust-1.33.0-x86_64-unknown-linux-gnu.tar.xz: 72762436424bd4d727023922254fe9af857b2a20
|
||||
rustc-1.34.0-src.tar.xz: eb1d36fa88b9f4fb3de42753bc9c4198c91d3f2d
|
||||
rustc-1.34.1-src.tar.xz: 7a377dd8a5febc99ba23e5968503f9eefc905088
|
||||
|
|
29
0001-Limit-internalization-in-LLVM-8-ThinLTO.patch
Normal file
29
0001-Limit-internalization-in-LLVM-8-ThinLTO.patch
Normal file
|
@ -0,0 +1,29 @@
|
|||
From b4131e297e18fde119f6f461b3e622218166b009 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Stone <jistone@redhat.com>
|
||||
Date: Fri, 26 Apr 2019 08:58:14 -0700
|
||||
Subject: [PATCH] Limit internalization in LLVM 8 ThinLTO
|
||||
|
||||
---
|
||||
src/rustllvm/PassWrapper.cpp | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp
|
||||
index 319c66a21f17..0ebef82d3768 100644
|
||||
--- a/src/rustllvm/PassWrapper.cpp
|
||||
+++ b/src/rustllvm/PassWrapper.cpp
|
||||
@@ -873,8 +873,11 @@ LLVMRustCreateThinLTOData(LLVMRustThinLTOModule *modules,
|
||||
return PrevailingType::Unknown;
|
||||
};
|
||||
#if LLVM_VERSION_GE(8, 0)
|
||||
+ // We don't have a complete picture in our use of ThinLTO, just our immediate
|
||||
+ // crate, so we need `ImportEnabled = false` to limit internalization.
|
||||
+ // Otherwise, we sometimes lose `static` values -- see #60184.
|
||||
computeDeadSymbolsWithConstProp(Ret->Index, Ret->GUIDPreservedSymbols,
|
||||
- deadIsPrevailing, /* ImportEnabled = */ true);
|
||||
+ deadIsPrevailing, /* ImportEnabled = */ false);
|
||||
#else
|
||||
computeDeadSymbols(Ret->Index, Ret->GUIDPreservedSymbols, deadIsPrevailing);
|
||||
#endif
|
||||
--
|
||||
2.20.1
|
||||
|
13
rust.spec
13
rust.spec
|
@ -61,7 +61,7 @@
|
|||
|
||||
Summary: The Rust Programming Language
|
||||
Name: rust
|
||||
Version: 1.34.0
|
||||
Version: 1.34.1
|
||||
Release: 1
|
||||
License: (ASL 2.0 or MIT) and (BSD and MIT)
|
||||
Group: Development/Rust
|
||||
|
@ -81,6 +81,10 @@ Patch1: rust-pr57840-llvm7-debuginfo-variants.patch
|
|||
# Upstream patch url: https://github.com/rust-lang/rust/pull/58897
|
||||
Patch2: 1.34.0-doc-build-fix.patch
|
||||
%endif
|
||||
%if %{mdkver} > 201610
|
||||
# https://github.com/rust-lang/rust/pull/60313
|
||||
Patch3: 0001-Limit-internalization-in-LLVM-8-ThinLTO.patch
|
||||
%endif
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: curl
|
||||
BuildRequires: pkgconfig(libcurl)
|
||||
|
@ -112,7 +116,6 @@ Provides: rustc = %{version}-%{release}
|
|||
# Always require our exact standard library
|
||||
Requires: %{name}-std-static = %{version}-%{release}
|
||||
|
||||
|
||||
%description
|
||||
Rust is a systems programming language that runs blazingly fast, prevents
|
||||
segfaults, and guarantees thread safety.
|
||||
|
@ -354,6 +357,9 @@ test -f '%{local_rust_root}/bin/rustc'
|
|||
%if %{with bootstrap}
|
||||
%patch2 -p1
|
||||
%endif
|
||||
%if %{mdkver} > 201610
|
||||
%patch3 -p
|
||||
%endif
|
||||
|
||||
# python3
|
||||
sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure
|
||||
|
@ -413,6 +419,9 @@ export RUSTFLAGS="%{rustflags}"
|
|||
--enable-extended \
|
||||
--enable-vendor \
|
||||
--release-channel=stable \
|
||||
%if %{mdkver} > 201610
|
||||
--set rust.codegen-units-std=1 \
|
||||
%endif
|
||||
--disable-debuginfo \
|
||||
--disable-debuginfo-only-std \
|
||||
--disable-debuginfo-tools \
|
||||
|
|
Loading…
Add table
Reference in a new issue