From c1dafd10d807c975b41b5d7f523aae4bbf443968 Mon Sep 17 00:00:00 2001 From: André Draszik Date: Fri, 24 Jun 2016 15:39:42 +0100 Subject: uclibc: backport patch to fix gdb 7.11 compilation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [YOCTO #9781] (From OE-Core rev: 89cbf98fda3eb5d75eb03b3781bd86506ec2b126) Signed-off-by: André Draszik Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/recipes-core/uclibc/uclibc-git.inc | 1 + .../0001-Provide-an-alias-to-_obstack_free.patch | 44 ++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-Provide-an-alias-to-_obstack_free.patch (limited to 'meta') diff --git a/meta/recipes-core/uclibc/uclibc-git.inc b/meta/recipes-core/uclibc/uclibc-git.inc index a56fa7cb64..718bee9eee 100644 --- a/meta/recipes-core/uclibc/uclibc-git.inc +++ b/meta/recipes-core/uclibc/uclibc-git.inc @@ -6,6 +6,7 @@ FILESEXTRAPATHS =. "${FILE_DIRNAME}/uclibc-git:" SRC_URI = "git://uclibc-ng.org/git/uclibc-ng \ file://0001-Disable-lrount_tes-function.patch \ + file://0001-Provide-an-alias-to-_obstack_free.patch \ file://uClibc.machine \ file://uClibc.distro \ file://obstack.cfg \ diff --git a/meta/recipes-core/uclibc/uclibc-git/0001-Provide-an-alias-to-_obstack_free.patch b/meta/recipes-core/uclibc/uclibc-git/0001-Provide-an-alias-to-_obstack_free.patch new file mode 100644 index 0000000000..30b443f592 --- /dev/null +++ b/meta/recipes-core/uclibc/uclibc-git/0001-Provide-an-alias-to-_obstack_free.patch @@ -0,0 +1,44 @@ +From 06e4fe64bbd01f16ee84da161b8e1a61e73b4cdb Mon Sep 17 00:00:00 2001 +From: Alexey Neyman +Date: Thu, 31 Mar 2016 13:02:47 -0700 +Subject: [PATCH] Provide an alias to _obstack_free + +GDB 7.11 does not build if compiled against uclibc-ng (1.0.12 was used, +but the problematic code exists in 1.0.13 as well). The reason is that +GDB release includes its own obstack implementation, but elides the code +if declares a compatible obstack implementation in +libc. uclibc-ng does claim compatible obstack interface (GDB expects +version 2, but accepts version 1 if sizeof(int) == sizeof(size_t)), +however, uclibc-ng does not provide the _obstack_free symbol that is a +part of the interface (glibc does provide this symbol). This later +causes a link failure. + +The attached patch makes uclibc-ng enables an alias _obstack_free -> +obstack_free. + +Signed-off-by: Alexey Neyman +--- +Upstream-Status: Backport + + libc/misc/gnu/obstack.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/libc/misc/gnu/obstack.c b/libc/misc/gnu/obstack.c +index 38cfd83..6acc567 100644 +--- a/libc/misc/gnu/obstack.c ++++ b/libc/misc/gnu/obstack.c +@@ -385,11 +385,9 @@ obstack_free (struct obstack *h, void *obj) + abort (); + } + +-# if 0 + /* Older versions of libc used a function _obstack_free intended to be + called by non-GCC compilers. */ + strong_alias (obstack_free, _obstack_free) +-# endif + + int + _obstack_memory_used (struct obstack *h) +-- +2.8.1 + -- cgit 1.2.3-korg