[OpenAFS-devel] Re: Compiling openafs on arm64/aarch64 architecture
Micheal Waltz
mwaltz@qualcomm.com
Thu, 4 Sep 2014 14:39:55 -0700
--------------010408000801010606060204
Content-Type: text/plain; charset="windows-1252"; format=flowed
Content-Transfer-Encoding: 7bit
On 09/03/14 15:11, Micheal Waltz wrote:
> I'll pull the openafs repo and start applying some of the changes I've
> made to a branch. I've been strictly using the deb-src packages from
> Debian since my immediate goal was to get arm64 packages built and I
> thought maybe it was just a few modifications to get it working.
I pulled the git source, checked out the openafs-stable-1_6_9 tag, and
added in the suggestions for the arm64_linux sysname params files as
well as modified a few other files (patch attached). This should keep
the new aarch64 architecture separate from the existing arm_linux
architecture.
The userspace build for the most part was successful (src/lwp/rw was not
built to test), but it fails on building the libafs Linux kernel module
with:
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:137:1:
error: conflicting types for 'lockIdSet'
I looked into this issue, but got stuck and am not really sure how to
proceed. I think it may have to do with some CCFLAGS/DEFINES in
src/libafs/MakefileProto.LINUX.in for the arm64_linux26 sysname, but I
don't know what flags may be needed. Other threads on the openafs-devel
list from the past show it could be something with not copying required
objects correctly.
Does anyone have any pointers here? Also, is there an easy way to just
try and re-build just the module without having to start the entire
compile over again? It takes 1-2 hours on an emulated VM to get to this
stage and is very time consuming. Thank you.
Full compile error, only "./configure; make" was used to build, no
additional flags:
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:575:5:
error: conflicting types for 'afs_lockctl'
int afs_lockctl(struct vcache * avc, struct AFS_FLOCK * af, int acmd,
^
In file included from /home/mwaltz/git/openafs/src/afs/afsincludes.h:57:0,
from
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:20:
/home/mwaltz/git/openafs/src/afs/afs_prototypes.h:1178:12: note:
previous declaration of 'afs_lockctl' was here
extern int afs_lockctl(struct vcache * avc, struct AFS_FLOCK * af, int
acmd,
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:
In function 'afs_lockctl':
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:599:8:
error: dereferencing pointer to incomplete type
if (af->l_type == F_UNLCK) {
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:603:2:
warning: passing argument 2 of 'HandleGetLock' from incompatible pointer
type [enabled by default]
code = HandleGetLock(avc, af, &treq, clid);
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:32:12:
note: expected 'struct flock64 *' but argument is of type 'struct flock64 *'
static int HandleGetLock(struct vcache *avc,
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:616:8:
error: dereferencing pointer to incomplete type
if (af->l_type == F_WRLCK) {
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:625:19:
error: dereferencing pointer to incomplete type
if ((sizeof(af->l_len) == 8) && (af->l_len == 0x7fffffffffffffffLL))
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:625:40:
error: dereferencing pointer to incomplete type
if ((sizeof(af->l_len) == 8) && (af->l_len == 0x7fffffffffffffffLL))
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:626:4:
error: dereferencing pointer to incomplete type
af->l_len = 0;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:629:11:
error: dereferencing pointer to incomplete type
if (af->l_whence != 0 || af->l_start != 0 || af->l_len != 0) {
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:629:32:
error: dereferencing pointer to incomplete type
if (af->l_whence != 0 || af->l_start != 0 || af->l_len != 0) {
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:629:52:
error: dereferencing pointer to incomplete type
if (af->l_whence != 0 || af->l_start != 0 || af->l_len != 0) {
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:635:11:
error: dereferencing pointer to incomplete type
if (af->l_type == F_RDLCK)
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:637:16:
error: dereferencing pointer to incomplete type
else if (af->l_type == F_WRLCK)
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:639:16:
error: dereferencing pointer to incomplete type
else if (af->l_type == F_UNLCK)
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:
At top level:
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:684:15:
warning: 'struct flock64' declared inside parameter list [enabled by
default]
struct vrequest *areq, int clid)
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:683:1:
error: conflicting types for 'HandleGetLock'
HandleGetLock(struct vcache *avc, struct AFS_FLOCK *af,
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:32:12:
note: previous declaration of 'HandleGetLock' was here
static int HandleGetLock(struct vcache *avc,
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:
In function 'HandleGetLock':
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:687:22:
error: storage size of 'flock' isn't known
struct AFS_FLOCK flock;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:699:22:
error: dereferencing pointer to incomplete type
if (code == 0 || (af->l_type == F_RDLCK && code > 0)) {
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:700:8:
error: dereferencing pointer to incomplete type
af->l_type = F_UNLCK;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:704:8:
error: dereferencing pointer to incomplete type
af->l_type = F_RDLCK;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:706:8:
error: dereferencing pointer to incomplete type
af->l_type = F_WRLCK;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:708:4:
error: dereferencing pointer to incomplete type
af->l_pid = 0;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:715:11:
error: dereferencing pointer to incomplete type
if (af->l_type == F_RDLCK) {
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:723:8:
error: dereferencing pointer to incomplete type
af->l_type = F_UNLCK;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:728:4:
error: dereferencing pointer to incomplete type
af->l_type = F_WRLCK; /* not us, so lock would block */
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:730:8:
error: dereferencing pointer to incomplete type
af->l_pid = avc->slocks->pid;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:735:8:
error: dereferencing pointer to incomplete type
af->l_pid = 0; /* XXX can't happen?? */
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:749:8:
error: dereferencing pointer to incomplete type
af->l_type = F_WRLCK;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:751:5:
error: dereferencing pointer to incomplete type
af->l_pid = avc->slocks->pid;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:756:5:
error: dereferencing pointer to incomplete type
af->l_pid = 0; /* XXX can't happen?? */
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:764:4:
error: dereferencing pointer to incomplete type
af->l_type = F_UNLCK;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:776:4:
error: dereferencing pointer to incomplete type
af->l_type = F_RDLCK;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:777:4:
error: dereferencing pointer to incomplete type
af->l_pid = 0;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:784:5:
error: dereferencing pointer to incomplete type
af->l_pid = slp->pid;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:800:8:
error: dereferencing pointer to incomplete type
af->l_type = F_WRLCK;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:802:5:
error: dereferencing pointer to incomplete type
af->l_pid = avc->slocks->pid;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:807:5:
error: dereferencing pointer to incomplete type
af->l_pid = 0; /* XXX can't happen?? */
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:815:4:
error: dereferencing pointer to incomplete type
af->l_type = F_UNLCK;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:826:4:
error: dereferencing pointer to incomplete type
af->l_type = F_RDLCK;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:827:4:
error: dereferencing pointer to incomplete type
af->l_pid = 0;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:834:5:
error: dereferencing pointer to incomplete type
af->l_pid = slp->pid;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:851:4:
error: dereferencing pointer to incomplete type
af->l_type = F_UNLCK;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:855:4:
error: dereferencing pointer to incomplete type
af->l_type = F_RDLCK;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:857:4:
error: dereferencing pointer to incomplete type
af->l_type = F_WRLCK;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:858:7:
error: dereferencing pointer to incomplete type
af->l_pid = 0;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:864:7:
error: dereferencing pointer to incomplete type
af->l_whence = 0;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:865:7:
error: dereferencing pointer to incomplete type
af->l_start = 0;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:866:7:
error: dereferencing pointer to incomplete type
af->l_len = 0; /* to end of file */
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:687:22:
warning: unused variable 'flock' [-Wunused-variable]
struct AFS_FLOCK flock;
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:
At top level:
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:32:12:
warning: 'HandleGetLock' used but never defined [enabled by default]
static int HandleGetLock(struct vcache *avc,
^
/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.c:683:1:
warning: 'HandleGetLock' defined but not used [-Wunused-function]
HandleGetLock(struct vcache *avc, struct AFS_FLOCK *af,
^
make[6]: ***
[/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP/afs_vnop_flock.o]
Error 1
make[5]: ***
[_module_/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP]
Error 2
make[5]: Leaving directory `/usr/src/linux-headers-3.13.0-34-generic'
rm .makelog
cp libafs.ko libafs-3.13.0-34-generic.mp.ko
cp: cannot stat 'libafs.ko': No such file or directory
make[4]: *** [libafs-3.13.0-34-generic.mp.ko] Error 1
make[4]: Leaving directory
`/home/mwaltz/git/openafs/src/libafs/MODLOAD-3.13.0-34-generic-MP'
make[3]: *** [linux_compdirs] Error 2
make[3]: Leaving directory `/home/mwaltz/git/openafs/src/libafs'
make[2]: *** [libafs] Error 2
make[2]: Leaving directory `/home/mwaltz/git/openafs'
make[1]: *** [build] Error 2
make[1]: Leaving directory `/home/mwaltz/git/openafs'
make: *** [all] Error 2
--
Micheal Waltz
Unix Configuration Management (go/ucm)
Qualcomm Inc.
Phone: 858-845-6083
Cell: 858-882-7079
--------------010408000801010606060204
Content-Type: text/x-patch; name="aarch64-openafs-stable-1_6_9.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="aarch64-openafs-stable-1_6_9.patch"
diff --git a/README b/README
index 9ea0509..4e09f54 100644
--- a/README
+++ b/README
@@ -36,7 +36,7 @@ A Configuring
amd64_fbsd_53 (client does not work)
amd64_linux24, amd64_linux26
amd64_nbsd20, amd64_nbsd30, amd64_nbsd40
- arm_linux24, arm_linux26
+ arm_linux24, arm_linux26, arm64_linux26
hp_ux11i, hp_ux110, hp_ux1123 (See notes below for information on
getting missing header)
hp_ux102 (Client port possible, but db servers and utilities work)
diff --git a/acinclude.m4 b/acinclude.m4
index 012d5a4..10e9b7f 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -670,6 +670,9 @@ else
arm*-linux*)
AFS_SYSNAME="arm_linuxXX"
;;
+ aarch64-*-linux*)
+ AFS_SYSNAME="arm64_linuxXX"
+ ;;
parisc-*-linux-gnu|hppa-*-linux-gnu)
AFS_SYSNAME="parisc_linuxXX"
enable_pam="no"
diff --git a/build-tools/config.guess b/build-tools/config.guess
index c2246a4..f833f40 100755
--- a/build-tools/config.guess
+++ b/build-tools/config.guess
@@ -159,7 +159,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
/usr/sbin/$sysctl 2>/dev/null || echo unknown)`
case "${UNAME_MACHINE_ARCH}" in
armeb) machine=armeb-unknown ;;
- arm*) machine=arm-unknown ;;
+ arm*|aarch64*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
@@ -168,7 +168,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# The Operating System including object format, if it has switched
# to ELF recently, or will in the future.
case "${UNAME_MACHINE_ARCH}" in
- arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ arm*|aarch64*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
@@ -872,7 +872,7 @@ EOF
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
exit ;;
- arm*:Linux:*:*)
+ arm*:Linux:*:*|aarch64*:Linux:*:*)
eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
diff --git a/build-tools/config.sub b/build-tools/config.sub
index c2d1257..4492372 100755
--- a/build-tools/config.sub
+++ b/build-tools/config.sub
@@ -249,7 +249,7 @@ case $basic_machine in
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | arc | aarch64 | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
| bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
@@ -331,7 +331,7 @@ case $basic_machine in
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | aarch64-* | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
diff --git a/src/cf/osconf.m4 b/src/cf/osconf.m4
index 02d2725..2bdffa2 100644
--- a/src/cf/osconf.m4
+++ b/src/cf/osconf.m4
@@ -75,7 +75,7 @@ case $AFS_SYSNAME in
SHLIB_LINKER="${MT_CC} -shared"
;;
- arm_linux24 | arm_linux26)
+ arm_linux24 | arm_linux26 | arm64_linux26)
CCOBJ="${CC} -fPIC"
KERN_OPTMZ=-O2
MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
diff --git a/src/config/afs_sysnames.h b/src/config/afs_sysnames.h
index 62b18f3..3894086 100644
--- a/src/config/afs_sysnames.h
+++ b/src/config/afs_sysnames.h
@@ -328,6 +328,8 @@
#define SYS_NAME_ID_arm_linux24 3802
#define SYS_NAME_ID_arm_linux26 3803
+#define SYS_NAME_ID_arm64_linux26 3804
+
#define SYS_NAME_ID_i386_dfbsd_22 3900
#define SYS_NAME_ID_i386_dfbsd_23 3901
#define SYS_NAME_ID_i386_dfbsd_24 3902
diff --git a/src/config/param.arm64_linux26.h b/src/config/param.arm64_linux26.h
new file mode 100644
index 0000000..70197f7
--- /dev/null
+++ b/src/config/param.arm64_linux26.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ *
+ * This software has been released under the terms of the IBM Public
+ * License. For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */
+
+#ifndef AFS_PARAM_H
+#define AFS_PARAM_H
+
+#ifndef UKERNEL
+
+/* This section for kernel libafs compiles only */
+#define AFS_ARM64_LINUX26_ENV 1
+
+#else /* !defined(UKERNEL) */
+
+/* This section for user space compiles only */
+#define UKERNEL 1 /* user space kernel */
+
+#endif /* !defined(UKERNEL) */
+
+/* Machine / Operating system information */
+#define SYS_NAME "arm64_linux26"
+#define SYS_NAME_ID SYS_NAME_ID_arm64_linux26
+#define AFSLITTLE_ENDIAN 1
+#define AFS_SYSCALL 137
+#ifndef __NR_afs_syscall
+#define __NR_afs_syscall 137
+#endif
+
+#endif /* AFS_PARAM_H */
diff --git a/src/packaging/Debian/control b/src/packaging/Debian/control
index 4019d85..9da3200 100644
--- a/src/packaging/Debian/control
+++ b/src/packaging/Debian/control
@@ -13,7 +13,7 @@ Vcs-Git: git://git.debian.org/git/pkg-k5-afs/openafs.git
Vcs-Browser: http://git.debian.org/?p=pkg-k5-afs/openafs.git
Package: openafs-client
-Architecture: alpha amd64 arm armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends: lsof, openafs-modules-dkms (>= ${source:Version})
| openafs-modules-source (>= ${source:Version})
@@ -32,7 +32,7 @@ Description: AFS distributed filesystem client support
Package: openafs-fuse
Priority: extra
-Architecture: alpha amd64 arm armel i386 ia64 lpia powerpc ppc64 s390 s390x sparc
+Architecture: alpha amd64 arm64 arm arm64 armel i386 ia64 lpia powerpc ppc64 s390 s390x sparc
Depends: ${shlibs:Depends}, ${misc:Depends},
openafs-client (= ${binary:Version})
Description: AFS distributed file system experimental FUSE client
@@ -48,7 +48,7 @@ Description: AFS distributed file system experimental FUSE client
Package: openafs-kpasswd
Priority: extra
-Architecture: alpha amd64 arm armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
Depends: ${shlibs:Depends}, ${misc:Depends},
openafs-client (= ${binary:Version})
Conflicts: krb5-user, heimdal-clients, kerberos4kth-clients
@@ -63,7 +63,7 @@ Description: AFS distributed filesystem old password changing
package for new cells or for cells using Kerberos v5.
Package: openafs-fileserver
-Architecture: alpha amd64 arm armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
Depends: ${shlibs:Depends}, ${misc:Depends}, openafs-client, lsb-base
Recommends: ntp | time-daemon
Suggests: openafs-doc
@@ -76,7 +76,7 @@ Description: AFS distributed filesystem file server
installed on any machine that will export files into AFS.
Package: openafs-dbserver
-Architecture: alpha amd64 arm armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
Depends: ${shlibs:Depends}, ${perl:Depends}, ${misc:Depends},
openafs-fileserver, openafs-client (= ${binary:Version})
Suggests: openafs-doc
@@ -102,7 +102,7 @@ Description: AFS distributed filesystem documentation
protocol documentation, and other OpenAFS documentation.
Package: openafs-krb5
-Architecture: alpha amd64 arm armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
Depends: ${shlibs:Depends}, ${misc:Depends}
Breaks: openafs-client (<< 1.4.7.dfsg1-1)
Description: AFS distributed filesystem Kerberos 5 integration
@@ -117,7 +117,7 @@ Description: AFS distributed filesystem Kerberos 5 integration
Package: libkopenafs1
Section: libs
-Architecture: alpha amd64 arm armel i386 ia64 lpia powerpc ppc64 s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel i386 ia64 lpia powerpc ppc64 s390 s390x sparc
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: AFS distributed file system runtime library (PAGs)
AFS is a distributed filesystem allowing cross-platform sharing of
@@ -130,7 +130,7 @@ Description: AFS distributed file system runtime library (PAGs)
Package: libafsauthent1
Section: libs
-Architecture: alpha amd64 arm armel i386 ia64 lpia powerpc ppc64 s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel i386 ia64 lpia powerpc ppc64 s390 s390x sparc
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: AFS distributed file system runtime library (authentication)
AFS is a distributed filesystem allowing cross-platform sharing of
@@ -142,7 +142,7 @@ Description: AFS distributed file system runtime library (authentication)
Package: libafsrpc1
Section: libs
-Architecture: alpha amd64 arm armel i386 ia64 lpia powerpc ppc64 s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel i386 ia64 lpia powerpc ppc64 s390 s390x sparc
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: AFS distributed file system runtime library (RPC layer)
AFS is a distributed filesystem allowing cross-platform sharing of
@@ -155,7 +155,7 @@ Description: AFS distributed file system runtime library (RPC layer)
Package: libopenafs-dev
Section: libdevel
Priority: extra
-Architecture: alpha amd64 arm armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
Depends: ${shlibs:Depends}, ${misc:Depends},
libafsauthent1 (= ${binary:Version}), libafsrpc1 (= ${binary:Version}),
libkopenafs1 (= ${binary:Version}),
@@ -199,7 +199,7 @@ Description: AFS distributed filesystem kernel module DKMS source
approriate configuration for DKMS to build new modules dynamically.
Package: libpam-openafs-kaserver
-Architecture: alpha amd64 arm armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
Section: admin
Priority: extra
Depends: ${shlibs:Depends}, ${misc:Depends},
@@ -217,7 +217,7 @@ Description: AFS distributed filesystem kaserver PAM module
Package: openafs-dbg
Section: debug
Priority: extra
-Architecture: alpha amd64 arm armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel i386 ia64 powerpc powerpcspe ppc64 s390 s390x sparc
Depends: ${misc:Depends}, openafs-fileserver (= ${binary:Version})
| openafs-dbserver (= ${binary:Version})
Description: AFS distributed filesystem debugging information
diff --git a/src/packaging/Debian/module/sysname b/src/packaging/Debian/module/sysname
index 3762999..7a9a171 100755
--- a/src/packaging/Debian/module/sysname
+++ b/src/packaging/Debian/module/sysname
@@ -31,6 +31,13 @@ arm|armel|armv5tel)
;;
esac
;;
+arm64)
+ case $KVERS in
+ 2.6*)
+ echo arm64_linux26
+ ;;
+ esac
+ ;;
i[3456]86)
case $KVERS in
2.2*)
diff --git a/src/packaging/Debian/sysname b/src/packaging/Debian/sysname
index 4827127..e7c9fe8 100755
--- a/src/packaging/Debian/sysname
+++ b/src/packaging/Debian/sysname
@@ -12,6 +12,9 @@ alpha)
arm|armel|armv5tel)
echo arm_linux26
;;
+arm64)
+ echo arm64_linux26
+ ;;
amd64)
echo amd64_linux26
;;
--------------010408000801010606060204--