[oe-commits] [openembedded-core] 01/14: linux-yocto-4.19: Fix systemtap issue on armv7

git at git.openembedded.org git at git.openembedded.org
Tue Mar 12 18:58:01 UTC 2019

This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master
in repository openembedded-core.

commit 491f72a2fd8053c4f54fa9b261c65cb394880d02
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Sun Mar 10 07:46:10 2019 +0000

    linux-yocto-4.19: Fix systemtap issue on armv7
    Add temporary patch to fix the systemtap issue on armv7 with the 4.19 kernel
    until Bruce is able to merge this into the repos, similarly to the fix for
    5.0 kernel.
    Alternative patches are being discussed upstream but this fixes the issue for
    us for now in a simple way since we know the gcc versions we use.
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
 .../0001-arm-Makefile-Fix-systemtap-4.19.patch     | 62 ++++++++++++++++++++++
 meta/recipes-kernel/linux/linux-yocto_4.19.bb      |  3 +-
 2 files changed, 64 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-kernel/linux/linux-yocto/0001-arm-Makefile-Fix-systemtap-4.19.patch b/meta/recipes-kernel/linux/linux-yocto/0001-arm-Makefile-Fix-systemtap-4.19.patch
new file mode 100644
index 0000000..0a84b13
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-yocto/0001-arm-Makefile-Fix-systemtap-4.19.patch
@@ -0,0 +1,62 @@
+From c2995494e311c113177db50ff140cebd94fd4011 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie at linuxfoundation.org>
+Date: Sun, 10 Mar 2019 06:43:15 +0000
+Subject: [PATCH] arm/Makefile: Fix systemtap
+Currently systemtap fails to operate correctly on armv7 systems such as beaglebone and
+soon, qemuarm.
+root at qemuarm:/usr/src/kernel# env -uARCH -uKBUILD_EXTMOD -uCROSS_COMPILE -uKBUILD_IMAGE -uKCONFIG_CONFIG -uINSTALL_PATH -uLD_LIBRARY_PATH PATH=/usr/bin:/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin make -C /lib/modules/4.19.19-yocto-standard/build M=/tmp/staptcNU6M modules CONFIG_DEBUG_INFO= CONFIG_STACK_VALIDATION= ARCH=arm stap_4321_src.i --no-print-directory -j2 V=1
+test -e include/generated/autoconf.h -a -e include/config/auto.conf || (		\
+echo >&2;							\
+echo >&2 "  ERROR: Kernel configuration is invalid.";		\
+echo >&2 "         include/generated/autoconf.h or include/config/auto.conf are missing.";\
+echo >&2 "         Run 'make oldconfig && make prepare' on kernel src to fix it.";	\
+echo >&2 ;							\
+mkdir -p /tmp/staptcNU6M/.tmp_versions ; rm -f /tmp/staptcNU6M/.tmp_versions/*
+make -f ./scripts/Makefile.build obj=/tmp/staptcNU6M
+(cat /dev/null;   echo kernel//tmp/staptcNU6M/stap_4321.ko;) > /tmp/staptcNU6M/modules.order
+  gcc -Wp,-MD,/tmp/staptcNU6M/.stap_4321_src.o.d  -nostdinc -isystem /usr/lib/gcc/arm-poky-linux-gnueabi/8.3.0/include -I./arch/arm/include -I./arch/arm/include/generated  -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar  [...]
+/tmp/ccaE9CMG.s: Assembler messages:
+/tmp/ccaE9CMG.s:49: Error: selected processor does not support `dmb ish' in ARM mode
+/tmp/ccaE9CMG.s:52: Error: architectural extension `mp' is not allowed for the current b
+(which was from running the stap command with -v -v -v -k and then being able to run the command individually)
+Note that it says armv5t above.
+That comes from the code this patch changes
+root at qemuarm:/usr/src/kernel# gcc -march=armv7-a /tmp/staptcNU6M/stap_4321_aux_0.c
+cc1: error: -mfloat-abi=hard: selected processor lacks an FPU
+which makes me wonder if cc-option fails unless -mfpu-vfp is on the commandline too.
+Since we have a gcc which accepts the armv7-a arch, just remove the cc-option
+wrapper unconditionally here.
+Upstream-Status: Submitted [Alternative patch discussion on arm-linux mailing list]
+Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
+ arch/arm/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+diff --git a/arch/arm/Makefile b/arch/arm/Makefile
+index ecb99f7ac613..8513ba79ea04 100644
+--- a/arch/arm/Makefile
++++ b/arch/arm/Makefile
+@@ -64,7 +64,7 @@ KBUILD_CFLAGS	+= $(call cc-option,-fno-ipa-sra)
+ # macro, but instead defines a whole series of macros which makes
+ # testing for a specific architecture or later rather impossible.
+ arch-$(CONFIG_CPU_32v7M)	=-D__LINUX_ARM_ARCH__=7 -march=armv7-m -Wa,-march=armv7-m
+-arch-$(CONFIG_CPU_32v7)		=-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a)
++arch-$(CONFIG_CPU_32v7)		=-D__LINUX_ARM_ARCH__=7 -march=armv7-a -Wa$(comma)-march=armv7-a
+ arch-$(CONFIG_CPU_32v6)		=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6)
+ # Only override the compiler option if ARMv6. The ARMv6K extensions are
+ # always available in ARMv7
diff --git a/meta/recipes-kernel/linux/linux-yocto_4.19.bb b/meta/recipes-kernel/linux/linux-yocto_4.19.bb
index 8a4355e..b7e7139 100644
--- a/meta/recipes-kernel/linux/linux-yocto_4.19.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_4.19.bb
@@ -22,7 +22,8 @@ SRCREV_machine ?= "11e0e616ed095bb8012e1b4a231254c9656a0193"
 SRCREV_meta ?= "41fe45f7c5e69f6ec26c657fea16c459544042cf"
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \
-           git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.19;destsuffix=${KMETA}"
+           git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.19;destsuffix=${KMETA} \
+           file://0001-arm-Makefile-Fix-systemtap-4.19.patch"
 LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
 LINUX_VERSION ?= "4.19.19"

To stop receiving notification emails like this one, please contact
the administrator of this repository.

More information about the Openembedded-commits mailing list