From e35d6a3ab40a1a34fe466c4dcf6519373fde8442 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 21 Sep 2010 23:11:54 -0700 Subject: binutils_2.20.1.bb: Add patch to fix ld sysroot Fixes the issue seen on builds where libc.so is not being found Signed-off-by: Khem Raj Acked-by: Roman I Khimov --- .../binutils-2.19.1-ld-sysroot.patch | 36 ++++++++++++++++++++++ recipes/binutils/binutils_2.20.1.bb | 3 +- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 recipes/binutils/binutils-2.20.1/binutils-2.19.1-ld-sysroot.patch (limited to 'recipes') diff --git a/recipes/binutils/binutils-2.20.1/binutils-2.19.1-ld-sysroot.patch b/recipes/binutils/binutils-2.20.1/binutils-2.19.1-ld-sysroot.patch new file mode 100644 index 0000000000..b252196a79 --- /dev/null +++ b/recipes/binutils/binutils-2.20.1/binutils-2.19.1-ld-sysroot.patch @@ -0,0 +1,36 @@ +http://sourceware.org/bugzilla/show_bug.cgi?id=10340 + +Signed-off-by: Sven Rebhan + +Always try to prepend the sysroot prefix to absolute filenames first. + +--- a/ld/ldfile.c 2009-06-14 12:46:19.000000000 +0200 ++++ b/ld/ldfile.c.new 2009-06-14 12:46:04.000000000 +0200 +@@ -308,18 +308,24 @@ + directory first. */ + if (! entry->is_archive) + { +- if (entry->sysrooted && IS_ABSOLUTE_PATH (entry->filename)) ++ /* For absolute pathnames, try to always open the file in the ++ sysroot first. If this fails, try to open the file at the ++ given location. */ ++ entry->sysrooted = is_sysrooted_pathname(entry->filename, FALSE); ++ if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted) + { + char *name = concat (ld_sysroot, entry->filename, + (const char *) NULL); + if (ldfile_try_open_bfd (name, entry)) + { + entry->filename = name; ++ entry->sysrooted = TRUE; + return TRUE; + } + free (name); + } +- else if (ldfile_try_open_bfd (entry->filename, entry)) ++ ++ if (ldfile_try_open_bfd (entry->filename, entry)) + { + entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename) + && is_sysrooted_pathname (entry->filename, TRUE); + diff --git a/recipes/binutils/binutils_2.20.1.bb b/recipes/binutils/binutils_2.20.1.bb index d75dbb2569..c2a5dab174 100644 --- a/recipes/binutils/binutils_2.20.1.bb +++ b/recipes/binutils/binutils_2.20.1.bb @@ -1,7 +1,7 @@ require binutils.inc LICENSE = "GPLv3" -PR = "${INC_PR}.1" +PR = "${INC_PR}.2" #COMPATIBLE_TARGET_SYS = "." @@ -15,6 +15,7 @@ SRC_URI = "\ file://binutils-uclibc-gas-needs-libm.patch \ file://binutils-x86_64_i386_biarch.patch \ file://libtool-update.patch \ + file://binutils-2.19.1-ld-sysroot.patch \ " SRC_URI_append_nios2 =" \ -- cgit v1.2.3 From 1fc3b764c48de84260fe9560c66930388cbaa058 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 22 Sep 2010 15:02:53 -0700 Subject: libnl_1.1.bb: Fix the build when libnl2 is staged Currently linker would search for libnl in sysroot first before linking in the one thats build with libnl this patch directs ld to link in with the one thats build and not look for the one in sysroot. As a result we can compile libnl and libnl2 alongside Signed-off-by: Khem Raj --- .../libnl/files/dont-link-libnl-from-sysroot.patch | 26 ++++++++++++++++++++++ recipes/libnl/libnl_1.1.bb | 6 ++--- 2 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 recipes/libnl/files/dont-link-libnl-from-sysroot.patch (limited to 'recipes') diff --git a/recipes/libnl/files/dont-link-libnl-from-sysroot.patch b/recipes/libnl/files/dont-link-libnl-from-sysroot.patch new file mode 100644 index 0000000000..beb63617ac --- /dev/null +++ b/recipes/libnl/files/dont-link-libnl-from-sysroot.patch @@ -0,0 +1,26 @@ +Index: libnl-1.1/src/Makefile +=================================================================== +--- libnl-1.1.orig/src/Makefile 2008-01-14 07:48:45.000000000 -0800 ++++ libnl-1.1/src/Makefile 2010-09-22 14:58:46.820826001 -0700 +@@ -13,7 +13,7 @@ ifeq ($(shell [ ! -r ../Makefile.opts ] + include ../Makefile.opts + endif + +-LDFLAGS += -L../lib -lnl utils.o ++LDFLAGS += ../lib/libnl.so utils.o + CIN := $(wildcard nl-*.c) $(wildcard genl-*.c) $(wildcard nf-*.c) + TOOLS := $(CIN:%.c=%) + +Index: libnl-1.1/tests/Makefile +=================================================================== +--- libnl-1.1.orig/tests/Makefile 2008-01-14 07:48:45.000000000 -0800 ++++ libnl-1.1/tests/Makefile 2010-09-22 14:58:46.820826001 -0700 +@@ -13,7 +13,7 @@ ifeq ($(shell [ ! -r ../Makefile.opts ] + include ../Makefile.opts + endif + +-LDFLAGS += -L../lib -lnl ../src/utils.o ++LDFLAGS += ../lib/libnl.so ../src/utils.o + CIN := $(wildcard test-*.c) + TOOLS := $(CIN:%.c=%) + diff --git a/recipes/libnl/libnl_1.1.bb b/recipes/libnl/libnl_1.1.bb index 06059ca85d..f1b2a9d485 100644 --- a/recipes/libnl/libnl_1.1.bb +++ b/recipes/libnl/libnl_1.1.bb @@ -3,10 +3,7 @@ SECTION = "libs/network" LICENSE = "LGPL" HOMEPAGE = "http://www.infradead.org/~tgr/libnl/" -# If you get errors like : undefined reference to `nl_handle_alloc -# do a bitbake -c clean libnl2 - -PR = "r3" +PR = "r4" inherit autotools pkgconfig @@ -18,6 +15,7 @@ SRC_URI = "\ file://fix-includes.patch \ file://respect-ldflags.patch \ file://netlink-local-fix.patch \ + file://dont-link-libnl-from-sysroot.patch \ " -- cgit v1.2.3