Merge branch 'master' into f25

This commit is contained in:
Igor Gnatenko 2016-11-25 13:34:57 +01:00
commit 4e36c2ed98
3 changed files with 7 additions and 151 deletions

View File

@ -1,95 +0,0 @@
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

View File

@ -1,52 +0,0 @@
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

View File

@ -29,7 +29,7 @@
Summary: The RPM package management system
Name: rpm
Version: %{rpmver}
Release: %{?snapver:0.%{snapver}.}4%{?dist}
Release: %{?snapver:0.%{snapver}.}5%{?dist}
Group: System Environment/Base
Url: http://www.rpm.org/
Source0: http://rpm.org/releases/%{srcdir}/%{name}-%{srcver}.tar.bz2
@ -173,7 +173,7 @@ packages.
Summary: Development files for manipulating RPM packages
Group: Development/Libraries
License: GPLv2+ and LGPLv2+ with exceptions
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name} = %{version}-%{release}
Requires: %{name}-libs%{_isa} = %{version}-%{release}
Requires: %{name}-build-libs%{_isa} = %{version}-%{release}
Requires: popt-devel%{_isa}
@ -221,7 +221,7 @@ Summary: Python 2 bindings for apps which will manipulate RPM packages
Group: Development/Libraries
BuildRequires: python2-devel
%{?python_provide:%python_provide python2-%{name}}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Provides: %{name}-python = %{version}-%{release}
Obsoletes: %{name}-python < %{version}-%{release}
@ -239,7 +239,7 @@ Group: Development/Libraries
BuildRequires: python3-devel
%{?python_provide:%python_provide python3-%{name}}
%{?system_python_abi}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Provides: %{name}-python3 = %{version}-%{release}
Obsoletes: %{name}-python3 < %{version}-%{release}
@ -558,6 +558,9 @@ exit 0
%doc doc/librpm/html/*
%changelog
* Fri Nov 25 2016 Igor Gnatenko <ignatenko@redhat.com> - 4.13.0-5
- Fix arch-dependent requires in subpackages (RHBZ #1398591)
* Fri Nov 11 2016 Panu Matilainen <pmatilai@redhat.com> - 4.13.0-4
- Expand python subpackage obsoletion range (related: #1394125)