From 79ec8eaa7b83e522f754bc685110915ad216e548 Mon Sep 17 00:00:00 2001 From: Arnaud Guignard Date: Fri, 19 Jun 2015 10:51:24 +0200 Subject: [PATCH] LU-6766 build: add support for arm64 Expand lustre to support the ARM64 platform. The architecture is reported as aarch64 so add that support to lustre-build-linux.m4. For the Red Hat/Fedora packaging, strip the aarch64 suffix for the required kernel. Add definitions for lstat_t, lstat_f, fstat_f and fstatat_f for aarch64 architecture in lustre/include/lustre/lustre_user.h. Change-Id: I2d4a9e7be4d4c32ab99da802f1b2318764e4386e Signed-off-by: Arnaud Guignard Reviewed-on: http://review.whamcloud.com/15395 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: James Simmons Reviewed-by: Andreas Dilger Reviewed-by: Dmitry Eremin Reviewed-by: Oleg Drokin --- config/lustre-build-linux.m4 | 2 +- lustre.spec.in | 2 +- lustre/include/lustre/lustre_user.h | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/config/lustre-build-linux.m4 b/config/lustre-build-linux.m4 index 5eb844b..fdec8ac 100644 --- a/config/lustre-build-linux.m4 +++ b/config/lustre-build-linux.m4 @@ -545,7 +545,7 @@ $2 AC_DEFUN([LB_LINUX_COMPILE_IFELSE], [m4_ifvaln([$1], [AC_LANG_CONFTEST([AC_LANG_SOURCE([$1])])])dnl rm -f build/conftest.o build/conftest.mod.c build/conftest.ko -SUBARCH=$(echo $target_cpu | sed -e 's/powerpc64le/powerpc/' -e 's/powerpc64/powerpc/' -e 's/x86_64/x86/' -e 's/i.86/x86/' -e 's/k1om/x86/') +SUBARCH=$(echo $target_cpu | sed -e 's/powerpc64le/powerpc/' -e 's/powerpc64/powerpc/' -e 's/x86_64/x86/' -e 's/i.86/x86/' -e 's/k1om/x86/' -e 's/aarch64/arm64/') AS_IF([AC_TRY_COMMAND(cp conftest.c build && make -d [$2] ${LD:+"LD=$LD"} CC="$CC" -f $PWD/build/Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG LINUXINCLUDE="$EXTRA_OFED_INCLUDE -I$LINUX/arch/$SUBARCH/include -Iinclude -Iarch/$SUBARCH/include/generated -I$LINUX/include -Iinclude2 -I$LINUX/include/uapi -Iinclude/generated -I$LINUX/arch/$SUBARCH/include/uapi -Iarch/$SUBARCH/include/generated/uapi -I$LINUX/include/uapi -Iinclude/generated/uapi ${SPL_OBJ:+-include $SPL_OBJ/spl_config.h} ${ZFS_OBJ:+-include $ZFS_OBJ/zfs_config.h} ${SPL:+-I$SPL -I$SPL/include } ${ZFS:+-I$ZFS -I$ZFS/include} -include $CONFIG_INCLUDE" -o tmp_include_depends -o scripts -o include/config/MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $CROSS_VARS $MODULE_TARGET=$PWD/build) >/dev/null && AC_TRY_COMMAND([$3])], [$4], [_AC_MSG_LOG_CONFTEST diff --git a/lustre.spec.in b/lustre.spec.in index 1af072b..ab4cb83 100644 --- a/lustre.spec.in +++ b/lustre.spec.in @@ -35,7 +35,7 @@ %{!?myrelease: %global myrelease %(if [ -n "%downstream_release" ]; then echo -n "%{downstream_release}_"; fi; echo %kversion | tr '-' '_')} # for those uses that don't want the -smp/-bigsmp (or the .arch) on the end # of %kversion - %define krequires %(echo %{kversion} | sed -e 's/\.x86_64$//' -e 's/\.i[3456]86$//' -e 's/-smp$//' -e 's/-bigsmp$//' -e 's/[-.]ppc64$//' -e 's/-default$//') + %define krequires %(echo %{kversion} | sed -e 's/\.x86_64$//' -e 's/\.i[3456]86$//' -e 's/-smp$//' -e 's/-bigsmp$//' -e 's/[-.]ppc64$//' -e 's/\.aarch64$//' -e 's/-default$//') %endif # always append the buildid, even when the caller defines %release diff --git a/lustre/include/lustre/lustre_user.h b/lustre/include/lustre/lustre_user.h index 43c810a..4571b53 100644 --- a/lustre/include/lustre/lustre_user.h +++ b/lustre/include/lustre/lustre_user.h @@ -62,7 +62,8 @@ #include #if defined(__x86_64__) || defined(__ia64__) || defined(__ppc64__) || \ - defined(__craynv) || defined(__mips64__) || defined(__powerpc64__) + defined(__craynv) || defined(__mips64__) || defined(__powerpc64__) || \ + defined(__aarch64__) typedef struct stat lstat_t; # define lstat_f lstat # define fstat_f fstat -- 1.8.3.1