[Arm-dev] supported 64bit hardware

Wed Dec 14 09:05:01 UTC 2016
Lomovtsev, Vadim <Vadim.Lomovtsev at caviumnetworks.com>

Hi Uli,

Short history and results of how I did this (not sure if I checkout right branch):

 $ git checkout -b odroidc2-3.14.y uli-linux/odroidc2-3.14.y
 $ CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 make odroidc2_defconfig
 $ CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 make rpm-pkg

here I faced the same bug as you did "mixed implicit and static pattern"
which has been addressed by following:
$ git diff -u
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 18ea69f..067b6d3 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -25,10 +25,12 @@ ifeq ($(CONFIG_CPU_BIG_ENDIAN), y)
 KBUILD_CPPFLAGS        += -mbig-endian
 AS             += -EB
 LD             += -EB
+UTS_MACHINE    := aarch64_be
 else
 KBUILD_CPPFLAGS        += -mlittle-endian
 AS             += -EL
 LD             += -EL
+UTS_MACHINE    := aarch64
 endif

 comma = ,

$ CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 make rpm-pkg
[...]
And fall into following (which is not new for me also):
+ cp Image.gz /home/vlomovtsev/rpmbuild/BUILDROOT/kernel-3.14.79_c2_00013_gdea3141_dirty-8.aarch64/boot/vmlinuz-3.14.79-c2-00013-gdea3141-dirty
cp: cannot stat 'Image.gz': No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.axFHeM (%install)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.axFHeM (%install)
/home/vlomovtsev/repo/linux-thunderx-centos/scripts/package/Makefile:39: recipe for target 'rpm-pkg' failed
make[1]: *** [rpm-pkg] Error 1
Makefile:1131: recipe for target 'rpm-pkg' failed
make: *** [rpm-pkg] Error 2


This could be fixed by following (See patch: https://patchwork.codeaurora.org/patch/90165/):

$ git diff HEAD~1
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 067b6d3..36bdd68 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -69,6 +69,8 @@ all:  $(KBUILD_IMAGE) $(KBUILD_DTBS)
 
 boot := arch/arm64/boot
 
+image_name: KBUILD_IMAGE :=$(boot)/$(KBUILD_IMAGE)
+
 Image Image.gz: vmlinux
        $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@


Than it fails once again due to local version postfix in the kernel version (cd wasn't able to find $RPM_BUILD_DIR/lib/modules/3.14.79-c2-00013-gdea3141-dirty folder).
Disabling option CONFIG_LOCALVERSION_AUTO will fix that issue.

And eventually I was able to get rpms.

WBR,
Vadim