14 |
# e.g. 1.10.0 wants rustc: 1.9.0-2016-05-24 |
# e.g. 1.10.0 wants rustc: 1.9.0-2016-05-24 |
15 |
# or nightly wants some beta-YYYY-MM-DD |
# or nightly wants some beta-YYYY-MM-DD |
16 |
# Note that cargo matches the program version here, not its crate version. |
# Note that cargo matches the program version here, not its crate version. |
17 |
%global bootstrap_rust 1.39.0 |
%global bootstrap_rust 1.40.0 |
18 |
%global bootstrap_cargo 1.39.0 |
%global bootstrap_cargo 1.40.0 |
19 |
%global bootstrap_channel 1.39.0 |
%global bootstrap_channel 1.40.0 |
20 |
%global bootstrap_date 2019-11-07 |
%global bootstrap_date 2019-12-19 |
21 |
|
|
22 |
# Only the specified arches will use bootstrap binaries. |
# Only the specified arches will use bootstrap binaries. |
23 |
#global bootstrap_arches %%{rust_arches} |
#global bootstrap_arches %%{rust_arches} |
37 |
%bcond_with llvm_static |
%bcond_with llvm_static |
38 |
|
|
39 |
# We can also choose to just use Rust's bundled LLVM, in case the system LLVM |
# We can also choose to just use Rust's bundled LLVM, in case the system LLVM |
40 |
# is insufficient. Rust currently requires LLVM 6.0+. |
# is insufficient. Rust currently requires LLVM 7.0+. |
41 |
%if 0%{?rhel} && !0%{?epel} |
%if 0%{?rhel} && !0%{?epel} |
42 |
# (akien) Hacks below are needed on mga's buildsystem when we have to rebootstrap llvm. |
# (akien) Hacks below are needed on mga's buildsystem when we have to rebootstrap llvm. |
43 |
# Bundled LLVM has underlinking issues: |
# Bundled LLVM has underlinking issues: |
76 |
%endif |
%endif |
77 |
|
|
78 |
Name: rust |
Name: rust |
79 |
Version: 1.40.0 |
Version: 1.41.0 |
80 |
Release: %mkrel 2 |
Release: %mkrel 1 |
81 |
Summary: The Rust Programming Language |
Summary: The Rust Programming Language |
82 |
%if 0%{?mageia} |
%if 0%{?mageia} |
83 |
Group: Development/Other |
Group: Development/Other |
98 |
# We do have the necessary fix in our LLVM 7. |
# We do have the necessary fix in our LLVM 7. |
99 |
Patch1: rust-pr57840-llvm7-debuginfo-variants.patch |
Patch1: rust-pr57840-llvm7-debuginfo-variants.patch |
100 |
|
|
101 |
# Fix the bindir used by rustdoc to find rustc |
# Fix compiletest with newer (local-rebuild) libtest |
102 |
# https://github.com/rust-lang/rust/pull/66317 |
# https://github.com/rust-lang/rust/commit/241d2e765dc7401e642812e43b75dbc3950f2c98 |
103 |
Patch2: rust-pr66317-bindir-relative.patch |
Patch2: 0001-Fix-compiletest-fallout-from-stage0-bump.patch |
104 |
|
# https://github.com/rust-lang/rust/pull/68019 |
105 |
# ARM loops when C++ tries to catch and rethrow a Rust exception |
Patch3: rust-pr68019-in-tree-compiletest.patch |
106 |
# https://github.com/rust-lang/rust/issues/67242 |
|
107 |
Patch3: rust-issue-67242-ignore-arm-foreign-exceptions.patch |
# Fix ARM unwinding for foreign-exceptions |
108 |
|
# https://github.com/rust-lang/rust/pull/67779 |
109 |
|
Patch4: 0001-Update-the-barrier-cache-during-ARM-EHABI-unwinding.patch |
110 |
|
|
111 |
# Upstream patch to fix typenum crate build on i386/i486/i586. |
# Upstream patch to fix typenum crate build on i386/i486/i586. |
112 |
Patch4: typenum-pr115-fix-log2-rounding-error.patch |
Patch5: typenum-pr115-fix-log2-rounding-error.patch |
113 |
|
|
114 |
# Get the Rust triple for any arch. |
# Get the Rust triple for any arch. |
115 |
%{lua: function rust_triple(arch) |
%{lua: function rust_triple(arch) |
197 |
|
|
198 |
%if %with bundled_llvm |
%if %with bundled_llvm |
199 |
BuildRequires: cmake3 >= 3.4.3 |
BuildRequires: cmake3 >= 3.4.3 |
200 |
Provides: bundled(llvm) = 8.0.0 |
Provides: bundled(llvm) = 9.0.0 |
201 |
%else |
%else |
202 |
BuildRequires: cmake >= 2.8.11 |
BuildRequires: cmake >= 2.8.11 |
203 |
%if 0%{?epel} |
%if 0%{?epel} |
209 |
%global llvm llvm |
%global llvm llvm |
210 |
%global llvm_root %{_prefix} |
%global llvm_root %{_prefix} |
211 |
%endif |
%endif |
212 |
BuildRequires: %{llvm}-devel >= 6.0 |
BuildRequires: %{llvm}-devel >= 7.0 |
213 |
%if %with llvm_static |
%if %with llvm_static |
214 |
BuildRequires: %{llvm}-static |
BuildRequires: %{llvm}-static |
215 |
BuildRequires: libffi-devel |
BuildRequires: libffi-devel |
268 |
%if "%{llvm_root}" == "%{_prefix}" || 0%{?scl:1} |
%if "%{llvm_root}" == "%{_prefix}" || 0%{?scl:1} |
269 |
%global llvm_has_filecheck 1 |
%global llvm_has_filecheck 1 |
270 |
%endif |
%endif |
271 |
|
%if "%{llvm_root}" != "%{_prefix}" |
272 |
|
# https://github.com/rust-lang/rust/issues/68714 |
273 |
|
%global library_path $(%{llvm_root}/bin/llvm-config --libdir) |
274 |
|
%endif |
275 |
%endif |
%endif |
276 |
|
|
277 |
%description |
%description |
458 |
%patch2 -p1 |
%patch2 -p1 |
459 |
%patch3 -p1 |
%patch3 -p1 |
460 |
%patch4 -p1 |
%patch4 -p1 |
461 |
|
%patch5 -p1 |
462 |
|
|
463 |
%if "%{python}" == "python3" |
%if "%{python}" == "python3" |
464 |
sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure |
sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure |
526 |
%endif |
%endif |
527 |
|
|
528 |
%{?cmake_path:export PATH=%{cmake_path}:$PATH} |
%{?cmake_path:export PATH=%{cmake_path}:$PATH} |
529 |
|
%{?library_path:export LIBRARY_PATH="%{library_path}"} |
530 |
%{?rustflags:export RUSTFLAGS="%{rustflags}"} |
%{?rustflags:export RUSTFLAGS="%{rustflags}"} |
531 |
|
|
532 |
# We're going to override --libdir when configuring to get rustlib into a |
# We're going to override --libdir when configuring to get rustlib into a |
577 |
|
|
578 |
%install |
%install |
579 |
%{?cmake_path:export PATH=%{cmake_path}:$PATH} |
%{?cmake_path:export PATH=%{cmake_path}:$PATH} |
580 |
|
%{?library_path:export LIBRARY_PATH="%{library_path}"} |
581 |
%{?rustflags:export RUSTFLAGS="%{rustflags}"} |
%{?rustflags:export RUSTFLAGS="%{rustflags}"} |
582 |
|
|
583 |
DESTDIR=%{buildroot} %{python} ./x.py install |
DESTDIR=%{buildroot} %{python} ./x.py install |
648 |
|
|
649 |
%check |
%check |
650 |
%{?cmake_path:export PATH=%{cmake_path}:$PATH} |
%{?cmake_path:export PATH=%{cmake_path}:$PATH} |
651 |
|
%{?library_path:export LIBRARY_PATH="%{library_path}"} |
652 |
%{?rustflags:export RUSTFLAGS="%{rustflags}"} |
%{?rustflags:export RUSTFLAGS="%{rustflags}"} |
653 |
|
|
654 |
# The results are not stable on koji, so mask errors and just log it. |
# The results are not stable on koji, so mask errors and just log it. |
675 |
%dir %{rustlibdir}/%{rust_triple} |
%dir %{rustlibdir}/%{rust_triple} |
676 |
%dir %{rustlibdir}/%{rust_triple}/lib |
%dir %{rustlibdir}/%{rust_triple}/lib |
677 |
%{rustlibdir}/%{rust_triple}/lib/*.so |
%{rustlibdir}/%{rust_triple}/lib/*.so |
|
%{rustlibdir}/%{rust_triple}/codegen-backends/ |
|
678 |
%if %defined bootstrap_build_arch |
%if %defined bootstrap_build_arch |
679 |
%dir %{rustlibdir}/%{target_triple} |
%dir %{rustlibdir}/%{target_triple} |
680 |
%dir %{rustlibdir}/%{target_triple}/lib |
%dir %{rustlibdir}/%{target_triple}/lib |