summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux/linux-tool-perf.mk13
1 files changed, 13 insertions, 0 deletions
diff --git a/linux/linux-tool-perf.mk b/linux/linux-tool-perf.mk
index 07c351438..1070a1c09 100644
--- a/linux/linux-tool-perf.mk
+++ b/linux/linux-tool-perf.mk
@@ -27,6 +27,19 @@ PERF_MAKE_FLAGS = \
WERROR=0 \
ASCIIDOC=
+# We need to pass an argument to ld for setting the endianness when
+# building it for MIPS architecture, otherwise the default one will
+# always be used (which is big endian) and the compilation for little
+# endian will always fail showing an error like this one:
+# LD foo.o
+# mips-linux-gnu-ld: foo.o: compiled for a little endian system and
+# target is big endian
+ifeq ($(BR2_mips)$(BR2_mips64),y)
+PERF_MAKE_FLAGS += LD="$(TARGET_LD) -EB"
+else ifeq ($(BR2_mipsel)$(BR2_mips64el),y)
+PERF_MAKE_FLAGS += LD="$(TARGET_LD) -EL"
+endif
+
# The call to backtrace() function fails for ARC, because for some
# reason the unwinder from libgcc returns early. Thus the usage of
# backtrace() should be disabled in perf explicitly: at build time