Add upstream patches for riscv64 architecture support.
These two patches are upstream already. A third patch is also upstream, but it is not needed with the older RPM we have, so I didn't include it.
This commit is contained in:
parent
82de465ada
commit
f686f71af8
95
rpm-4.13.x-RISCV-64-bit-riscv64-support.patch
Normal file
95
rpm-4.13.x-RISCV-64-bit-riscv64-support.patch
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
From d9d47e01146a5d4411691a71916b1030ac7da193 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||||
|
Date: Tue, 9 Aug 2016 18:25:24 +0100
|
||||||
|
Subject: [PATCH 1/3] RISCV 64-bit (riscv64) support.
|
||||||
|
|
||||||
|
Based on Mark Salter's aarch64 support patch (commit 8e1ca16c58).
|
||||||
|
|
||||||
|
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
|
||||||
|
---
|
||||||
|
installplatform | 6 ++++++
|
||||||
|
rpmrc.in | 16 ++++++++++++++++
|
||||||
|
2 files changed, 22 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/installplatform b/installplatform
|
||||||
|
index ebade42..12339fc 100755
|
||||||
|
--- a/installplatform
|
||||||
|
+++ b/installplatform
|
||||||
|
@@ -174,6 +174,12 @@ for ARCH in noarch `grep ^arch_canon $RPMRC | cut -d: -f2`; do
|
||||||
|
CANONARCH=m68k
|
||||||
|
CANONCOLOR=0
|
||||||
|
;;
|
||||||
|
+ riscv64)
|
||||||
|
+ ISANAME=riscv
|
||||||
|
+ ISABITS=64
|
||||||
|
+ CANONARCH=riscv64
|
||||||
|
+ CANONCOLOR=3
|
||||||
|
+ ;;
|
||||||
|
noarch)
|
||||||
|
CANONARCH=noarch
|
||||||
|
CANONCOLOR=0
|
||||||
|
diff --git a/rpmrc.in b/rpmrc.in
|
||||||
|
index e888b0f..abc08fc 100644
|
||||||
|
--- a/rpmrc.in
|
||||||
|
+++ b/rpmrc.in
|
||||||
|
@@ -99,6 +99,8 @@ optflags: sh4a -O2 -g -mieee
|
||||||
|
|
||||||
|
optflags: aarch64 -O2 -g
|
||||||
|
|
||||||
|
+optflags: riscv64 -O2 -g
|
||||||
|
+
|
||||||
|
#############################################################
|
||||||
|
# Architecture colors
|
||||||
|
|
||||||
|
@@ -147,6 +149,8 @@ archcolor: sh4 1
|
||||||
|
|
||||||
|
archcolor: aarch64 2
|
||||||
|
|
||||||
|
+archcolor: riscv64 2
|
||||||
|
+
|
||||||
|
#############################################################
|
||||||
|
# Canonical arch names and numbers
|
||||||
|
|
||||||
|
@@ -243,6 +247,9 @@ arch_canon: mipsr6el: mipsr6el 20
|
||||||
|
arch_canon: mips64r6: mips64r6 21
|
||||||
|
arch_canon: mips64r6el: mips64r6el 21
|
||||||
|
|
||||||
|
+arch_canon: riscv: riscv64 22
|
||||||
|
+arch_canon: riscv64: riscv64 22
|
||||||
|
+
|
||||||
|
#############################################################
|
||||||
|
# Canonical OS names and numbers
|
||||||
|
|
||||||
|
@@ -368,6 +375,9 @@ buildarchtranslate: sh4a: sh4
|
||||||
|
|
||||||
|
buildarchtranslate: aarch64: aarch64
|
||||||
|
|
||||||
|
+buildarchtranslate: riscv: riscv64
|
||||||
|
+buildarchtranslate: riscv64: riscv64
|
||||||
|
+
|
||||||
|
#############################################################
|
||||||
|
# Architecture compatibility
|
||||||
|
|
||||||
|
@@ -473,6 +483,9 @@ arch_compat: sh4a: sh4
|
||||||
|
|
||||||
|
arch_compat: aarch64: noarch
|
||||||
|
|
||||||
|
+arch_compat: riscv: noarch
|
||||||
|
+arch_compat: riscv64: noarch
|
||||||
|
+
|
||||||
|
os_compat: IRIX64: IRIX
|
||||||
|
os_compat: solaris2.7: solaris2.3 solaris2.4 solaris2.5 solaris2.6
|
||||||
|
os_compat: solaris2.6: solaris2.3 solaris2.4 solaris2.5
|
||||||
|
@@ -506,6 +519,9 @@ buildarch_compat: ia64: noarch
|
||||||
|
|
||||||
|
buildarch_compat: aarch64: noarch
|
||||||
|
|
||||||
|
+buildarch_compat: riscv: noarch
|
||||||
|
+buildarch_compat: riscv64: noarch
|
||||||
|
+
|
||||||
|
buildarch_compat: athlon: i686
|
||||||
|
buildarch_compat: geode: i586
|
||||||
|
buildarch_compat: pentium4: pentium3
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
@ -0,0 +1,52 @@
|
|||||||
|
From cf5679397f36710a942fcb83a63c690eb25d72af Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||||
|
Date: Thu, 11 Aug 2016 11:38:18 +0100
|
||||||
|
Subject: [PATCH 2/3] rpmrc: Convert uname.machine == "riscv" to
|
||||||
|
"riscv32"/"riscv64"/"riscv128".
|
||||||
|
|
||||||
|
On RISC-V, the kernel can return uname.machine == "riscv" (for all bit
|
||||||
|
sizes). I say "can" return, because that is the default, but it is
|
||||||
|
also possible to compile the kernel specially so it returns "riscv64"
|
||||||
|
etc.
|
||||||
|
|
||||||
|
GNU is using "riscv64".
|
||||||
|
|
||||||
|
This commit converts the kernel uname machine type "riscv" to a more
|
||||||
|
suitable value.
|
||||||
|
|
||||||
|
This conversion is supposed to be done by the arch_canon table.
|
||||||
|
However the arch_canon table is not populated until after the
|
||||||
|
defaultMachine function is called for the first time, making it a bit
|
||||||
|
useless. In any case, arch_canon cannot take into account the bit
|
||||||
|
size of the architecture, but the C code here can.
|
||||||
|
|
||||||
|
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
|
||||||
|
---
|
||||||
|
lib/rpmrc.c | 11 +++++++++++
|
||||||
|
1 file changed, 11 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/lib/rpmrc.c b/lib/rpmrc.c
|
||||||
|
index f2e0f48..eb136d8 100644
|
||||||
|
--- a/lib/rpmrc.c
|
||||||
|
+++ b/lib/rpmrc.c
|
||||||
|
@@ -1216,6 +1216,17 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os)
|
||||||
|
}
|
||||||
|
# endif /* arm*-linux */
|
||||||
|
|
||||||
|
+# if defined(__linux__) && defined(__riscv__)
|
||||||
|
+ if (rstreq(un.machine, "riscv")) {
|
||||||
|
+ if (sizeof(long) == 4)
|
||||||
|
+ strcpy(un.machine, "riscv32");
|
||||||
|
+ else if (sizeof(long) == 8)
|
||||||
|
+ strcpy(un.machine, "riscv64");
|
||||||
|
+ else if (sizeof(long) == 16)
|
||||||
|
+ strcpy(un.machine, "riscv128");
|
||||||
|
+ }
|
||||||
|
+# endif /* riscv */
|
||||||
|
+
|
||||||
|
# if defined(__GNUC__) && defined(__alpha__)
|
||||||
|
{
|
||||||
|
unsigned long amask, implver;
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
7
rpm.spec
7
rpm.spec
@ -27,7 +27,7 @@
|
|||||||
Summary: The RPM package management system
|
Summary: The RPM package management system
|
||||||
Name: rpm
|
Name: rpm
|
||||||
Version: %{rpmver}
|
Version: %{rpmver}
|
||||||
Release: %{?snapver:0.%{snapver}.}46%{?dist}
|
Release: %{?snapver:0.%{snapver}.}47%{?dist}
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
Url: http://www.rpm.org/
|
Url: http://www.rpm.org/
|
||||||
Source0: http://rpm.org/releases/%{srcdir}/%{name}-%{srcver}.tar.bz2
|
Source0: http://rpm.org/releases/%{srcdir}/%{name}-%{srcver}.tar.bz2
|
||||||
@ -90,6 +90,8 @@ Patch136: rpm-4.13.x-pythondistdeps.py-skip-distribution-metadata-if-ther.patch
|
|||||||
Patch137: rpm-4.13.x-pythondistdeps.py-show-warning-if-version-is-not-fou.patch
|
Patch137: rpm-4.13.x-pythondistdeps.py-show-warning-if-version-is-not-fou.patch
|
||||||
Patch138: rpm-4.13.x-pythondistdeps.py-skip-.egg-link-files.patch
|
Patch138: rpm-4.13.x-pythondistdeps.py-skip-.egg-link-files.patch
|
||||||
Patch139: rpm-4.13.x-pythondistdeps.py-add-forgotten-import.patch
|
Patch139: rpm-4.13.x-pythondistdeps.py-add-forgotten-import.patch
|
||||||
|
Patch140: rpm-4.13.x-RISCV-64-bit-riscv64-support.patch
|
||||||
|
Patch141: rpm-4.13.x-rpmrc-Convert-uname.machine-riscv-to-riscv32-riscv64.patch
|
||||||
|
|
||||||
# These are not yet upstream
|
# These are not yet upstream
|
||||||
Patch302: rpm-4.7.1-geode-i686.patch
|
Patch302: rpm-4.7.1-geode-i686.patch
|
||||||
@ -596,6 +598,9 @@ exit 0
|
|||||||
%doc doc/librpm/html/*
|
%doc doc/librpm/html/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Sep 23 2016 Richard W.M. Jones <rjones@redhat.com> - 4.13.0-0.rc1.47
|
||||||
|
- Backport two upstream patches which add riscv64 architecture support.
|
||||||
|
|
||||||
* Wed Aug 24 2016 Igor Gnatenko <ignatenko@redhat.com> - 4.13.0-0.rc1.46
|
* Wed Aug 24 2016 Igor Gnatenko <ignatenko@redhat.com> - 4.13.0-0.rc1.46
|
||||||
- Backport patch for missing import in Python dependency generator
|
- Backport patch for missing import in Python dependency generator
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user