[OE-core] [PATCH] perf: Fix to obey LD failure on qemux86-64
Sujith H
sujith.h at gmail.com
Thu Sep 8 08:48:12 UTC 2016
From: Christopher Larson <chris_larson at mentor.com>
When built on an i686 host for qemux86-64 without the
fix to obey LD and it fails:
/scratch/dogwood/toolchains/x86_64/bin/i686-pc-linux-gnu-ld:
Relocatable linking with relocations from format elf64-x86-64
(/scratch/dogwood/perf-ld-test/build/tmp/work/qemux86_64-mel-linux/perf/1.0-r9/perf-1.0/fs/fs.o)
to format elf32-i386 (/scratch/dogwood/perf-ld-test/build/tmp/work/qemux86_64-mel-linux/perf/1.0-r9/perf-1.0/fs/libapi-in.o)
is not supported
This is because LD includes HOST_LD_ARCH, which contains TUNE_LDARGS,
which is -m elf32_x86_64 for x86_64. Without that, direct use of ld will fail.
Signed-off-by: Christopher Larson <chris_larson at mentor.com>
Signed-off-by: Sujith Haridasan <Sujith_Haridasan at mentor.com>
---
meta/recipes-kernel/perf/perf.bb | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index 88e3a0a..85fe0ea 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -79,6 +79,7 @@ EXTRA_OEMAKE = '\
ARCH=${ARCH} \
CC="${CC}" \
AR="${AR}" \
+ LD="${LD}" \
EXTRA_CFLAGS="-ldw" \
perfexecdir=${libexecdir} \
NO_GTK2=1 ${TUI_DEFINES} NO_DWARF=1 ${LIBUNWIND_DEFINES} \
@@ -98,6 +99,14 @@ EXTRA_OEMAKE += "\
'infodir=${@os.path.relpath(infodir, prefix)}' \
"
+do_configure_prepend () {
+ for makefile in "${S}/tools/perf/Makefile.perf" \
+ "${S}/tools/lib/api/Makefile"; do
+ if [ -e "$makefile" ]; then
+ sed -i 's,LD = $(CROSS_COMPILE)ld,#LD,' "$makefile"
+ fi
+ done
+}
do_compile() {
# Linux kernel build system is expected to do the right thing
--
1.9.1
More information about the Openembedded-core
mailing list