summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2019-03-10 07:46:10 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-03-12 11:57:41 -0700
commit75d744c26b2e34e433a80f2478e3d2bf85126672 (patch)
tree2b22c6e5d97349b47e2320fc5fc64002f01fe953 /meta
parent9818acbb00b6f78dbfcc5796ec78bf25f6535288 (diff)
downloadpoky-75d744c26b2e34e433a80f2478e3d2bf85126672.tar.gz
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. (From OE-Core rev: 491f72a2fd8053c4f54fa9b261c65cb394880d02) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-kernel/linux/linux-yocto/0001-arm-Makefile-Fix-systemtap-4.19.patch62
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_4.19.bb3
2 files changed, 64 insertions, 1 deletions
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 0000000000..0a84b13b59
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-yocto/0001-arm-Makefile-Fix-systemtap-4.19.patch
@@ -0,0 +1,62 @@
1From c2995494e311c113177db50ff140cebd94fd4011 Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Sun, 10 Mar 2019 06:43:15 +0000
4Subject: [PATCH] arm/Makefile: Fix systemtap
5
6Currently systemtap fails to operate correctly on armv7 systems such as beaglebone and
7soon, qemuarm.
8
9
10root@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
11test -e include/generated/autoconf.h -a -e include/config/auto.conf || ( \
12echo >&2; \
13echo >&2 " ERROR: Kernel configuration is invalid."; \
14echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.";\
15echo >&2 " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
16echo >&2 ; \
17/bin/false)
18mkdir -p /tmp/staptcNU6M/.tmp_versions ; rm -f /tmp/staptcNU6M/.tmp_versions/*
19make -f ./scripts/Makefile.build obj=/tmp/staptcNU6M
20(cat /dev/null; echo kernel//tmp/staptcNU6M/stap_4321.ko;) > /tmp/staptcNU6M/modules.order
21 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 -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -DCC_HAVE_ASM_GOTO -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fno-ipa-sra -mabi=aapcs-linux -mfpu=vfp -funwind-tables -marm -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv5t -Wa,-march=armv7-a -msoft-float -Uarm -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -Os -Wno-maybe-uninitialized --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -Wdeclaration-after-statement -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned -Iinclude2/asm/mach-default -I/lib/modules/4.19.19-yocto-standard/build -include /tmp/staptcNU6M/stapconf_4321.h -D "STP_NO_VELREL_CHECK" -freorder-blocks -fasynchronous-unwind-tables -Wframe-larger-than=512 -fno-ipa-icf -Wno-unused -Wno-tautological-compare -Werror -I/usr/share/systemtap/runtime -DMODULE -DKBUILD_BASENAME='"stap_4321_src"' -DKBUILD_MODNAME='"stap_4321"' -c -o /tmp/staptcNU6M/stap_4321_src.o /tmp/staptcNU6M/stap_4321_src.c
22/tmp/ccaE9CMG.s: Assembler messages:
23/tmp/ccaE9CMG.s:49: Error: selected processor does not support `dmb ish' in ARM mode
24/tmp/ccaE9CMG.s:52: Error: architectural extension `mp' is not allowed for the current b
25
26(which was from running the stap command with -v -v -v -k and then being able to run the command individually)
27
28Note that it says armv5t above.
29
30That comes from the code this patch changes
31
32root@qemuarm:/usr/src/kernel# gcc -march=armv7-a /tmp/staptcNU6M/stap_4321_aux_0.c
33cc1: error: -mfloat-abi=hard: selected processor lacks an FPU
34
35which makes me wonder if cc-option fails unless -mfpu-vfp is on the commandline too.
36
37Since we have a gcc which accepts the armv7-a arch, just remove the cc-option
38wrapper unconditionally here.
39
40Upstream-Status: Submitted [Alternative patch discussion on arm-linux mailing list]
41
42Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
43---
44 arch/arm/Makefile | 2 +-
45 1 file changed, 1 insertion(+), 1 deletion(-)
46
47diff --git a/arch/arm/Makefile b/arch/arm/Makefile
48index ecb99f7ac613..8513ba79ea04 100644
49--- a/arch/arm/Makefile
50+++ b/arch/arm/Makefile
51@@ -64,7 +64,7 @@ KBUILD_CFLAGS += $(call cc-option,-fno-ipa-sra)
52 # macro, but instead defines a whole series of macros which makes
53 # testing for a specific architecture or later rather impossible.
54 arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m -Wa,-march=armv7-m
55-arch-$(CONFIG_CPU_32v7) =-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a)
56+arch-$(CONFIG_CPU_32v7) =-D__LINUX_ARM_ARCH__=7 -march=armv7-a -Wa$(comma)-march=armv7-a
57 arch-$(CONFIG_CPU_32v6) =-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6)
58 # Only override the compiler option if ARMv6. The ARMv6K extensions are
59 # always available in ARMv7
60--
612.20.1
62
diff --git a/meta/recipes-kernel/linux/linux-yocto_4.19.bb b/meta/recipes-kernel/linux/linux-yocto_4.19.bb
index 8a4355ee83..b7e71395e6 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"
22SRCREV_meta ?= "41fe45f7c5e69f6ec26c657fea16c459544042cf" 22SRCREV_meta ?= "41fe45f7c5e69f6ec26c657fea16c459544042cf"
23 23
24SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \ 24SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \
25 git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.19;destsuffix=${KMETA}" 25 git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.19;destsuffix=${KMETA} \
26 file://0001-arm-Makefile-Fix-systemtap-4.19.patch"
26 27
27LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" 28LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
28LINUX_VERSION ?= "4.19.19" 29LINUX_VERSION ?= "4.19.19"