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 <[email protected]>
Date: Tue, 29 Jan 2013 14:41:48 -0500
Subject: [PATCH] Add basic support for aarch64 architecture

Signed-off-by: Mark Salter <[email protected]>
---
 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



_______________________________________________
Rpm-maint mailing list
[email protected]
http://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to