diff options
| -rw-r--r-- | meta/recipes-kernel/linux/linux-yocto/0001-arm-Makefile-Fix-systemtap-4.19.patch | 62 | ||||
| -rw-r--r-- | meta/recipes-kernel/linux/linux-yocto_4.19.bb | 3 |
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 @@ | |||
| 1 | From c2995494e311c113177db50ff140cebd94fd4011 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
| 3 | Date: Sun, 10 Mar 2019 06:43:15 +0000 | ||
| 4 | Subject: [PATCH] arm/Makefile: Fix systemtap | ||
| 5 | |||
| 6 | Currently systemtap fails to operate correctly on armv7 systems such as beaglebone and | ||
| 7 | soon, qemuarm. | ||
| 8 | |||
| 9 | |||
| 10 | root@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 | ||
| 11 | test -e include/generated/autoconf.h -a -e include/config/auto.conf || ( \ | ||
| 12 | echo >&2; \ | ||
| 13 | echo >&2 " ERROR: Kernel configuration is invalid."; \ | ||
| 14 | echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.";\ | ||
| 15 | echo >&2 " Run 'make oldconfig && make prepare' on kernel src to fix it."; \ | ||
| 16 | echo >&2 ; \ | ||
| 17 | /bin/false) | ||
| 18 | mkdir -p /tmp/staptcNU6M/.tmp_versions ; rm -f /tmp/staptcNU6M/.tmp_versions/* | ||
| 19 | make -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 | |||
| 28 | Note that it says armv5t above. | ||
| 29 | |||
| 30 | That comes from the code this patch changes | ||
| 31 | |||
| 32 | root@qemuarm:/usr/src/kernel# gcc -march=armv7-a /tmp/staptcNU6M/stap_4321_aux_0.c | ||
| 33 | cc1: error: -mfloat-abi=hard: selected processor lacks an FPU | ||
| 34 | |||
| 35 | which makes me wonder if cc-option fails unless -mfpu-vfp is on the commandline too. | ||
| 36 | |||
| 37 | Since we have a gcc which accepts the armv7-a arch, just remove the cc-option | ||
| 38 | wrapper unconditionally here. | ||
| 39 | |||
| 40 | Upstream-Status: Submitted [Alternative patch discussion on arm-linux mailing list] | ||
| 41 | |||
| 42 | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
| 43 | --- | ||
| 44 | arch/arm/Makefile | 2 +- | ||
| 45 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 46 | |||
| 47 | diff --git a/arch/arm/Makefile b/arch/arm/Makefile | ||
| 48 | index 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 | -- | ||
| 61 | 2.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" | |||
| 22 | SRCREV_meta ?= "41fe45f7c5e69f6ec26c657fea16c459544042cf" | 22 | SRCREV_meta ?= "41fe45f7c5e69f6ec26c657fea16c459544042cf" |
| 23 | 23 | ||
| 24 | SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \ | 24 | SRC_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 | ||
| 27 | LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" | 28 | LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" |
| 28 | LINUX_VERSION ?= "4.19.19" | 29 | LINUX_VERSION ?= "4.19.19" |
