perf: append endianness argument to ld when building for MIPS
authorVicente Olivert Riera <Vincent.Riera@imgtec.com>
Mon, 22 Feb 2016 10:22:45 +0000 (10:22 +0000)
committerPeter Korsgaard <peter@korsgaard.com>
Sat, 27 Feb 2016 17:59:34 +0000 (18:59 +0100)
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

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
linux/linux-tool-perf.mk

index 07c3514381e3074e97c46d8f7ee0847af0da5f26..1070a1c0985b29c127a891bd5cfacb50bb5e522c 100644 (file)
@@ -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