From 994ac94c57bb422abc818674be4f9e04c8ff60ca Mon Sep 17 00:00:00 2001 From: Brandon Maier Date: Wed, 21 Dec 2016 13:02:16 -0600 Subject: [PATCH] valgrind: Force -fno-stack-protector in CFLAGS Valgrind must be compiled with no stack protection. Valgrind defaults CFLAGS to -fno-stack-protector, but Buildroot's CFLAGS may override if SSP is enabled. Signed-off-by: Brandon Maier Signed-off-by: Matt Weber Signed-off-by: Thomas Petazzoni --- package/valgrind/valgrind.mk | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/package/valgrind/valgrind.mk b/package/valgrind/valgrind.mk index 087a3813af..652432ff37 100644 --- a/package/valgrind/valgrind.mk +++ b/package/valgrind/valgrind.mk @@ -17,6 +17,13 @@ VALGRIND_INSTALL_STAGING = YES # patch 0004-Fixes-for-musl-libc.patch touching configure.ac VALGRIND_AUTORECONF = YES +# Valgrind must be compiled with no stack protection, so forcefully +# pass -fno-stack-protector to override what Buildroot may have in +# TARGET_CFLAGS if BR2_SSP_* support is enabled. +VALGRIND_CFLAGS = \ + $(TARGET_CFLAGS) \ + -fno-stack-protector + # When Valgrind detects a 32-bit MIPS architecture, it forcibly adds # -march=mips32 to CFLAGS; when it detects a 64-bit MIPS architecture, # it forcibly adds -march=mips64. This causes Valgrind to be built @@ -27,9 +34,11 @@ VALGRIND_AUTORECONF = YES # and pass the right -march option, so they take precedence over # Valgrind's wrongfully detected value. ifeq ($(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el),y) -VALGRIND_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -march=$(BR2_GCC_TARGET_ARCH)" +VALGRIND_CFLAGS += -march=$(BR2_GCC_TARGET_ARCH) endif +VALGRIND_CONF_ENV = CFLAGS="$(VALGRIND_CFLAGS)" + # On ARM, Valgrind only supports ARMv7, and uses the arch part of the # host tuple to determine whether it's being built for ARMv7 or # not. Therefore, we adjust the host tuple to specify we're on