valgrind: Fix arm build with gcc7

Add function to remove -mcpu compiler options on arm

(From OE-Core rev: 6a053573dc4e6c7490e0e86fd043e425ea85f12c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Khem Raj
2017-04-21 12:23:08 -07:00
committed by Richard Purdie
parent 1335c252a8
commit 9169daddaa
2 changed files with 121 additions and 1 deletions

View File

@@ -0,0 +1,108 @@
From 715cf122388f3527afa5649cebf9f1522c240693 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 20 Apr 2017 10:11:16 -0700
Subject: [PATCH] makefiles: Drop setting -mcpu to cortex-a8 on arm
architecture
We can not assume that all arches armv7+ are cortex-a8 only
it fails to build for rpi which is armv7ve based (cortex-a8) cpu
implementation.
Fixes
| cc1: warning: switch -mcpu=cortex-a8 conflicts with -march=armv7ve switch
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Makefile.all.am | 6 +++---
helgrind/tests/Makefile.am | 6 +++---
none/tests/arm/Makefile.am | 18 +++++++++---------
3 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/Makefile.all.am b/Makefile.all.am
index 02059a3..c7c4700 100644
--- a/Makefile.all.am
+++ b/Makefile.all.am
@@ -197,11 +197,11 @@ AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ \
- $(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
+ $(AM_CFLAGS_BASE) -marm
AM_CFLAGS_PSO_ARM_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) \
- -marm -mcpu=cortex-a8 $(AM_CFLAGS_PSO_BASE)
+ -marm $(AM_CFLAGS_PSO_BASE)
AM_CCASFLAGS_ARM_LINUX = @FLAG_M32@ \
- -marm -mcpu=cortex-a8 -g
+ -marm -g
AM_FLAG_M3264_ARM64_LINUX = @FLAG_M64@
AM_CFLAGS_ARM64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
diff --git a/helgrind/tests/Makefile.am b/helgrind/tests/Makefile.am
index df82169..07eb66a 100644
--- a/helgrind/tests/Makefile.am
+++ b/helgrind/tests/Makefile.am
@@ -189,9 +189,9 @@ if ! VGCONF_PLATFORMS_INCLUDE_X86_DARWIN
endif
if VGCONF_PLATFORMS_INCLUDE_ARM_LINUX
-annotate_hbefore_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
-tc07_hbl1_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
-tc08_hbl2_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
+annotate_hbefore_CFLAGS = $(AM_CFLAGS)
+tc07_hbl1_CFLAGS = $(AM_CFLAGS)
+tc08_hbl2_CFLAGS = $(AM_CFLAGS)
else
annotate_hbefore_CFLAGS = $(AM_CFLAGS)
tc07_hbl1_CFLAGS = $(AM_CFLAGS)
diff --git a/none/tests/arm/Makefile.am b/none/tests/arm/Makefile.am
index 024eb6d..ccecb90 100644
--- a/none/tests/arm/Makefile.am
+++ b/none/tests/arm/Makefile.am
@@ -52,10 +52,10 @@ allexec_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_NONNULL@
# need special helping w.r.t -mfpu and -mfloat-abi, though.
# Also force -O0 since -O takes hundreds of MB of memory
# for v6intThumb.c.
-v6intARM_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -marm
-v6intThumb_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -mthumb
+v6intARM_CFLAGS = $(AM_CFLAGS) -g -O0 -marm
+v6intThumb_CFLAGS = $(AM_CFLAGS) -g -O0 -mthumb
-v6media_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -mthumb
+v6media_CFLAGS = $(AM_CFLAGS) -g -O0 -mthumb
v8crypto_a_CFLAGS = $(AM_CFLAGS) -g -O0 -mfpu=crypto-neon-fp-armv8 -marm
v8crypto_t_CFLAGS = $(AM_CFLAGS) -g -O0 -mfpu=crypto-neon-fp-armv8 -mthumb
@@ -65,23 +65,23 @@ v8memory_a_CFLAGS = $(AM_CFLAGS) -g -O0 \
v8memory_t_CFLAGS = $(AM_CFLAGS) -g -O0 \
-march=armv8-a -mfpu=crypto-neon-fp-armv8 -mthumb
-vfp_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
+vfp_CFLAGS = $(AM_CFLAGS) -g -O0 \
-mfpu=neon \
-mthumb
-neon128_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
+neon128_CFLAGS = $(AM_CFLAGS) -g -O0 \
-mfpu=neon \
-mthumb
-neon64_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
+neon64_CFLAGS = $(AM_CFLAGS) -g -O0 \
-mfpu=neon \
-mthumb
intdiv_CFLAGS = $(AM_CFLAGS) -g -march=armv7ve -mcpu=cortex-a15 -mthumb
-ldrt_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a8 -mthumb
-ldrt_arm_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a8 -marm
+ldrt_CFLAGS = $(AM_CFLAGS) -g -mthumb
+ldrt_arm_CFLAGS = $(AM_CFLAGS) -g -marm
-vcvt_fixed_float_VFP_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a8 -mfpu=vfpv3
+vcvt_fixed_float_VFP_CFLAGS = $(AM_CFLAGS) -g -mfpu=vfpv3
vfpv4_fma_CFLAGS = $(AM_CFLAGS) -g -O0 -march=armv7ve -mcpu=cortex-a15 -mfpu=vfpv4 -marm
--
2.12.2

View File

@@ -23,7 +23,8 @@ SRC_URI = "http://www.valgrind.org/downloads/valgrind-${PV}.tar.bz2 \
file://use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch \
file://avoid-neon-for-targets-which-don-t-support-it.patch \
file://valgrind-make-ld-XXX.so-strlen-intercept-optional.patch \
"
file://0001-makefiles-Drop-setting-mcpu-to-cortex-a8-on-arm-arch.patch \
"
SRC_URI_append_libc-musl = "\
file://0001-fix-build-for-musl-targets.patch \
"
@@ -53,6 +54,7 @@ EXTRA_OECONF += "${@['--enable-only32bit','--enable-only64bit'][d.getVar('SITEIN
# valgrind checks host_cpu "armv7*)", so we need to over-ride the autotools.bbclass default --host option
EXTRA_OECONF_append_arm = " --host=armv7${HOST_VENDOR}-${HOST_OS}"
TARGET_CC_ARCH_remove_arm = "${@get_mcpu(d)}"
EXTRA_OEMAKE = "-w"
@@ -66,10 +68,20 @@ SELECTED_OPTIMIZATION = "${DEBUG_FLAGS}"
CFLAGS_append_libc-uclibc = " -D__UCLIBC__ "
def get_mcpu(d):
for arg in (d.getVar('TUNE_CCARGS') or '').split():
if arg.startswith('-mcpu='):
return arg
else:
continue
return ""
do_install_append () {
install -m 644 ${B}/default.supp ${D}/${libdir}/valgrind/
}
TUNE = "${@strip_mcpu(d)}"
RDEPENDS_${PN} += "perl"
# valgrind needs debug information for ld.so at runtime in order to