summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/valgrind/valgrind.mk13
1 files changed, 13 insertions, 0 deletions
diff --git a/package/valgrind/valgrind.mk b/package/valgrind/valgrind.mk
index f8f205e934..9500264f37 100644
--- a/package/valgrind/valgrind.mk
+++ b/package/valgrind/valgrind.mk
@@ -13,6 +13,19 @@ VALGRIND_CONF_OPTS = --disable-tls
VALGRIND_AUTORECONF = YES
VALGRIND_INSTALL_STAGING = YES
+# 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
+# always for the first ISA revision level (R1), even when the user has
+# configured Buildroot for the second ISA revision level (R2).
+#
+# Override the CFLAGS variable (which Valgrind appends to its CFLAGS)
+# 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)"
+endif
+
# 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
OpenPOWER on IntegriCloud