Add riscv64 specific changes
This commit is contained in:
parent
d87c460314
commit
ffe664f147
25
0001-add-musl-root-riscv64gc-detection-in-configure.py.patch
Normal file
25
0001-add-musl-root-riscv64gc-detection-in-configure.py.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From a216df759724049385b729f038de2cb49c580cd2 Mon Sep 17 00:00:00 2001
|
||||
From: jchzhou <zhoujiacheng@iscas.ac.cn>
|
||||
Date: Wed, 8 Mar 2023 00:10:42 +0800
|
||||
Subject: [PATCH] add musl-root-riscv64gc detection in configure.py
|
||||
|
||||
---
|
||||
src/bootstrap/configure.py | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/bootstrap/configure.py b/src/bootstrap/configure.py
|
||||
index 6b139decb..55855f8a1 100755
|
||||
--- a/src/bootstrap/configure.py
|
||||
+++ b/src/bootstrap/configure.py
|
||||
@@ -140,6 +140,8 @@ v("musl-root-mips64", "target.mips64-unknown-linux-muslabi64.musl-root",
|
||||
"mips64-unknown-linux-muslabi64 install directory")
|
||||
v("musl-root-mips64el", "target.mips64el-unknown-linux-muslabi64.musl-root",
|
||||
"mips64el-unknown-linux-muslabi64 install directory")
|
||||
+v("musl-root-riscv64gc", "target.riscv64gc-unknown-linux-musl.musl-root",
|
||||
+ "riscv64gc-unknown-linux-musl install directory")
|
||||
v("qemu-armhf-rootfs", "target.arm-unknown-linux-gnueabihf.qemu-rootfs",
|
||||
"rootfs in qemu testing, you probably don't want to use this")
|
||||
v("qemu-aarch64-rootfs", "target.aarch64-unknown-linux-gnu.qemu-rootfs",
|
||||
--
|
||||
2.39.2
|
||||
|
||||
35
rust.spec
35
rust.spec
@ -8,9 +8,13 @@
|
||||
%bcond_with disabled_libssh2
|
||||
%bcond_without curl_http2
|
||||
%bcond_without lldb
|
||||
%ifnarch riscv64
|
||||
%bcond_without analyzer
|
||||
%endif
|
||||
|
||||
Name: rust
|
||||
Version: 1.69.0
|
||||
Release: 1
|
||||
Release: 2
|
||||
Summary: The Rust Programming Language
|
||||
License: (ASL 2.0 or MIT) and (BSD and MIT)
|
||||
URL: https://www.rust-lang.org
|
||||
@ -26,6 +30,7 @@ Patch0005: compile-with-llvm-15.patch
|
||||
Patch0006: 0001-Use-lld-provided-by-system-for-wasm.patch
|
||||
# Set a substitute-path in rust-gdb for standard library sources.
|
||||
Patch0007: rustc-1.61.0-rust-gdb-substitute-path.patch
|
||||
Patch0008: 0001-add-musl-root-riscv64gc-detection-in-configure.py.patch
|
||||
|
||||
%{lua: function rust_triple(arch)
|
||||
local abi = "gnu"
|
||||
@ -43,9 +48,15 @@ Patch0007: rustc-1.61.0-rust-gdb-substitute-path.patch
|
||||
end}
|
||||
%{lua: function rust_musl_triple(arch)
|
||||
local abi = "musl"
|
||||
if arch == "riscv64" then
|
||||
arch = "riscv64gc"
|
||||
end
|
||||
return arch.."-unknown-linux-"..abi
|
||||
end}
|
||||
%{lua: function rust_musl_root(arch)
|
||||
if arch == "riscv64" then
|
||||
arch = "riscv64gc"
|
||||
end
|
||||
return "--musl-root-"..arch
|
||||
end}
|
||||
%global rust_triple %{lua: print(rust_triple(rpm.expand("%{_target_cpu}")))}
|
||||
@ -90,7 +101,12 @@ BuildRequires: cmake >= 2.8.11
|
||||
%if %defined llvm
|
||||
%global llvm_root %{_libdir}/%{llvm}
|
||||
%else
|
||||
# default llvm is decent enough on riscv64
|
||||
%ifnarch riscv64
|
||||
%global llvm llvm15
|
||||
%else
|
||||
%global llvm llvm
|
||||
%endif
|
||||
%global llvm_root %{_prefix}
|
||||
%endif
|
||||
# rust currently requires llvm 14.0+
|
||||
@ -181,6 +197,7 @@ Conflicts: rustfmt-preview < 1.0.0
|
||||
%description -n rustfmt
|
||||
A tool for formatting Rust code according to style guidelines.
|
||||
|
||||
%if %{with analyzer}
|
||||
%package analyzer
|
||||
Summary:Rust implementation of the Language Server Protocol
|
||||
Requires: %{name}-src
|
||||
@ -193,6 +210,7 @@ Obsoletes: rls-preview < 1.31.6
|
||||
rust-analyzer is an implementation of Language Server Protocol for the Rust
|
||||
programming language. It provides features like completion and goto definition
|
||||
for many code editors, including VS Code, Emacs and Vim.
|
||||
%endif
|
||||
|
||||
%package -n clippy
|
||||
Summary: Lints to catch common mistakes and improve your Rust code
|
||||
@ -241,9 +259,13 @@ sed -i.try-python -e '/^try python3 /i try "%{python}" "$@"' ./configure
|
||||
%patch0002 -p1
|
||||
%patch0003 -p1
|
||||
%patch0004 -p1
|
||||
# default llvm is decent enough on riscv64
|
||||
%ifnarch riscv64
|
||||
%patch0005 -p1
|
||||
%endif
|
||||
%patch0006 -p1
|
||||
%patch0007 -p1
|
||||
%patch0008 -p1
|
||||
rm -rf vendor/curl-sys/curl/
|
||||
rm -rf vendor/jemalloc-sys/jemalloc/
|
||||
rm -rf vendor/libssh2-sys/libssh2/
|
||||
@ -305,7 +327,7 @@ fi
|
||||
--disable-rpath \
|
||||
%{enable_debuginfo} \
|
||||
--enable-extended \
|
||||
--tools=cargo,clippy,rls,rust-analyzer,rustfmt,src \
|
||||
--tools=cargo,clippy,%{?with_analyzer:rls,rust-analyzer,}rustfmt,src \
|
||||
--enable-vendor \
|
||||
--enable-verbose-tests \
|
||||
%{?codegen_units_std} \
|
||||
@ -348,8 +370,10 @@ mkdir -p %{buildroot}%{_datadir}/cargo/registry
|
||||
mkdir -p %{buildroot}%{_docdir}/cargo
|
||||
ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html
|
||||
|
||||
%if %{with analyzer}
|
||||
# The rls stub doesn't have an install target, but we can just copy it.
|
||||
%{__install} -t %{buildroot}%{_bindir} build/%{rust_triple}/stage2-tools-bin/rls
|
||||
%endif
|
||||
|
||||
%if %without lldb
|
||||
rm -f %{buildroot}%{_bindir}/rust-lldb
|
||||
@ -362,7 +386,9 @@ export %{rust_env}
|
||||
%{python} ./x.py test --no-fail-fast --stage 2 || :
|
||||
%{python} ./x.py test --no-fail-fast --stage 2 cargo || :
|
||||
%{python} ./x.py test --no-fail-fast --stage 2 clippy || :
|
||||
%if %{with analyzer}
|
||||
%{python} ./x.py test --no-fail-fast --stage 2 rust-analyzer || :
|
||||
%endif
|
||||
%{python} ./x.py test --no-fail-fast --stage 2 rustfmt || :
|
||||
%ldconfig_scriptlets
|
||||
|
||||
@ -425,11 +451,13 @@ export %{rust_env}
|
||||
%doc src/tools/rustfmt/{README,CHANGELOG,Configurations}.md
|
||||
%license src/tools/rustfmt/LICENSE-{APACHE,MIT}
|
||||
|
||||
%if %{with analyzer}
|
||||
%files analyzer
|
||||
%{_bindir}/rls
|
||||
%{_bindir}/rust-analyzer
|
||||
%doc src/tools/rust-analyzer/README.md
|
||||
%license src/tools/rust-analyzer/LICENSE-{APACHE,MIT}
|
||||
%endif
|
||||
|
||||
%files -n clippy
|
||||
%{_bindir}/cargo-clippy
|
||||
@ -453,6 +481,9 @@ export %{rust_env}
|
||||
%{_mandir}/man1/cargo*.1*
|
||||
|
||||
%changelog
|
||||
* Mon Apr 24 2023 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.69.0-2
|
||||
- Add riscv64 specific changes
|
||||
|
||||
* Mon Apr 24 2023 jchzhou <zhoujiacheng@iscas.ac.cn> - 1.69.0-1
|
||||
- Update to 1.69.0
|
||||
- Obsolete the removed rust-analysis subpackage
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user