[Rpm-maint] AArch64 support

Mark Salter msalter at redhat.com
Tue Jan 29 20:36:39 UTC 2013


Here is a patch which adds support for AArch64 architecture. This is
just basic support and further support (i.e. auxv parsing) may be desired.
It is pretty straightforward except for the hunk in installplatform which
sets LIB=${LIB}64. The existing test does this for linux and CANONCOLOR 3.
Aarch64 is CANONCOLOR 2, but still wants to use lib64 for the libdir.

--Mark

>From 66fadf52448be1131d793362b60378e38d1724f1 Mon Sep 17 00:00:00 2001
From: Mark Salter <msalter at redhat.com>
Date: Tue, 29 Jan 2013 14:41:48 -0500
Subject: [PATCH] Add basic support for aarch64 architecture

Signed-off-by: Mark Salter <msalter at redhat.com>
---
 installplatform | 8 +++++++-
 macros.in       | 4 ++++
 rpmrc.in        | 9 +++++++++
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/installplatform b/installplatform
index a68b3c0..9aa9875 100755
--- a/installplatform
+++ b/installplatform
@@ -101,6 +101,12 @@ for ARCH in noarch `grep ^arch_canon $RPMRC | cut -d: -f2`; do
 	CANONARCH=alpha
 	CANONCOLOR=0
 	;;
+    aarch64)
+	ISANAME=aarch
+	ISABITS=64
+	CANONARCH=aarch64
+	CANONCOLOR=2
+	;;
     noarch)
 	CANONARCH=noarch
 	CANONCOLOR=0
@@ -111,7 +117,7 @@ for ARCH in noarch `grep ^arch_canon $RPMRC | cut -d: -f2`; do
   # skip architectures for which we dont have full config parameters
   [ -z "$CANONARCH" ] && continue
 
-  if [ "$OS" = "linux" ] && [ "$CANONCOLOR" = 3 ]; then
+  if [ "$OS" = "linux" ] && [ "$CANONCOLOR" = 3 ] || [ "$ISANAME" = "aarch" ]; then
       LIB=${LIB}64
   fi
 
diff --git a/macros.in b/macros.in
index 11f30be..fc33ebd 100644
--- a/macros.in
+++ b/macros.in
@@ -991,6 +991,10 @@ done \
 %arm	armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l armv7l
 
 #------------------------------------------------------------------------------
+# arch macro for aarch64
+%aarch64	aarch64
+
+#------------------------------------------------------------------------------
 # arch macro for all supported Sparc processors
 %sparc sparc sparcv8 sparcv9 sparcv9v sparc64 sparc64v
 
diff --git a/rpmrc.in b/rpmrc.in
index 5b23db1..97651f2 100644
--- a/rpmrc.in
+++ b/rpmrc.in
@@ -83,6 +83,8 @@ optflags: sh3 -O2 -g
 optflags: sh4 -O2 -g -mieee
 optflags: sh4a -O2 -g -mieee
 
+optflags: aarch64 -O2 -g
+
 #############################################################
 # Architecture colors
 
@@ -199,6 +201,7 @@ arch_canon:	sh3: sh3	17
 arch_canon:	sh4: sh4	17
 arch_canon:	sh4a: sh4a	17
 arch_canon:	xtensa: xtensa	18
+arch_canon:	aarch64: aarch64 19
 
 #############################################################
 # Canonical OS names and numbers
@@ -307,6 +310,8 @@ buildarchtranslate: sh3: sh3
 buildarchtranslate: sh4: sh4
 buildarchtranslate: sh4a: sh4
 
+buildarchtranslate: aarch64: aarch64
+
 #############################################################
 # Architecture compatibility
 
@@ -397,6 +402,8 @@ arch_compat: sh3: noarch
 arch_compat: sh4: noarch
 arch_compat: sh4a: sh4
 
+arch_compat: aarch64: 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
@@ -428,6 +435,8 @@ os_compat: Darwin: MacOSX
 
 buildarch_compat: ia64: noarch
 
+buildarch_compat: aarch64: noarch
+
 buildarch_compat: athlon: i686
 buildarch_compat: geode: i586
 buildarch_compat: pentium4: pentium3
-- 
1.8.1





More information about the Rpm-maint mailing list