Merge branch 'master' into beta
This commit is contained in:
commit
9f8aa3b200
|
@ -57,3 +57,11 @@
|
|||
/rust-1.17.0-powerpc64-unknown-linux-gnu.tar.gz
|
||||
/rust-1.17.0-s390x-unknown-linux-gnu.tar.gz
|
||||
/rust-1.17.0-x86_64-unknown-linux-gnu.tar.gz
|
||||
/rustc-1.19.0-src.tar.xz
|
||||
/rust-1.18.0-aarch64-unknown-linux-gnu.tar.gz
|
||||
/rust-1.18.0-armv7-unknown-linux-gnueabihf.tar.gz
|
||||
/rust-1.18.0-i686-unknown-linux-gnu.tar.gz
|
||||
/rust-1.18.0-powerpc64le-unknown-linux-gnu.tar.gz
|
||||
/rust-1.18.0-powerpc64-unknown-linux-gnu.tar.gz
|
||||
/rust-1.18.0-s390x-unknown-linux-gnu.tar.gz
|
||||
/rust-1.18.0-x86_64-unknown-linux-gnu.tar.gz
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
diff --git a/configure b/configure
|
||||
index 505767cede55..4074a1e2f765 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -753,8 +753,8 @@ case "$CFG_RELEASE_CHANNEL" in
|
||||
*-pc-windows-gnu)
|
||||
;;
|
||||
*)
|
||||
- CFG_ENABLE_DEBUGINFO_LINES=1
|
||||
- CFG_ENABLE_DEBUGINFO_ONLY_STD=1
|
||||
+ # CFG_ENABLE_DEBUGINFO_LINES=1
|
||||
+ # CFG_ENABLE_DEBUGINFO_ONLY_STD=1
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -765,8 +765,8 @@ case "$CFG_RELEASE_CHANNEL" in
|
||||
*-pc-windows-gnu)
|
||||
;;
|
||||
*)
|
||||
- CFG_ENABLE_DEBUGINFO_LINES=1
|
||||
- CFG_ENABLE_DEBUGINFO_ONLY_STD=1
|
||||
+ # CFG_ENABLE_DEBUGINFO_LINES=1
|
||||
+ # CFG_ENABLE_DEBUGINFO_ONLY_STD=1
|
||||
;;
|
||||
esac
|
||||
;;
|
|
@ -0,0 +1,80 @@
|
|||
From 1d5e3cd80b66a3abd274107e75854476c603617d Mon Sep 17 00:00:00 2001
|
||||
From: Josh Stone <jistone@redhat.com>
|
||||
Date: Wed, 5 Jul 2017 12:03:17 -0700
|
||||
Subject: [PATCH] Skip the main thread's manual stack guard on Linux
|
||||
|
||||
Linux doesn't allocate the whole stack right away, and the kernel has
|
||||
its own stack-guard mechanism to fault when growing too close to an
|
||||
existing mapping. If we map our own guard, then the kernel starts
|
||||
enforcing a rather large gap above that, rendering much of the possible
|
||||
stack space useless.
|
||||
|
||||
Instead, we'll just note where we expect rlimit to start faulting, so
|
||||
our handler can report "stack overflow", and trust that the kernel's own
|
||||
stack guard will work.
|
||||
|
||||
Fixes #43052.
|
||||
---
|
||||
src/libstd/sys/unix/thread.rs | 44 ++++++++++++++++++++++++++++---------------
|
||||
1 file changed, 29 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/src/libstd/sys/unix/thread.rs b/src/libstd/sys/unix/thread.rs
|
||||
index 1642baa34d63..15747746611c 100644
|
||||
--- a/src/libstd/sys/unix/thread.rs
|
||||
+++ b/src/libstd/sys/unix/thread.rs
|
||||
@@ -264,23 +264,37 @@ pub mod guard {
|
||||
as *mut libc::c_void;
|
||||
}
|
||||
|
||||
- // Rellocate the last page of the stack.
|
||||
- // This ensures SIGBUS will be raised on
|
||||
- // stack overflow.
|
||||
- let result = mmap(stackaddr, psize, PROT_NONE,
|
||||
- MAP_PRIVATE | MAP_ANON | MAP_FIXED, -1, 0);
|
||||
-
|
||||
- if result != stackaddr || result == MAP_FAILED {
|
||||
- panic!("failed to allocate a guard page");
|
||||
- }
|
||||
-
|
||||
- let offset = if cfg!(any(target_os = "linux", target_os = "freebsd")) {
|
||||
- 2
|
||||
+ if cfg!(target_os = "linux") {
|
||||
+ // Linux doesn't allocate the whole stack right away, and
|
||||
+ // the kernel has its own stack-guard mechanism to fault
|
||||
+ // when growing too close to an existing mapping. If we map
|
||||
+ // our own guard, then the kernel starts enforcing a rather
|
||||
+ // large gap above that, rendering much of the possible
|
||||
+ // stack space useless. See #43052.
|
||||
+ //
|
||||
+ // Instead, we'll just note where we expect rlimit to start
|
||||
+ // faulting, so our handler can report "stack overflow", and
|
||||
+ // trust that the kernel's own stack guard will work.
|
||||
+ Some(stackaddr as usize)
|
||||
} else {
|
||||
- 1
|
||||
- };
|
||||
+ // Reallocate the last page of the stack.
|
||||
+ // This ensures SIGBUS will be raised on
|
||||
+ // stack overflow.
|
||||
+ let result = mmap(stackaddr, psize, PROT_NONE,
|
||||
+ MAP_PRIVATE | MAP_ANON | MAP_FIXED, -1, 0);
|
||||
+
|
||||
+ if result != stackaddr || result == MAP_FAILED {
|
||||
+ panic!("failed to allocate a guard page");
|
||||
+ }
|
||||
|
||||
- Some(stackaddr as usize + offset * psize)
|
||||
+ let offset = if cfg!(target_os = "freebsd") {
|
||||
+ 2
|
||||
+ } else {
|
||||
+ 1
|
||||
+ };
|
||||
+
|
||||
+ Some(stackaddr as usize + offset * psize)
|
||||
+ }
|
||||
}
|
||||
|
||||
#[cfg(target_os = "solaris")]
|
||||
--
|
||||
2.13.3
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
From 253ff9c24f0e11323ae4f173cc620721fb322beb Mon Sep 17 00:00:00 2001
|
||||
From: Ximin Luo <infinity0@pwned.gg>
|
||||
Date: Mon, 17 Jul 2017 22:29:09 +0200
|
||||
Subject: [PATCH] configure: allow distros to disable debuginfo-only-std
|
||||
|
||||
---
|
||||
configure | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index af59d5b0bb88..084f5bfdedbc 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -558,8 +558,8 @@ case "$CFG_RELEASE_CHANNEL" in
|
||||
*-pc-windows-gnu)
|
||||
;;
|
||||
*)
|
||||
- CFG_ENABLE_DEBUGINFO_LINES=1
|
||||
- CFG_ENABLE_DEBUGINFO_ONLY_STD=1
|
||||
+ enable_if_not_disabled debuginfo-lines
|
||||
+ enable_if_not_disabled debuginfo-only-std
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -570,8 +570,8 @@ case "$CFG_RELEASE_CHANNEL" in
|
||||
*-pc-windows-gnu)
|
||||
;;
|
||||
*)
|
||||
- CFG_ENABLE_DEBUGINFO_LINES=1
|
||||
- CFG_ENABLE_DEBUGINFO_ONLY_STD=1
|
||||
+ enable_if_not_disabled debuginfo-lines
|
||||
+ enable_if_not_disabled debuginfo-only-std
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
--
|
||||
2.13.3
|
||||
|
31
rust.spec
31
rust.spec
|
@ -47,8 +47,8 @@
|
|||
|
||||
|
||||
Name: rust
|
||||
Version: 1.19.0
|
||||
Release: 0.beta.4%{?dist}
|
||||
Version: 1.20.0
|
||||
Release: 0.beta.2%{?dist}
|
||||
Summary: The Rust Programming Language
|
||||
License: (ASL 2.0 or MIT) and (BSD and ISC and MIT)
|
||||
# ^ written as: (rust itself) and (bundled libraries)
|
||||
|
@ -60,10 +60,10 @@ ExclusiveArch: %{rust_arches}
|
|||
%else
|
||||
%global rustc_package rustc-%{channel}-src
|
||||
%endif
|
||||
Source0: https://static.rust-lang.org/dist/%{rustc_package}.tar.gz
|
||||
Source0: https://static.rust-lang.org/dist/%{rustc_package}.tar.xz
|
||||
|
||||
# Don't let configure clobber our debuginfo choice for stable releases.
|
||||
Patch1: rust-1.16.0-configure-no-override.patch
|
||||
Patch1: rust-1.19.0-43072-stack-guard.patch
|
||||
Patch2: rust-1.19.0-43297-configure-debuginfo.patch
|
||||
|
||||
# Get the Rust triple for any arch.
|
||||
%{lua: function rust_triple(arch)
|
||||
|
@ -306,7 +306,8 @@ sed -i.ffi -e '$a #[link(name = "ffi")] extern {}' \
|
|||
src/librustc_llvm/lib.rs
|
||||
%endif
|
||||
|
||||
%patch1 -p1 -b .no-override
|
||||
%patch1 -p1 -b .stack-guard
|
||||
%patch2 -p1 -b .debuginfo
|
||||
|
||||
# The configure macro will modify some autoconf-related files, which upsets
|
||||
# cargo when it tries to verify checksums in those files. If we just truncate
|
||||
|
@ -334,6 +335,8 @@ find src/vendor -name .cargo-checksum.json \
|
|||
%{!?with_llvm_static: --enable-llvm-link-shared } } \
|
||||
--disable-jemalloc \
|
||||
--disable-rpath \
|
||||
--disable-debuginfo-lines \
|
||||
--disable-debuginfo-only-std \
|
||||
--enable-debuginfo \
|
||||
--enable-vendor \
|
||||
--release-channel=%{channel}
|
||||
|
@ -457,8 +460,20 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py*
|
|||
|
||||
|
||||
%changelog
|
||||
* Fri Jul 14 2017 Josh Stone <jistone@redhat.com> - 1.19.0-0.beta.4
|
||||
- beta test, now using llvm4
|
||||
* Tue Aug 22 2017 Josh Stone <jistone@redhat.com> - 1.20.0-0.beta.2
|
||||
- beta test
|
||||
|
||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.19.0-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.19.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Mon Jul 24 2017 Josh Stone <jistone@redhat.com> - 1.19.0-2
|
||||
- Use find-debuginfo.sh --keep-section .rustc
|
||||
|
||||
* Thu Jul 20 2017 Josh Stone <jistone@redhat.com> - 1.19.0-1
|
||||
- Update to 1.19.0.
|
||||
|
||||
* Thu Jun 08 2017 Josh Stone <jistone@redhat.com> - 1.18.0-1
|
||||
- Update to 1.18.0.
|
||||
|
|
2
sources
2
sources
|
@ -1 +1 @@
|
|||
SHA512 (rustc-1.18.0-src.tar.gz) = eff0460b647dfb3490e28d4dec4f9781d31a942f22de75d9bd1ba31591597226b6862ec5132e8b4fcdbcf6e6ffa085ca5dda7ff8260cd82388fc13e8d3b4a2eb
|
||||
SHA512 (rustc-1.19.0-src.tar.xz) = 4dc0d0848d54ba7355aac7e13b3d0d3f42f05d6cd97ced9dc9e6493ba4686e1398803b567cecf24be0632b11ce1565e8d61b7603ce838b9c32dd0e663d03ba82
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
SHA512 (rustc-1.18.0-src.tar.gz) = eff0460b647dfb3490e28d4dec4f9781d31a942f22de75d9bd1ba31591597226b6862ec5132e8b4fcdbcf6e6ffa085ca5dda7ff8260cd82388fc13e8d3b4a2eb
|
||||
SHA512 (rust-1.17.0-aarch64-unknown-linux-gnu.tar.gz) = 58a44c7c5ddcec2560b48103aedb6718aa944e2058683af69638b6d00d7a76de0ed32c8a0819bf7a4585d01b349b260abdd1b9d4a378e3beaa7fef7872e5deb6
|
||||
SHA512 (rust-1.17.0-armv7-unknown-linux-gnueabihf.tar.gz) = e4970d090ab067e73507ea7cbcbf39de84ca2f3e506fffe0d76cabf2fb22e88229fe9d6fec5f025da6f7975ec1e8ffb82c6e5a58d50c1c51718494a19dfdf770
|
||||
SHA512 (rust-1.17.0-i686-unknown-linux-gnu.tar.gz) = 32212fdb237cc638fe4ac4aec6b23fe9fec25c9b7329090b89dc6feac2fe7f48999b2bee8155bb345dfe94ef5fda9ea4ca670cb323ad5936046a54c495f52af9
|
||||
SHA512 (rust-1.17.0-powerpc64le-unknown-linux-gnu.tar.gz) = 1963b596dd8c5fe3fe836319074246107a982ee6c17d973a681e1bd96870440295b73bed60929fdf445136990d15bf90d96843115db4287ffced07dafa6364d1
|
||||
SHA512 (rust-1.17.0-powerpc64-unknown-linux-gnu.tar.gz) = faffdf9e61e525cec9dfe47bee780a95d58c0778eafab2d9f56021f3910e5b6fee358de6af7ef0185c298921b2c010ebf2faa1c271cb4818c7e03f3424aac0ab
|
||||
SHA512 (rust-1.17.0-s390x-unknown-linux-gnu.tar.gz) = c92cba2b24422e9ce09b1ac1fae2da0ce4d884dddc1b6606c76d8f2e94dc6e46391632dfd005669fe37a7d0c447fddf155e8976a0b3bd4b0c96dd60877ca644e
|
||||
SHA512 (rust-1.17.0-x86_64-unknown-linux-gnu.tar.gz) = e12afcbc5a4642c908305c843f014d3802705f18d4e98e1a42dcca574dbe22af01ec8479f8c3fee5ddf12c530212118ff6eef5c4a2762ad4da6c2b071f163513
|
||||
SHA512 (rustc-1.19.0-src.tar.xz) = 4dc0d0848d54ba7355aac7e13b3d0d3f42f05d6cd97ced9dc9e6493ba4686e1398803b567cecf24be0632b11ce1565e8d61b7603ce838b9c32dd0e663d03ba82
|
||||
SHA512 (rust-1.18.0-aarch64-unknown-linux-gnu.tar.gz) = a1445b84e6215d3b72ed3c33ecfb0467e9abc0eb000eb2059aacf24bed1d8f1de0d2355654d3558b405289db45512c164b45e8b5c19b1420b3eb6f6f17d83872
|
||||
SHA512 (rust-1.18.0-armv7-unknown-linux-gnueabihf.tar.gz) = 7f9783bf396d110da7dce69f5d27501357a6c398296aada1029cc251ac0d97b648a934e8a71c2c4cb2e9fe660e98130624d3bd45543a3fcf4e821f5ee6fda172
|
||||
SHA512 (rust-1.18.0-i686-unknown-linux-gnu.tar.gz) = 8deb0dc9aae392ff50e1e93a0039340db60dbd8838fbeb5bca87961506c21b85961bed37f89d73993e44f8e50c493ef90f7e5b815e459b3650826b97357cad59
|
||||
SHA512 (rust-1.18.0-powerpc64le-unknown-linux-gnu.tar.gz) = 814f07ba103a6358cff0f0a5d55d7b73ce8c1cfda2dbb426f9ace0e043a66eb76797917ebedcd50d60a7ede5e941bb3c77dbf99f5ba92e59238a09c41582edc5
|
||||
SHA512 (rust-1.18.0-powerpc64-unknown-linux-gnu.tar.gz) = 5f6107c70f71e8afec90e5a94d40e27927239e70811a373ef3e0d39191295625e15881ff738bd62ace1b04489c9a33d51f1b4eec2cc923f8d1959dae38de98d8
|
||||
SHA512 (rust-1.18.0-s390x-unknown-linux-gnu.tar.gz) = 291c2aa3107b727176b90f0ff927e72b69c0830261c13805734b6e41cf4979a0000adbfddd69ccfef960b1eb9382694c6084e31adb8c2979df9973f112f3ee12
|
||||
SHA512 (rust-1.18.0-x86_64-unknown-linux-gnu.tar.gz) = 3d5cb71c03f95145539d9f209733ef555520eb826411737c4f168bbcb8ff631a9035e7dc81c42ecf107c5115d1d69ea6620ed95331cefad6de1b9d49f87ce305
|
||||
|
|
Loading…
Reference in New Issue