* [PATCH 0/4] uclibc and related fixes
@ 2011-06-22 1:44 Khem Raj
2011-06-22 1:44 ` [PATCH 1/4] uclibc.inc: libsegfault is only RPROVIDED by uclibc Khem Raj
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: Khem Raj @ 2011-06-22 1:44 UTC (permalink / raw)
To: OE core
Fix uclibc build for x86_64
gettext compile failed on uclibc so fix it and additionally
remove unused patches
Add required support for systemd to function with uclibc
Quash a parse warning where uclibc-initial and uclibc
both provided libsegfault
The following changes since commit 78de64f58b98101f5be5778e9ecbdaae5ba32997:
binutils_2.21.bb: Fix ld segfault exposed by eglibc 2.14 on x86_64 (2011-06-21 17:58:06 -0700)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib kraj/uclibc
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/uclibc
Khem Raj (4):
uclibc.inc: libsegfault is only RPROVIDED by uclibc
gettext-0.18.1.1: Remove unused patches
uclibc/x86_64/uClibc.machine: Enable ARCH_USE_MMU
uclibc: Add support for $ORIGIN
.../gettext/gettext-0.18.1.1/autotools.patch | 64 ------
.../gettext-error_print_progname.patch | 15 --
.../gettext/gettext-0.18.1.1/m4fix.patch | 52 -----
.../gettext-0.18.1.1/use_open_properly.patch | 17 --
meta/recipes-core/gettext/gettext_0.18.1.1.bb | 1 -
.../uclibc/uclibc-git/orign_path.patch | 183 +++++++++++++++++
meta/recipes-core/uclibc/uclibc-git/rtld_no.patch | 215 ++++++++++++++++++++
.../uclibc/uclibc-git/x86_64/uClibc.machine | 3 +-
meta/recipes-core/uclibc/uclibc.inc | 2 +-
meta/recipes-core/uclibc/uclibc_git.bb | 4 +-
10 files changed, 403 insertions(+), 153 deletions(-)
delete mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/autotools.patch
delete mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/gettext-error_print_progname.patch
delete mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/m4fix.patch
delete mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/use_open_properly.patch
create mode 100644 meta/recipes-core/uclibc/uclibc-git/orign_path.patch
create mode 100644 meta/recipes-core/uclibc/uclibc-git/rtld_no.patch
--
1.7.5.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/4] uclibc.inc: libsegfault is only RPROVIDED by uclibc
2011-06-22 1:44 [PATCH 0/4] uclibc and related fixes Khem Raj
@ 2011-06-22 1:44 ` Khem Raj
2011-06-22 1:44 ` [PATCH 2/4] gettext-0.18.1.1: Remove unused patches Khem Raj
` (3 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Khem Raj @ 2011-06-22 1:44 UTC (permalink / raw)
To: OE core
Using ${PN} also means that uclibc-initial gets to provide it
which we do not want
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
meta/recipes-core/uclibc/uclibc.inc | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/meta/recipes-core/uclibc/uclibc.inc b/meta/recipes-core/uclibc/uclibc.inc
index 00f5e8d..06c0f5d 100644
--- a/meta/recipes-core/uclibc/uclibc.inc
+++ b/meta/recipes-core/uclibc/uclibc.inc
@@ -89,7 +89,7 @@ RPROVIDES_uclibc-dev += "libc-dev virtual-libc-dev"
# uclibc does not really have libsegfault but then using the one from glibc is also not
# going to work. So we pretend that we have it to make bitbake not pull other recipes
# to satisfy this dependency for the images/tasks
-RPROVIDES_${PN} += "libsegfault"
+RPROVIDES_uclibc += "libsegfault"
SRC_URI = "\
http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2;name=uClibc-${PV} \
--
1.7.5.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/4] gettext-0.18.1.1: Remove unused patches
2011-06-22 1:44 [PATCH 0/4] uclibc and related fixes Khem Raj
2011-06-22 1:44 ` [PATCH 1/4] uclibc.inc: libsegfault is only RPROVIDED by uclibc Khem Raj
@ 2011-06-22 1:44 ` Khem Raj
2011-06-22 1:44 ` [PATCH 3/4] uclibc/x86_64/uClibc.machine: Enable ARCH_USE_MMU Khem Raj
` (2 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Khem Raj @ 2011-06-22 1:44 UTC (permalink / raw)
To: OE core
gettext-error_print_progname.patch is already applied upstream
others are unapplied.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
.../gettext/gettext-0.18.1.1/autotools.patch | 64 --------------------
.../gettext-error_print_progname.patch | 15 -----
.../gettext/gettext-0.18.1.1/m4fix.patch | 52 ----------------
.../gettext-0.18.1.1/use_open_properly.patch | 17 -----
meta/recipes-core/gettext/gettext_0.18.1.1.bb | 1 -
5 files changed, 0 insertions(+), 149 deletions(-)
delete mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/autotools.patch
delete mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/gettext-error_print_progname.patch
delete mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/m4fix.patch
delete mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/use_open_properly.patch
diff --git a/meta/recipes-core/gettext/gettext-0.18.1.1/autotools.patch b/meta/recipes-core/gettext/gettext-0.18.1.1/autotools.patch
deleted file mode 100644
index e4545fd..0000000
--- a/meta/recipes-core/gettext/gettext-0.18.1.1/autotools.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-Index: gettext-0.17/gettext-runtime/man/Makefile.am
-===================================================================
---- gettext-0.17.orig/gettext-runtime/man/Makefile.am 2007-10-07 21:37:36.000000000 +0200
-+++ gettext-0.17/gettext-runtime/man/Makefile.am 2008-05-09 22:46:37.000000000 +0200
-@@ -158,8 +158,7 @@
- $(MAN2HTML) $(srcdir)/bind_textdomain_codeset.3.in | sed -e '/CreationDate:/d' > t-$@
- mv t-$@ $@
-
--install-html-local:
-- $(mkdir_p) $(DESTDIR)$(htmldir)
-+install-html: installdirs-html
- for file in $(man_HTML); do \
- if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
- $(INSTALL_DATA) $$dir/$$file $(DESTDIR)$(htmldir)/$$file; \
-Index: gettext-0.17/gettext-tools/man/Makefile.am
-===================================================================
---- gettext-0.17.orig/gettext-tools/man/Makefile.am 2007-10-28 00:18:37.000000000 +0200
-+++ gettext-0.17/gettext-tools/man/Makefile.am 2008-05-09 22:46:37.000000000 +0200
-@@ -186,8 +186,7 @@
- $(MAN2HTML) `if test -f autopoint.1; then echo .; else echo $(srcdir); fi`/autopoint.1 | sed -e '/CreationDate:/d' > t-$@
- mv t-$@ $@
-
--install-html-local:
-- $(mkdir_p) $(DESTDIR)$(htmldir)
-+install-html: installdirs-html
- for file in $(man_HTML); do \
- if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
- $(INSTALL_DATA) $$dir/$$file $(DESTDIR)$(htmldir)/$$file; \
-Index: gettext-0.17/gettext-runtime/libasprintf/configure.ac
-===================================================================
---- gettext-0.17.orig/gettext-runtime/libasprintf/configure.ac 2008-05-09 22:53:42.000000000 +0200
-+++ gettext-0.17/gettext-runtime/libasprintf/configure.ac 2008-05-09 22:53:54.000000000 +0200
-@@ -1,5 +1,5 @@
- dnl Configuration for the GNU libasprintf library
--dnl Copyright (C) 2002-2006 Free Software Foundation, Inc.
-+dnl Copyright (C) 2002-2007 Free Software Foundation, Inc.
- dnl
- dnl This program is free software: you can redistribute it and/or modify
- dnl it under the terms of the GNU General Public License as published by
-@@ -54,8 +54,7 @@
- dnl Checks for typedefs, structures, and compiler characteristics.
- AC_C_INLINE
- AC_TYPE_SIZE_T
--gl_AC_TYPE_LONG_LONG
--gt_TYPE_LONGDOUBLE
-+AC_TYPE_LONG_LONG_INT
- gt_TYPE_WCHAR_T
- gt_TYPE_WINT_T
- AC_CHECK_TYPE([ptrdiff_t], ,
-@@ -79,8 +78,11 @@
- AC_SUBST([ALLOCA_H])
-
- AC_CHECK_FUNCS([snprintf vasprintf wcslen])
--AC_CHECK_DECLS([_snprintf])
-+dnl Use the _snprintf function only if it is declared (because on NetBSD it
-+dnl is defined as a weak alias of snprintf; we prefer to use the latter).
-+AC_CHECK_DECLS([_snprintf], , , [#include <stdio.h>])
- gt_PRINTF_POSIX
-+gl_EOVERFLOW
-
- dnl Check for tools needed for formatting the documentation.
- ac_aux_dir_abs=`cd $ac_aux_dir && pwd`
diff --git a/meta/recipes-core/gettext/gettext-0.18.1.1/gettext-error_print_progname.patch b/meta/recipes-core/gettext/gettext-0.18.1.1/gettext-error_print_progname.patch
deleted file mode 100644
index 4a1b2c6..0000000
--- a/meta/recipes-core/gettext/gettext-0.18.1.1/gettext-error_print_progname.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Upstream-Status: Pending
-
-Index: gettext-0.17/gettext-tools/libgettextpo/error.h
-===================================================================
---- gettext-0.17.orig/gettext-tools/libgettextpo/error.h 2008-07-27 21:16:25.561115527 +0200
-+++ gettext-0.17/gettext-tools/libgettextpo/error.h 2008-07-27 21:16:52.454440505 +0200
-@@ -49,7 +49,7 @@
- /* If NULL, error will flush stdout, then print on stderr the program
- name, a colon and a space. Otherwise, error will call this
- function without parameters instead. */
--extern DLL_VARIABLE void (*error_print_progname) (void);
-+void (*error_print_progname) (void);
-
- /* This variable is incremented each time `error' is called. */
- extern DLL_VARIABLE unsigned int error_message_count;
diff --git a/meta/recipes-core/gettext/gettext-0.18.1.1/m4fix.patch b/meta/recipes-core/gettext/gettext-0.18.1.1/m4fix.patch
deleted file mode 100644
index 34930d1..0000000
--- a/meta/recipes-core/gettext/gettext-0.18.1.1/m4fix.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-When I try to `./autogen.sh --quick' CVS gettext, using git Autoconf,
-things fall over like this (several instances):
-
-| gnulib-m4/openmp.m4:29: error: m4_copy: won't overwrite defined macro:
-_AC_LANG_OPENMP(C++)
-| gnulib-m4/openmp.m4:29: the top level
-| autom4te: /usr/bin/m4 failed with exit status: 1
-| aclocal: autom4te failed with exit status: 1
-
-I'm not quite sure whether an Autoconf bug/incompatibility is involved
-here (therefore the Cc: to bug-autoconf). m4_copy wasn't documented in
-earlier Autoconf releases, but there may still have been problematic
-semantic changes, I don't know.
-
-Anyway, the following patch seems to fix it. OK to apply?
-
-Cheers,
-Ralf
-
-2008-12-03 Ralf Wildenhues <[EMAIL PROTECTED]>
-
- * m4/openmp.m4 (AC_OPENMP): Do not define with Autoconf 2.62 or
- newer.
-
-Upstream-Status: Pending
-
-Index: gettext-0.17/gettext-tools/gnulib-m4/openmp.m4
-===================================================================
---- gettext-0.17.orig/gettext-tools/gnulib-m4/openmp.m4 2010-02-01 10:51:00.437788710 +0000
-+++ gettext-0.17/gettext-tools/gnulib-m4/openmp.m4 2010-02-01 10:51:50.697789220 +0000
-@@ -1,11 +1,13 @@
--# openmp.m4 serial 4
--dnl Copyright (C) 2006-2007 Free Software Foundation, Inc.
-+# openmp.m4 serial 5
-+dnl Copyright (C) 2006-2008 Free Software Foundation, Inc.
- dnl This file is free software; the Free Software Foundation
- dnl gives unlimited permission to copy and/or distribute it,
- dnl with or without modifications, as long as this notice is preserved.
-
- dnl This file can be removed once we assume autoconf >= 2.62.
-
-+m4_version_prereq([2.62],, [
-+
- # _AC_LANG_OPENMP
- # ---------------
- # Expands to some language dependent source code for testing the presence of
-@@ -90,3 +92,5 @@
- fi
- AC_SUBST([OPENMP_]_AC_LANG_PREFIX[FLAGS])
- ])
-+
-+])
diff --git a/meta/recipes-core/gettext/gettext-0.18.1.1/use_open_properly.patch b/meta/recipes-core/gettext/gettext-0.18.1.1/use_open_properly.patch
deleted file mode 100644
index a04a32d..0000000
--- a/meta/recipes-core/gettext/gettext-0.18.1.1/use_open_properly.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream-Status: Pending
-
-Index: gettext-0.17/gettext-tools/src/write-catalog.c
-===================================================================
---- gettext-0.17.orig/gettext-tools/src/write-catalog.c 2008-10-16 15:18:16.000000000 +0200
-+++ gettext-0.17/gettext-tools/src/write-catalog.c 2008-10-16 18:17:13.000000000 +0200
-@@ -220,7 +220,9 @@
- /* Open the output file. */
- if (!to_stdout)
- {
-- fd = open (filename, O_WRONLY | O_CREAT);
-+ fd = open (filename, O_WRONLY | O_CREAT,
-+ /* 0666 in portable POSIX notation: */
-+ S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
- if (fd < 0)
- {
- const char *errno_description = strerror (errno);
diff --git a/meta/recipes-core/gettext/gettext_0.18.1.1.bb b/meta/recipes-core/gettext/gettext_0.18.1.1.bb
index f54c111..b64fbdb 100644
--- a/meta/recipes-core/gettext/gettext_0.18.1.1.bb
+++ b/meta/recipes-core/gettext/gettext_0.18.1.1.bb
@@ -15,7 +15,6 @@ SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
"
SRC_URI_append_libc-uclibc = " file://wchar-uclibc.patch \
- file://gettext-error_print_progname.patch \
file://gnulib-uclibc-sched_param-def.patch \
"
--
1.7.5.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/4] uclibc/x86_64/uClibc.machine: Enable ARCH_USE_MMU
2011-06-22 1:44 [PATCH 0/4] uclibc and related fixes Khem Raj
2011-06-22 1:44 ` [PATCH 1/4] uclibc.inc: libsegfault is only RPROVIDED by uclibc Khem Raj
2011-06-22 1:44 ` [PATCH 2/4] gettext-0.18.1.1: Remove unused patches Khem Raj
@ 2011-06-22 1:44 ` Khem Raj
2011-06-22 1:44 ` [PATCH 4/4] uclibc: Add support for $ORIGIN Khem Raj
2011-06-22 15:42 ` [PATCH 0/4] uclibc and related fixes Richard Purdie
4 siblings, 0 replies; 8+ messages in thread
From: Khem Raj @ 2011-06-22 1:44 UTC (permalink / raw)
To: OE core
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
.../uclibc/uclibc-git/x86_64/uClibc.machine | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/meta/recipes-core/uclibc/uclibc-git/x86_64/uClibc.machine b/meta/recipes-core/uclibc/uclibc-git/x86_64/uClibc.machine
index ac50da0..94c008d 100644
--- a/meta/recipes-core/uclibc/uclibc-git/x86_64/uClibc.machine
+++ b/meta/recipes-core/uclibc/uclibc-git/x86_64/uClibc.machine
@@ -32,11 +32,10 @@ ARCH_SUPPORTS_LITTLE_ENDIAN=y
FORCE_OPTIONS_FOR_ARCH=y
ARCH_LITTLE_ENDIAN=y
# ARCH_BIG_ENDIAN is not set
-# ARCH_HAS_NO_MMU is not set
ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
UCLIBC_HAS_FLOATS=y
UCLIBC_HAS_FPU=y
DO_C99_MATH=y
-# UCLIBC_HAS_FENV is not set
KERNEL_HEADERS="<path/to/kernel/headers>"
HAVE_DOT_CONFIG=y
--
1.7.5.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/4] uclibc: Add support for $ORIGIN
2011-06-22 1:44 [PATCH 0/4] uclibc and related fixes Khem Raj
` (2 preceding siblings ...)
2011-06-22 1:44 ` [PATCH 3/4] uclibc/x86_64/uClibc.machine: Enable ARCH_USE_MMU Khem Raj
@ 2011-06-22 1:44 ` Khem Raj
2011-06-22 15:42 ` [PATCH 0/4] uclibc and related fixes Richard Purdie
4 siblings, 0 replies; 8+ messages in thread
From: Khem Raj @ 2011-06-22 1:44 UTC (permalink / raw)
To: OE core
This is required by systemd
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
.../uclibc/uclibc-git/orign_path.patch | 183 +++++++++++++++++
meta/recipes-core/uclibc/uclibc-git/rtld_no.patch | 215 ++++++++++++++++++++
meta/recipes-core/uclibc/uclibc_git.bb | 4 +-
3 files changed, 401 insertions(+), 1 deletions(-)
create mode 100644 meta/recipes-core/uclibc/uclibc-git/orign_path.patch
create mode 100644 meta/recipes-core/uclibc/uclibc-git/rtld_no.patch
diff --git a/meta/recipes-core/uclibc/uclibc-git/orign_path.patch b/meta/recipes-core/uclibc/uclibc-git/orign_path.patch
new file mode 100644
index 0000000..631951e
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-git/orign_path.patch
@@ -0,0 +1,183 @@
+Patch is backported from
+http://lists.busybox.net/pipermail/uclibc/2011-March/045003.html
+
+Upstream-Status: Pending
+
+diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c
+index 505247e..2b2d429 100644
+--- a/ldso/ldso/dl-elf.c
++++ b/ldso/ldso/dl-elf.c
+@@ -133,53 +133,60 @@ _dl_protect_relro (struct elf_resolve *l)
+ * in uClibc/ldso/util/ldd.c */
+ static struct elf_resolve *
+ search_for_named_library(const char *name, int secure, const char *path_list,
+- struct dyn_elf **rpnt)
++ struct dyn_elf **rpnt, const char *origin)
+ {
+- char *path, *path_n, *mylibname;
++ char *mylibname;
++ const char *p, *pn;
+ struct elf_resolve *tpnt;
+- int done;
++ int plen;
+
+ if (path_list==NULL)
+ return NULL;
+
+- /* We need a writable copy of this string, but we don't
+- * need this allocated permanently since we don't want
+- * to leak memory, so use alloca to put path on the stack */
+- done = _dl_strlen(path_list);
+- path = alloca(done + 1);
+-
+ /* another bit of local storage */
+ mylibname = alloca(2050);
+
+- _dl_memcpy(path, path_list, done+1);
+-
+ /* Unlike ldd.c, don't bother to eliminate double //s */
+
+ /* Replace colons with zeros in path_list */
+ /* : at the beginning or end of path maps to CWD */
+ /* :: anywhere maps CWD */
+ /* "" maps to CWD */
+- done = 0;
+- path_n = path;
+- do {
+- if (*path == 0) {
+- *path = ':';
+- done = 1;
+- }
+- if (*path == ':') {
+- *path = 0;
+- if (*path_n)
+- _dl_strcpy(mylibname, path_n);
+- else
+- _dl_strcpy(mylibname, "."); /* Assume current dir if empty path */
+- _dl_strcat(mylibname, "/");
+- _dl_strcat(mylibname, name);
+- if ((tpnt = _dl_load_elf_shared_library(secure, rpnt, mylibname)) != NULL)
+- return tpnt;
+- path_n = path+1;
++ for (p = path_list; p != NULL; p = pn) {
++ pn = _dl_strchr(p + 1, ':');
++ if (pn != NULL) {
++ plen = pn - p;
++ pn++;
++ } else
++ plen = _dl_strlen(p);
++
++ if (plen >= 7 && _dl_memcmp(p, "$ORIGIN", 7) == 0) {
++ int olen;
++ if (secure && plen != 7)
++ continue;
++ if (origin == NULL)
++ continue;
++ for (olen = _dl_strlen(origin) - 1; olen >= 0 && origin[olen] != '/'; olen--)
++ ;
++ if (olen <= 0)
++ continue;
++ _dl_memcpy(&mylibname[0], origin, olen);
++ _dl_memcpy(&mylibname[olen], p + 7, plen - 7);
++ mylibname[olen + plen - 7] = 0;
++ } else if (plen != 0) {
++ _dl_memcpy(mylibname, p, plen);
++ mylibname[plen] = 0;
++ } else {
++ _dl_strcpy(mylibname, ".");
+ }
+- path++;
+- } while (!done);
++ _dl_strcat(mylibname, "/");
++ _dl_strcat(mylibname, name);
++
++ tpnt = _dl_load_elf_shared_library(secure, rpnt, mylibname);
++ if (tpnt != NULL)
++ return tpnt;
++ }
++
+ return NULL;
+ }
+
+@@ -231,7 +238,8 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+ if (pnt) {
+ pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
+ _dl_if_debug_dprint("\tsearching RPATH='%s'\n", pnt);
+- if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt)) != NULL)
++ if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt,
++ tpnt->libname)) != NULL)
+ return tpnt1;
+ }
+ #endif
+@@ -239,7 +247,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+ /* Check in LD_{ELF_}LIBRARY_PATH, if specified and allowed */
+ if (_dl_library_path) {
+ _dl_if_debug_dprint("\tsearching LD_LIBRARY_PATH='%s'\n", _dl_library_path);
+- if ((tpnt1 = search_for_named_library(libname, secure, _dl_library_path, rpnt)) != NULL)
++ if ((tpnt1 = search_for_named_library(libname, secure, _dl_library_path, rpnt, NULL)) != NULL)
+ {
+ return tpnt1;
+ }
+@@ -253,7 +261,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+ if (pnt) {
+ pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
+ _dl_if_debug_dprint("\tsearching RUNPATH='%s'\n", pnt);
+- if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt)) != NULL)
++ if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt, NULL)) != NULL)
+ return tpnt1;
+ }
+ #endif
+@@ -287,7 +295,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+ /* Look for libraries wherever the shared library loader
+ * was installed */
+ _dl_if_debug_dprint("\tsearching ldso dir='%s'\n", _dl_ldsopath);
+- tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath, rpnt);
++ tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath, rpnt, NULL);
+ if (tpnt1 != NULL)
+ return tpnt1;
+
+@@ -300,7 +308,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+ #ifndef __LDSO_CACHE_SUPPORT__
+ ":" UCLIBC_RUNTIME_PREFIX "usr/X11R6/lib"
+ #endif
+- , rpnt);
++ , rpnt, NULL);
+ if (tpnt1 != NULL)
+ return tpnt1;
+
+diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c
+index 7ee9257..9423670 100644
+--- a/ldso/ldso/ldso.c
++++ b/ldso/ldso/ldso.c
+@@ -272,6 +272,20 @@ static void __attribute__ ((destructor)) __attribute_used__ _dl_fini(void)
+ }
+ }
+
++static void _dl_setup_progname(const char *argv0)
++{
++ char image[PATH_MAX];
++ ssize_t s;
++
++ s = _dl_readlink("/proc/self/exe", image, sizeof(image));
++ if (s > 0 && image[0] == '/') {
++ image[s] = 0;
++ _dl_progname = _dl_strdup(image);
++ } else if (argv0) {
++ _dl_progname = argv0;
++ }
++}
++
+ void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
+ ElfW(auxv_t) auxvt[AT_EGID + 1], char **envp,
+ char **argv
+@@ -321,9 +335,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
+ * been fixed up by now. Still no function calls outside of this
+ * library, since the dynamic resolver is not yet ready.
+ */
+- if (argv[0]) {
+- _dl_progname = argv[0];
+- }
++ _dl_setup_progname(argv[0]);
+
+ if (_start == (void *) auxvt[AT_ENTRY].a_un.a_val) {
+ _dl_dprintf(_dl_debug_file, "Standalone execution is not supported yet\n");
diff --git a/meta/recipes-core/uclibc/uclibc-git/rtld_no.patch b/meta/recipes-core/uclibc/uclibc-git/rtld_no.patch
new file mode 100644
index 0000000..30cb7f6
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-git/rtld_no.patch
@@ -0,0 +1,215 @@
+Patch is backported from
+http://lists.busybox.net/pipermail/uclibc/2011-March/045004.html
+
+Upstream-Status: Pending
+
+diff --git a/ldso/include/dl-elf.h b/ldso/include/dl-elf.h
+index 7fbb373..7102351 100644
+--- a/ldso/include/dl-elf.h
++++ b/ldso/include/dl-elf.h
+@@ -25,16 +25,18 @@ static __inline__ void _dl_map_cache(void) { }
+ static __inline__ void _dl_unmap_cache(void) { }
+ #endif
+
++#define DL_RESOLVE_SECURE 0x0001
++#define DL_RESOLVE_NOLOAD 0x0002
+
+ /* Function prototypes for non-static stuff in readelflib1.c */
+ extern void _dl_parse_lazy_relocation_information(struct dyn_elf *rpnt,
+ unsigned long rel_addr, unsigned long rel_size);
+ extern int _dl_parse_relocation_information(struct dyn_elf *rpnt,
+ unsigned long rel_addr, unsigned long rel_size);
+-extern struct elf_resolve * _dl_load_shared_library(int secure,
++extern struct elf_resolve * _dl_load_shared_library(int resolve_flags,
+ struct dyn_elf **rpnt, struct elf_resolve *tpnt, char *full_libname,
+ int trace_loaded_objects);
+-extern struct elf_resolve * _dl_load_elf_shared_library(int secure,
++extern struct elf_resolve * _dl_load_elf_shared_library(int resolve_flags,
+ struct dyn_elf **rpnt, char *libname);
+ extern struct elf_resolve *_dl_check_if_named_library_is_loaded(const char *full_libname,
+ int trace_loaded_objects);
+diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c
+index 2b2d429..6d35bf2 100644
+--- a/ldso/ldso/dl-elf.c
++++ b/ldso/ldso/dl-elf.c
+@@ -132,7 +132,7 @@ _dl_protect_relro (struct elf_resolve *l)
+ /* This function's behavior must exactly match that
+ * in uClibc/ldso/util/ldd.c */
+ static struct elf_resolve *
+-search_for_named_library(const char *name, int secure, const char *path_list,
++search_for_named_library(const char *name, int resolve_flags, const char *path_list,
+ struct dyn_elf **rpnt, const char *origin)
+ {
+ char *mylibname;
+@@ -162,7 +162,7 @@ search_for_named_library(const char *name, int secure, const char *path_list,
+
+ if (plen >= 7 && _dl_memcmp(p, "$ORIGIN", 7) == 0) {
+ int olen;
+- if (secure && plen != 7)
++ if ((resolve_flags & DL_RESOLVE_SECURE) && plen != 7)
+ continue;
+ if (origin == NULL)
+ continue;
+@@ -182,7 +182,7 @@ search_for_named_library(const char *name, int secure, const char *path_list,
+ _dl_strcat(mylibname, "/");
+ _dl_strcat(mylibname, name);
+
+- tpnt = _dl_load_elf_shared_library(secure, rpnt, mylibname);
++ tpnt = _dl_load_elf_shared_library(resolve_flags, rpnt, mylibname);
+ if (tpnt != NULL)
+ return tpnt;
+ }
+@@ -194,7 +194,7 @@ search_for_named_library(const char *name, int secure, const char *path_list,
+ unsigned long _dl_error_number;
+ unsigned long _dl_internal_error_number;
+
+-struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
++struct elf_resolve *_dl_load_shared_library(int resolve_flags, struct dyn_elf **rpnt,
+ struct elf_resolve *tpnt, char *full_libname, int attribute_unused trace_loaded_objects)
+ {
+ char *pnt;
+@@ -223,7 +223,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+
+ if (libname != full_libname) {
+ _dl_if_debug_dprint("\ttrying file='%s'\n", full_libname);
+- tpnt1 = _dl_load_elf_shared_library(secure, rpnt, full_libname);
++ tpnt1 = _dl_load_elf_shared_library(resolve_flags, rpnt, full_libname);
+ if (tpnt1) {
+ return tpnt1;
+ }
+@@ -238,7 +238,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+ if (pnt) {
+ pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
+ _dl_if_debug_dprint("\tsearching RPATH='%s'\n", pnt);
+- if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt,
++ if ((tpnt1 = search_for_named_library(libname, resolve_flags, pnt, rpnt,
+ tpnt->libname)) != NULL)
+ return tpnt1;
+ }
+@@ -247,7 +247,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+ /* Check in LD_{ELF_}LIBRARY_PATH, if specified and allowed */
+ if (_dl_library_path) {
+ _dl_if_debug_dprint("\tsearching LD_LIBRARY_PATH='%s'\n", _dl_library_path);
+- if ((tpnt1 = search_for_named_library(libname, secure, _dl_library_path, rpnt, NULL)) != NULL)
++ if ((tpnt1 = search_for_named_library(libname, resolve_flags, _dl_library_path, rpnt, NULL)) != NULL)
+ {
+ return tpnt1;
+ }
+@@ -261,7 +261,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+ if (pnt) {
+ pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
+ _dl_if_debug_dprint("\tsearching RUNPATH='%s'\n", pnt);
+- if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt, NULL)) != NULL)
++ if ((tpnt1 = search_for_named_library(libname, resolve_flags, pnt, rpnt, NULL)) != NULL)
+ return tpnt1;
+ }
+ #endif
+@@ -284,7 +284,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+ || libent[i].flags == LIB_ELF_LIBC0
+ || libent[i].flags == LIB_ELF_LIBC5)
+ && _dl_strcmp(libname, strs + libent[i].sooffset) == 0
+- && (tpnt1 = _dl_load_elf_shared_library(secure, rpnt, strs + libent[i].liboffset))
++ && (tpnt1 = _dl_load_elf_shared_library(resolve_flags, rpnt, strs + libent[i].liboffset))
+ ) {
+ return tpnt1;
+ }
+@@ -295,14 +295,14 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
+ /* Look for libraries wherever the shared library loader
+ * was installed */
+ _dl_if_debug_dprint("\tsearching ldso dir='%s'\n", _dl_ldsopath);
+- tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath, rpnt, NULL);
++ tpnt1 = search_for_named_library(libname, resolve_flags, _dl_ldsopath, rpnt, NULL);
+ if (tpnt1 != NULL)
+ return tpnt1;
+
+ /* Lastly, search the standard list of paths for the library.
+ This list must exactly match the list in uClibc/ldso/util/ldd.c */
+ _dl_if_debug_dprint("\tsearching full lib path list\n");
+- tpnt1 = search_for_named_library(libname, secure,
++ tpnt1 = search_for_named_library(libname, resolve_flags,
+ UCLIBC_RUNTIME_PREFIX "lib:"
+ UCLIBC_RUNTIME_PREFIX "usr/lib"
+ #ifndef __LDSO_CACHE_SUPPORT__
+@@ -329,7 +329,7 @@ goof:
+ * are required.
+ */
+
+-struct elf_resolve *_dl_load_elf_shared_library(int secure,
++struct elf_resolve *_dl_load_elf_shared_library(int resolve_flags,
+ struct dyn_elf **rpnt, char *libname)
+ {
+ ElfW(Ehdr) *epnt;
+@@ -368,7 +368,7 @@ struct elf_resolve *_dl_load_elf_shared_library(int secure,
+ }
+ /* If we are in secure mode (i.e. a setu/gid binary using LD_PRELOAD),
+ we don't load the library if it isn't setuid. */
+- if (secure) {
++ if (resolve_flags & DL_RESOLVE_SECURE) {
+ if (!(st.st_mode & S_ISUID)) {
+ _dl_close(infile);
+ return NULL;
+@@ -384,6 +384,10 @@ struct elf_resolve *_dl_load_elf_shared_library(int secure,
+ return tpnt;
+ }
+ }
++ if (resolve_flags & DL_RESOLVE_NOLOAD) {
++ _dl_close(infile);
++ return NULL;
++ }
+ header = _dl_mmap((void *) 0, _dl_pagesize, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZE, -1, 0);
+ if (_dl_mmap_check_error(header)) {
+diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c
+index 9423670..b71af34 100644
+--- a/ldso/ldso/ldso.c
++++ b/ldso/ldso/ldso.c
+@@ -646,7 +646,9 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
+ if (!_dl_secure || _dl_strchr(str, '/') == NULL) {
+ _dl_if_debug_dprint("\tfile='%s'; needed by '%s'\n", str, _dl_progname);
+
+- tpnt1 = _dl_load_shared_library(_dl_secure, &rpnt, NULL, str, trace_loaded_objects);
++ tpnt1 = _dl_load_shared_library(
++ _dl_secure ? DL_RESOLVE_SECURE : 0,
++ &rpnt, NULL, str, trace_loaded_objects);
+ if (!tpnt1) {
+ #ifdef __LDSO_LDD_SUPPORT__
+ if (trace_loaded_objects)
+diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c
+index 68cd579..edf38d2 100644
+--- a/ldso/libdl/libdl.c
++++ b/ldso/libdl/libdl.c
+@@ -288,7 +288,7 @@ void *dlopen(const char *libname, int flag)
+ #endif
+
+ /* A bit of sanity checking... */
+- if (!(flag & (RTLD_LAZY|RTLD_NOW))) {
++ if (!(flag & (RTLD_LAZY|RTLD_NOW|RTLD_NOLOAD))) {
+ _dl_error_number = LD_BAD_HANDLE;
+ return NULL;
+ }
+@@ -358,8 +358,9 @@ void *dlopen(const char *libname, int flag)
+ /* Try to load the specified library */
+ _dl_if_debug_print("Trying to dlopen '%s', RTLD_GLOBAL:%d RTLD_NOW:%d\n",
+ (char*)libname, (flag & RTLD_GLOBAL ? 1:0), (now_flag & RTLD_NOW ? 1:0));
+- tpnt = _dl_load_shared_library(0, &rpnt, tfrom, (char*)libname, 0);
+
++ tpnt = _dl_load_shared_library((flag & RTLD_NOLOAD) ? DL_RESOLVE_NOLOAD : 0,
++ &rpnt, tfrom, (char*)libname, 0);
+ if (tpnt == NULL) {
+ _dl_unmap_cache();
+ return NULL;
+diff --git a/libc/sysdeps/linux/common/bits/dlfcn.h b/libc/sysdeps/linux/common/bits/dlfcn.h
+index 4bfbbff..47b42ad 100644
+--- a/libc/sysdeps/linux/common/bits/dlfcn.h
++++ b/libc/sysdeps/linux/common/bits/dlfcn.h
+@@ -24,9 +24,9 @@
+ /* The MODE argument to `dlopen' contains one of the following: */
+ #define RTLD_LAZY 0x00001 /* Lazy function call binding. */
+ #define RTLD_NOW 0x00002 /* Immediate function call binding. */
+-#if 0 /* uClibc doesnt support these */
+-#define RTLD_BINDING_MASK 0x3 /* Mask of binding time value. */
++#define RTLD_BINDING_MASK 0x3 /* Mask of binding time value. */
+ #define RTLD_NOLOAD 0x00004 /* Do not load the object. */
++#if 0 /* uClibc doesnt support these */
+ #define RTLD_DEEPBIND 0x00008 /* Use deep binding. */
+ #endif
diff --git a/meta/recipes-core/uclibc/uclibc_git.bb b/meta/recipes-core/uclibc/uclibc_git.bb
index b8f58f0..6445243 100644
--- a/meta/recipes-core/uclibc/uclibc_git.bb
+++ b/meta/recipes-core/uclibc/uclibc_git.bb
@@ -2,7 +2,7 @@ SRCREV="71d63ed75648da9b0b71afabb9c60aaad792c55c"
require uclibc.inc
PV = "0.9.31+0.9.32rc3"
-PR = "${INC_PR}.3"
+PR = "${INC_PR}.4"
PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-git' ], d)}"
@@ -27,5 +27,7 @@ SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \
file://append_UCLIBC_EXTRA_CFLAGS.patch \
file://compile-arm-fork-with-O2.patch \
file://epoll-asm-fix.patch \
+ file://orign_path.patch \
+ file://rtld_no.patch \
"
S = "${WORKDIR}/git"
--
1.7.5.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 0/4] uclibc and related fixes
2011-06-22 1:44 [PATCH 0/4] uclibc and related fixes Khem Raj
` (3 preceding siblings ...)
2011-06-22 1:44 ` [PATCH 4/4] uclibc: Add support for $ORIGIN Khem Raj
@ 2011-06-22 15:42 ` Richard Purdie
2011-06-22 15:57 ` Khem Raj
4 siblings, 1 reply; 8+ messages in thread
From: Richard Purdie @ 2011-06-22 15:42 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
On Tue, 2011-06-21 at 18:44 -0700, Khem Raj wrote:
> Fix uclibc build for x86_64
> gettext compile failed on uclibc so fix it and additionally
> remove unused patches
> Add required support for systemd to function with uclibc
> Quash a parse warning where uclibc-initial and uclibc
> both provided libsegfault
>
> The following changes since commit 78de64f58b98101f5be5778e9ecbdaae5ba32997:
>
> binutils_2.21.bb: Fix ld segfault exposed by eglibc 2.14 on x86_64 (2011-06-21 17:58:06 -0700)
>
> are available in the git repository at:
> git://git.openembedded.org/openembedded-core-contrib kraj/uclibc
> http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/uclibc
>
> Khem Raj (4):
> uclibc.inc: libsegfault is only RPROVIDED by uclibc
> gettext-0.18.1.1: Remove unused patches
> uclibc/x86_64/uClibc.machine: Enable ARCH_USE_MMU
> uclibc: Add support for $ORIGIN
Merged to master, thanks.
I had reservations about the first one as hardcoding PN can have issues
with BBCLASSEXTEND but looking at the recipe, there are bigger issues if
we were ever to do that :/
Cheers,
Richard
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/4] uclibc and related fixes
2011-06-22 15:42 ` [PATCH 0/4] uclibc and related fixes Richard Purdie
@ 2011-06-22 15:57 ` Khem Raj
2011-06-22 16:10 ` Richard Purdie
0 siblings, 1 reply; 8+ messages in thread
From: Khem Raj @ 2011-06-22 15:57 UTC (permalink / raw)
To: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 1527 bytes --]
On 06/22/2011 08:42 AM, Richard Purdie wrote:
> On Tue, 2011-06-21 at 18:44 -0700, Khem Raj wrote:
>> Fix uclibc build for x86_64
>> gettext compile failed on uclibc so fix it and additionally
>> remove unused patches
>> Add required support for systemd to function with uclibc
>> Quash a parse warning where uclibc-initial and uclibc
>> both provided libsegfault
>>
>> The following changes since commit 78de64f58b98101f5be5778e9ecbdaae5ba32997:
>>
>> binutils_2.21.bb: Fix ld segfault exposed by eglibc 2.14 on x86_64 (2011-06-21 17:58:06 -0700)
>>
>> are available in the git repository at:
>> git://git.openembedded.org/openembedded-core-contrib kraj/uclibc
>> http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/uclibc
>>
>> Khem Raj (4):
>> uclibc.inc: libsegfault is only RPROVIDED by uclibc
>> gettext-0.18.1.1: Remove unused patches
>> uclibc/x86_64/uClibc.machine: Enable ARCH_USE_MMU
>> uclibc: Add support for $ORIGIN
>
> Merged to master, thanks.
>
> I had reservations about the first one as hardcoding PN can have issues
> with BBCLASSEXTEND but looking at the recipe, there are bigger issues if
> we were ever to do that :/
>
in attached patch I moved it to uclibc recipe is that better ?
> Cheers,
>
> Richard
>
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
[-- Attachment #2: 0001-uclibc.inc-libsegfault-is-only-RPROVIDED-by-uclibc.patch --]
[-- Type: text/x-diff, Size: 1956 bytes --]
From 28232ad0c9bea3133493e056e7d828958e74da66 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 11 Jun 2011 01:47:33 -0700
Subject: [PATCH] uclibc.inc: libsegfault is only RPROVIDED by uclibc
Using ${PN} also means that uclibc-initial gets to provide it
which we do not want so move this to uclibc recipe
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
meta/recipes-core/uclibc/uclibc.inc | 1 -
meta/recipes-core/uclibc/uclibc_git.bb | 5 +++++
2 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/meta/recipes-core/uclibc/uclibc.inc b/meta/recipes-core/uclibc/uclibc.inc
index 00f5e8d..13a6164 100644
--- a/meta/recipes-core/uclibc/uclibc.inc
+++ b/meta/recipes-core/uclibc/uclibc.inc
@@ -89,7 +89,6 @@ RPROVIDES_uclibc-dev += "libc-dev virtual-libc-dev"
# uclibc does not really have libsegfault but then using the one from glibc is also not
# going to work. So we pretend that we have it to make bitbake not pull other recipes
# to satisfy this dependency for the images/tasks
-RPROVIDES_${PN} += "libsegfault"
SRC_URI = "\
http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2;name=uClibc-${PV} \
diff --git a/meta/recipes-core/uclibc/uclibc_git.bb b/meta/recipes-core/uclibc/uclibc_git.bb
index 6445243..d5b9e40 100644
--- a/meta/recipes-core/uclibc/uclibc_git.bb
+++ b/meta/recipes-core/uclibc/uclibc_git.bb
@@ -5,6 +5,11 @@ PV = "0.9.31+0.9.32rc3"
PR = "${INC_PR}.4"
PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
+# uclibc does not really have libsegfault but then using the one from glibc is also not
+# going to work. So we pretend that we have it to make bitbake not pull other recipes
+# to satisfy this dependency for the images/tasks
+
+RPROVIDES_${PN} += "libsegfault"
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-git' ], d)}"
SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \
--
1.7.4.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 0/4] uclibc and related fixes
2011-06-22 15:57 ` Khem Raj
@ 2011-06-22 16:10 ` Richard Purdie
0 siblings, 0 replies; 8+ messages in thread
From: Richard Purdie @ 2011-06-22 16:10 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
On Wed, 2011-06-22 at 08:57 -0700, Khem Raj wrote:
> On 06/22/2011 08:42 AM, Richard Purdie wrote:
> > On Tue, 2011-06-21 at 18:44 -0700, Khem Raj wrote:
> >> Fix uclibc build for x86_64
> >> gettext compile failed on uclibc so fix it and additionally
> >> remove unused patches
> >> Add required support for systemd to function with uclibc
> >> Quash a parse warning where uclibc-initial and uclibc
> >> both provided libsegfault
> >>
> >> The following changes since commit 78de64f58b98101f5be5778e9ecbdaae5ba32997:
> >>
> >> binutils_2.21.bb: Fix ld segfault exposed by eglibc 2.14 on x86_64 (2011-06-21 17:58:06 -0700)
> >>
> >> are available in the git repository at:
> >> git://git.openembedded.org/openembedded-core-contrib kraj/uclibc
> >> http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/uclibc
> >>
> >> Khem Raj (4):
> >> uclibc.inc: libsegfault is only RPROVIDED by uclibc
> >> gettext-0.18.1.1: Remove unused patches
> >> uclibc/x86_64/uClibc.machine: Enable ARCH_USE_MMU
> >> uclibc: Add support for $ORIGIN
> >
> > Merged to master, thanks.
> >
> > I had reservations about the first one as hardcoding PN can have issues
> > with BBCLASSEXTEND but looking at the recipe, there are bigger issues if
> > we were ever to do that :/
> >
>
> in attached patch I moved it to uclibc recipe is that better ?
Its better, yes and its what I was going to suggest until I realised
there were other issues that BBCLASSEXTEND would have with the recipe.
Its certainly something to keep in mind in the future...
Cheers,
Richard
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-06-22 16:14 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-22 1:44 [PATCH 0/4] uclibc and related fixes Khem Raj
2011-06-22 1:44 ` [PATCH 1/4] uclibc.inc: libsegfault is only RPROVIDED by uclibc Khem Raj
2011-06-22 1:44 ` [PATCH 2/4] gettext-0.18.1.1: Remove unused patches Khem Raj
2011-06-22 1:44 ` [PATCH 3/4] uclibc/x86_64/uClibc.machine: Enable ARCH_USE_MMU Khem Raj
2011-06-22 1:44 ` [PATCH 4/4] uclibc: Add support for $ORIGIN Khem Raj
2011-06-22 15:42 ` [PATCH 0/4] uclibc and related fixes Richard Purdie
2011-06-22 15:57 ` Khem Raj
2011-06-22 16:10 ` Richard Purdie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox