Whamcloud - gitweb
LU-6766 build: add support for arm64 95/15395/3
authorArnaud Guignard <arnaud.guignard@cea.fr>
Fri, 19 Jun 2015 08:51:24 +0000 (10:51 +0200)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 3 Sep 2015 14:39:53 +0000 (14:39 +0000)
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 <arnaud.guignard@cea.fr>
Reviewed-on: http://review.whamcloud.com/15395
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
config/lustre-build-linux.m4
lustre.spec.in
lustre/include/lustre/lustre_user.h

index 5eb844b..fdec8ac 100644 (file)
@@ -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
index 1af072b..ab4cb83 100644 (file)
@@ -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
index 43c810a..4571b53 100644 (file)
@@ -62,7 +62,8 @@
 #include <lustre/ll_fiemap.h>
 
 #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