* [PATCH BUG #1236 0/3] Unify ldd/ldconfig for all multilib eglibcs
@ 2011-08-01 11:01 Lianhao Lu
2011-08-01 11:02 ` [PATCH BUG #1236 1/3] utils.bbclass/multilib.conf: Added misc supporting functions Lianhao Lu
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Lianhao Lu @ 2011-08-01 11:01 UTC (permalink / raw)
To: openembedded-core
This series of patch allow all the eglibc(s) in the current multilib
configuration have the same ldd/ldconfig settings.
We put the dynamic loaders'(ld.so) names in the dictionary of "ld_info_all"
defined in the file eglibc-ld.inc. This dictionary is indexed by the
TUNENAME. To support a new ABI, new entry should be added into this
dictionary along with the new ABI's TUNENAME.
The information in ld_info_all can be used for both ldd script and ldconfig
binary.
The following changes since commit f94b781695cd8fa387daff16ecbf3987a0883018:
Bruce Ashfield (1):
poky.conf: explicitly referenced preferred linux-yocto version
are available in the git repository at:
git://git.pokylinux.org/poky-contrib llu/bug1236
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=llu/bug1236
Lianhao Lu (3):
utils.bbclass/multilib.conf: Added misc supporting functions.
eglibc: Modify ldd script according to multilib config.
eglibc: Setting KNOWN_INTERPRETER_NAMES for ldconfig.
meta/classes/utils.bbclass | 31 ++++++++++++
meta/conf/bitbake.conf | 1 +
meta/conf/multilib.conf | 6 ++-
.../eglibc/eglibc-2.13/multilib_readlib.patch | 20 ++++++++
meta/recipes-core/eglibc/eglibc-ld.inc | 49 ++++++++++++++++++++
meta/recipes-core/eglibc/eglibc.inc | 1 +
meta/recipes-core/eglibc/eglibc_2.13.bb | 12 ++++-
7 files changed, 118 insertions(+), 2 deletions(-)
create mode 100644 meta/recipes-core/eglibc/eglibc-2.13/multilib_readlib.patch
create mode 100644 meta/recipes-core/eglibc/eglibc-ld.inc
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH BUG #1236 1/3] utils.bbclass/multilib.conf: Added misc supporting functions. 2011-08-01 11:01 [PATCH BUG #1236 0/3] Unify ldd/ldconfig for all multilib eglibcs Lianhao Lu @ 2011-08-01 11:02 ` Lianhao Lu 2011-08-01 11:02 ` [PATCH BUG #1236 2/3] eglibc: Modify ldd script according to multilib config Lianhao Lu ` (3 subsequent siblings) 4 siblings, 0 replies; 7+ messages in thread From: Lianhao Lu @ 2011-08-01 11:02 UTC (permalink / raw) To: openembedded-core 1. Added variable MULTILIB_VARIANTS to store all the instance variants for multilib extend. 2. Added function all_multilib_tune_values to collect the variable values for all multilib instance. Signed-off-by: Lianhao Lu <lianhao.lu@intel.com> --- meta/classes/utils.bbclass | 35 +++++++++++++++++++++++++++++++++++ meta/conf/bitbake.conf | 1 + meta/conf/multilib.conf | 6 +++++- 3 files changed, 41 insertions(+), 1 deletions(-) diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass index 8c3a9b8..f8adaea 100644 --- a/meta/classes/utils.bbclass +++ b/meta/classes/utils.bbclass @@ -341,3 +341,38 @@ def base_set_filespath(path, d): for o in overrides.split(":"): filespath.append(os.path.join(p, o)) return ":".join(filespath) + +def extend_variants(d, var, extend, delim=':'): + """Return a string of all bb class extend variants for the given extend""" + variants = [] + whole = d.getVar(var, True) or "" + for ext in whole.split(): + eext = ext.split(delim) + if len(eext) > 1 and eext[0] == extend: + variants.append(eext[1]) + return " ".join(variants) + +def all_multilib_tune_values(d, var, unique=True): + """Return a string of all ${var} in all multilib tune configuration""" + values = [] + value = d.getVar(var, True) or "" + if value != "": + values.append(value) + variants = d.getVar("MULTILIB_VARIANTS", True) or "" + for item in variants.split(): + localdata = bb.data.createCopy(d) + #Fix ME. OVERRIDES not work, we have to set DEFAULTTUNE to TUNENAME + #overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item + #localdata.setVar("OVERRIDES", overrides) + if localdata.getVar("BBEXTENDVARIANT", True) == item: + tunename=localdata.getVar("TUNENAME", False) or "" + else: + tunename=localdata.getVar("TUNENAME_virtclass-multilib-" + item, False) or "" + if tunename != "": + localdata.setVar("DEFAULTTUNE", tunename) + value = localdata.getVar(var, True) or "" + if value != "": + values.append(value) + if unique: + values = set(values) + return " ".join(values) diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 6e109ec..bcff50e 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -736,3 +736,4 @@ BB_HASHTASK_WHITELIST ?= "(.*-cross$|.*-native$|.*-cross-initial$|.*-cross-inter BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH USERNAME STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE" MLPREFIX ??= "" +MULTILIB_VARIANTS ??= "" diff --git a/meta/conf/multilib.conf b/meta/conf/multilib.conf index 894b7a5..60760df 100644 --- a/meta/conf/multilib.conf +++ b/meta/conf/multilib.conf @@ -1,6 +1,11 @@ baselib = "${@d.getVar('BASE_LIB_tune-' + (d.getVar('DEFAULTTUNE', True) or 'INVALID'), True) or 'lib'}" +MULTILIB_VARIANTS = "${@extend_variants(d,'MULTILIBS','multilib')}" + +TUNENAME_virtclass-multilib-lib64 ?= "x86-64" +TUNENAME_virtclass-multilib-lib32 ?= "x86" + MULTILIBS ??= "multilib:lib32" BBCLASSEXTEND_append_pn-linux-libc-headers = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-eglibc-initial = " ${MULTILIBS}" @@ -21,4 +26,3 @@ BBCLASSEXTEND_append_pn-bash = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-ncurses = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-expat = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-eglibc-locale = " ${MULTILIBS}" - -- 1.7.0.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH BUG #1236 2/3] eglibc: Modify ldd script according to multilib config. 2011-08-01 11:01 [PATCH BUG #1236 0/3] Unify ldd/ldconfig for all multilib eglibcs Lianhao Lu 2011-08-01 11:02 ` [PATCH BUG #1236 1/3] utils.bbclass/multilib.conf: Added misc supporting functions Lianhao Lu @ 2011-08-01 11:02 ` Lianhao Lu 2011-08-01 17:52 ` Saul Wold 2011-08-01 11:02 ` [PATCH BUG #1236 3/3] eglibc: Setting KNOWN_INTERPRETER_NAMES for ldconfig Lianhao Lu ` (2 subsequent siblings) 4 siblings, 1 reply; 7+ messages in thread From: Lianhao Lu @ 2011-08-01 11:02 UTC (permalink / raw) To: openembedded-core Part fix of [BUGID #1236]. 1. Collect all the values for RTLDLIST for the current multilib configuration to modify the ldd scripts. 2. Collect all the values for KNOWN_INTERPRETER_NAMES for the current multilib configuration. Signed-off-by: Lianhao Lu <lianhao.lu@intel.com> --- meta/classes/utils.bbclass | 10 ++---- meta/recipes-core/eglibc/eglibc-ld.inc | 49 +++++++++++++++++++++++++++++++ meta/recipes-core/eglibc/eglibc.inc | 1 + meta/recipes-core/eglibc/eglibc_2.13.bb | 6 +++- 4 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 meta/recipes-core/eglibc/eglibc-ld.inc diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass index f8adaea..ef4d8fb 100644 --- a/meta/classes/utils.bbclass +++ b/meta/classes/utils.bbclass @@ -361,13 +361,9 @@ def all_multilib_tune_values(d, var, unique=True): variants = d.getVar("MULTILIB_VARIANTS", True) or "" for item in variants.split(): localdata = bb.data.createCopy(d) - #Fix ME. OVERRIDES not work, we have to set DEFAULTTUNE to TUNENAME - #overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item - #localdata.setVar("OVERRIDES", overrides) - if localdata.getVar("BBEXTENDVARIANT", True) == item: - tunename=localdata.getVar("TUNENAME", False) or "" - else: - tunename=localdata.getVar("TUNENAME_virtclass-multilib-" + item, False) or "" + overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item + localdata.setVar("OVERRIDES", overrides) + tunename=localdata.getVar("TUNENAME_virtclass-multilib-" + item, False) or localdata.getVar("TUNENAME", False) or "" if tunename != "": localdata.setVar("DEFAULTTUNE", tunename) value = localdata.getVar(var, True) or "" diff --git a/meta/recipes-core/eglibc/eglibc-ld.inc b/meta/recipes-core/eglibc/eglibc-ld.inc new file mode 100644 index 0000000..235ba6c --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-ld.inc @@ -0,0 +1,49 @@ +def ld_append_if_tune_exists(d, infos, dict): + tune = d.getVar("DEFAULTTUNE", True) or "" + libdir = d.getVar("base_libdir", True) or "" + if dict.has_key(tune): + infos['ldconfig'].add('{"' + libdir + '/' + dict[tune][0] + '",' + dict[tune][1] + ' }') + infos['lddrewrite'].add(libdir+'/'+dict[tune][0]) + +def eglibc_dl_info(d): + ld_info_all = { + "mips": ["ld.so.1", "FLAG_ELF_LIBC6"], + "mips64-n32": ["ld.so.1", "FLAG_ELF_LIBC6"], + "mips64": ["ld.so.1", "FLAG_ELF_LIBC6"], + "mipsel": ["ld.so.1", "FLAG_ELF_LIBC6"], + "mips64el-n32": ["ld.so.1", "FLAG_ELF_LIBC6"], + "mips64el": ["ld.so.1", "FLAG_ELF_LIBC6"], + "mips-nf": ["ld.so.1", "FLAG_ELF_LIBC6"], + "mips64-nf-n32": ["ld.so.1", "FLAG_ELF_LIBC6"], + "mips64-nf": ["ld.so.1", "FLAG_ELF_LIBC6"], + "mips64el-nf-n32": ["ld.so.1", "FLAG_ELF_LIBC6"], + "mips64el-nf": ["ld.so.1", "FLAG_ELF_LIBC6"], + "powerpc": ["ld.so.1", "FLAG_ELF_LIBC6"], + "powerpc-nf": ["ld.so.1", "FLAG_ELF_LIBC6"], + "powerpc64": ["ld64.so.1", "FLAG_ELF_LIBC6"], + "powerpc64-nf": ["ld64.so.1", "FLAG_ELF_LIBC6"], + "core2": ["ld-linux.so.2", "FLAG_ELF_LIBC6"], + "core2-64": ["ld-linux-x86-64.so.2", "FLAG_ELF_LIBC6"], + "x86": ["ld-linux.so.2", "FLAG_ELF_LIBC6"], + "x86-64": ["ld-linux-x86-64.so.2", "FLAG_ELF_LIBC6"], + "i586": ["ld-linux.so.2", "FLAG_ELF_LIBC6"], + } + + infos = {'ldconfig':set(), 'lddrewrite':set()} + ld_append_if_tune_exists(d, infos, ld_info_all) + variants = d.getVar("MULTILIB_VARIANTS", True) or "" + for item in variants.split(): + localdata = bb.data.createCopy(d) + overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item + localdata.setVar("OVERRIDES", overrides) + tunename=localdata.getVar("TUNENAME_virtclass-multilib-" + item, False) or localdata.getVar("TUNENAME", False) or "" + if tunename != "": + localdata.setVar("DEFAULTTUNE", tunename) + ld_append_if_tune_exists(localdata, infos, ld_info_all) + + infos['ldconfig'] = ','.join(infos['ldconfig']) + infos['lddrewrite'] = ' '.join(infos['lddrewrite']) + return infos + +EGLIBC_KNOWN_INTERPRETER_NAMES = "${@eglibc_dl_info(d)['ldconfig']}" +RTLDLIST = "${@eglibc_dl_info(d)['lddrewrite']}" diff --git a/meta/recipes-core/eglibc/eglibc.inc b/meta/recipes-core/eglibc/eglibc.inc index 1b2e630..0ed4359 100644 --- a/meta/recipes-core/eglibc/eglibc.inc +++ b/meta/recipes-core/eglibc/eglibc.inc @@ -1,4 +1,5 @@ require eglibc-common.inc +require eglibc-ld.inc STAGINGCC = "gcc-cross-intermediate" STAGINGCC_virtclass-nativesdk = "gcc-crosssdk-intermediate" diff --git a/meta/recipes-core/eglibc/eglibc_2.13.bb b/meta/recipes-core/eglibc/eglibc_2.13.bb index 41fe7c7..b1bfbf1 100644 --- a/meta/recipes-core/eglibc/eglibc_2.13.bb +++ b/meta/recipes-core/eglibc/eglibc_2.13.bb @@ -3,7 +3,7 @@ require eglibc.inc SRCREV = "14157" DEPENDS += "gperf-native" -PR = "r9" +PR = "r10" PR_append = "+svnr${SRCPV}" EGLIBC_BRANCH="eglibc-2_13" @@ -199,6 +199,10 @@ do_compile () { rpcgen -h $r -o $h || oewarn "unable to generate header for $r" done ) + + echo "Adjust dynamic loader list to ${EGLIBC_DYNAMIC_LOADERS}" + [ -z "${RTLDLIST}" ] && return + sed -i ${B}/elf/ldd -e 's#^\(RTLDLIST=\).*$#\1"${RTLDLIST}"#' } require eglibc-package.inc -- 1.7.0.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH BUG #1236 2/3] eglibc: Modify ldd script according to multilib config. 2011-08-01 11:02 ` [PATCH BUG #1236 2/3] eglibc: Modify ldd script according to multilib config Lianhao Lu @ 2011-08-01 17:52 ` Saul Wold 0 siblings, 0 replies; 7+ messages in thread From: Saul Wold @ 2011-08-01 17:52 UTC (permalink / raw) To: Patches and discussions about the oe-core layer On 08/01/2011 04:02 AM, Lianhao Lu wrote: > Part fix of [BUGID #1236]. > This should be [YOCTO #1236] > 1. Collect all the values for RTLDLIST for the current multilib > configuration to modify the ldd scripts. > > 2. Collect all the values for KNOWN_INTERPRETER_NAMES for the current > multilib configuration. > > Signed-off-by: Lianhao Lu<lianhao.lu@intel.com> > --- > meta/classes/utils.bbclass | 10 ++---- > meta/recipes-core/eglibc/eglibc-ld.inc | 49 +++++++++++++++++++++++++++++++ > meta/recipes-core/eglibc/eglibc.inc | 1 + > meta/recipes-core/eglibc/eglibc_2.13.bb | 6 +++- > 4 files changed, 58 insertions(+), 8 deletions(-) > create mode 100644 meta/recipes-core/eglibc/eglibc-ld.inc > > diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass > index f8adaea..ef4d8fb 100644 > --- a/meta/classes/utils.bbclass > +++ b/meta/classes/utils.bbclass > @@ -361,13 +361,9 @@ def all_multilib_tune_values(d, var, unique=True): > variants = d.getVar("MULTILIB_VARIANTS", True) or "" > for item in variants.split(): > localdata = bb.data.createCopy(d) > - #Fix ME. OVERRIDES not work, we have to set DEFAULTTUNE to TUNENAME > - #overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item > - #localdata.setVar("OVERRIDES", overrides) > - if localdata.getVar("BBEXTENDVARIANT", True) == item: > - tunename=localdata.getVar("TUNENAME", False) or "" > - else: > - tunename=localdata.getVar("TUNENAME_virtclass-multilib-" + item, False) or "" > + overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item > + localdata.setVar("OVERRIDES", overrides) > + tunename=localdata.getVar("TUNENAME_virtclass-multilib-" + item, False) or localdata.getVar("TUNENAME", False) or "" > if tunename != "": > localdata.setVar("DEFAULTTUNE", tunename) > value = localdata.getVar(var, True) or "" > diff --git a/meta/recipes-core/eglibc/eglibc-ld.inc b/meta/recipes-core/eglibc/eglibc-ld.inc > new file mode 100644 > index 0000000..235ba6c > --- /dev/null > +++ b/meta/recipes-core/eglibc/eglibc-ld.inc > @@ -0,0 +1,49 @@ > +def ld_append_if_tune_exists(d, infos, dict): > + tune = d.getVar("DEFAULTTUNE", True) or "" > + libdir = d.getVar("base_libdir", True) or "" > + if dict.has_key(tune): > + infos['ldconfig'].add('{"' + libdir + '/' + dict[tune][0] + '",' + dict[tune][1] + ' }') > + infos['lddrewrite'].add(libdir+'/'+dict[tune][0]) > + > +def eglibc_dl_info(d): > + ld_info_all = { > + "mips": ["ld.so.1", "FLAG_ELF_LIBC6"], > + "mips64-n32": ["ld.so.1", "FLAG_ELF_LIBC6"], > + "mips64": ["ld.so.1", "FLAG_ELF_LIBC6"], > + "mipsel": ["ld.so.1", "FLAG_ELF_LIBC6"], > + "mips64el-n32": ["ld.so.1", "FLAG_ELF_LIBC6"], > + "mips64el": ["ld.so.1", "FLAG_ELF_LIBC6"], > + "mips-nf": ["ld.so.1", "FLAG_ELF_LIBC6"], > + "mips64-nf-n32": ["ld.so.1", "FLAG_ELF_LIBC6"], > + "mips64-nf": ["ld.so.1", "FLAG_ELF_LIBC6"], > + "mips64el-nf-n32": ["ld.so.1", "FLAG_ELF_LIBC6"], > + "mips64el-nf": ["ld.so.1", "FLAG_ELF_LIBC6"], > + "powerpc": ["ld.so.1", "FLAG_ELF_LIBC6"], > + "powerpc-nf": ["ld.so.1", "FLAG_ELF_LIBC6"], > + "powerpc64": ["ld64.so.1", "FLAG_ELF_LIBC6"], > + "powerpc64-nf": ["ld64.so.1", "FLAG_ELF_LIBC6"], > + "core2": ["ld-linux.so.2", "FLAG_ELF_LIBC6"], > + "core2-64": ["ld-linux-x86-64.so.2", "FLAG_ELF_LIBC6"], > + "x86": ["ld-linux.so.2", "FLAG_ELF_LIBC6"], > + "x86-64": ["ld-linux-x86-64.so.2", "FLAG_ELF_LIBC6"], > + "i586": ["ld-linux.so.2", "FLAG_ELF_LIBC6"], > + } > + > + infos = {'ldconfig':set(), 'lddrewrite':set()} > + ld_append_if_tune_exists(d, infos, ld_info_all) > + variants = d.getVar("MULTILIB_VARIANTS", True) or "" > + for item in variants.split(): > + localdata = bb.data.createCopy(d) > + overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item > + localdata.setVar("OVERRIDES", overrides) > + tunename=localdata.getVar("TUNENAME_virtclass-multilib-" + item, False) or localdata.getVar("TUNENAME", False) or "" > + if tunename != "": > + localdata.setVar("DEFAULTTUNE", tunename) > + ld_append_if_tune_exists(localdata, infos, ld_info_all) > + > + infos['ldconfig'] = ','.join(infos['ldconfig']) > + infos['lddrewrite'] = ' '.join(infos['lddrewrite']) > + return infos > + > +EGLIBC_KNOWN_INTERPRETER_NAMES = "${@eglibc_dl_info(d)['ldconfig']}" > +RTLDLIST = "${@eglibc_dl_info(d)['lddrewrite']}" > diff --git a/meta/recipes-core/eglibc/eglibc.inc b/meta/recipes-core/eglibc/eglibc.inc > index 1b2e630..0ed4359 100644 > --- a/meta/recipes-core/eglibc/eglibc.inc > +++ b/meta/recipes-core/eglibc/eglibc.inc > @@ -1,4 +1,5 @@ > require eglibc-common.inc > +require eglibc-ld.inc > > STAGINGCC = "gcc-cross-intermediate" > STAGINGCC_virtclass-nativesdk = "gcc-crosssdk-intermediate" > diff --git a/meta/recipes-core/eglibc/eglibc_2.13.bb b/meta/recipes-core/eglibc/eglibc_2.13.bb > index 41fe7c7..b1bfbf1 100644 > --- a/meta/recipes-core/eglibc/eglibc_2.13.bb > +++ b/meta/recipes-core/eglibc/eglibc_2.13.bb > @@ -3,7 +3,7 @@ require eglibc.inc > SRCREV = "14157" > > DEPENDS += "gperf-native" > -PR = "r9" > +PR = "r10" > PR_append = "+svnr${SRCPV}" > > EGLIBC_BRANCH="eglibc-2_13" > @@ -199,6 +199,10 @@ do_compile () { > rpcgen -h $r -o $h || oewarn "unable to generate header for $r" > done > ) > + > + echo "Adjust dynamic loader list to ${EGLIBC_DYNAMIC_LOADERS}" > + [ -z "${RTLDLIST}" ]&& return > + sed -i ${B}/elf/ldd -e 's#^\(RTLDLIST=\).*$#\1"${RTLDLIST}"#' > } > > require eglibc-package.inc ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH BUG #1236 3/3] eglibc: Setting KNOWN_INTERPRETER_NAMES for ldconfig. 2011-08-01 11:01 [PATCH BUG #1236 0/3] Unify ldd/ldconfig for all multilib eglibcs Lianhao Lu 2011-08-01 11:02 ` [PATCH BUG #1236 1/3] utils.bbclass/multilib.conf: Added misc supporting functions Lianhao Lu 2011-08-01 11:02 ` [PATCH BUG #1236 2/3] eglibc: Modify ldd script according to multilib config Lianhao Lu @ 2011-08-01 11:02 ` Lianhao Lu 2011-08-01 11:09 ` [PATCH BUG #1236 0/3] Unify ldd/ldconfig for all multilib eglibcs Koen Kooi 2011-08-11 22:38 ` Saul Wold 4 siblings, 0 replies; 7+ messages in thread From: Lianhao Lu @ 2011-08-01 11:02 UTC (permalink / raw) To: openembedded-core [BUGID #1236] Part of the bug fixing. Set the correct ld.so names for ldconfig to deal with the multilib configuration. Signed-off-by: Lianhao Lu <lianhao.lu@intel.com> --- .../eglibc/eglibc-2.13/multilib_readlib.patch | 20 ++++++++++++++++++++ meta/recipes-core/eglibc/eglibc_2.13.bb | 8 +++++++- 2 files changed, 27 insertions(+), 1 deletions(-) create mode 100644 meta/recipes-core/eglibc/eglibc-2.13/multilib_readlib.patch diff --git a/meta/recipes-core/eglibc/eglibc-2.13/multilib_readlib.patch b/meta/recipes-core/eglibc/eglibc-2.13/multilib_readlib.patch new file mode 100644 index 0000000..3ebcc6b --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.13/multilib_readlib.patch @@ -0,0 +1,20 @@ +Upstream-Status: Inappropriate [embedded specific] + +Replace the OECORE_KNOWN_INTERPRETER_NAMES with the value of +variable EGLIBC_KNOWN_INTERPRETER_NAMES. + +Lianhao Lu, 08/01/2011 + +--- libc/elf/readlib.c.orgin 2011-08-01 15:24:59.054350012 +0800 ++++ libc/elf/readlib.c 2011-08-01 18:10:59.777675546 +0800 +@@ -49,9 +49,7 @@ + static struct known_names interpreters[] = + { + { "/lib/" LD_SO, FLAG_ELF_LIBC6 }, +-#ifdef SYSDEP_KNOWN_INTERPRETER_NAMES +- SYSDEP_KNOWN_INTERPRETER_NAMES +-#endif ++ OECORE_KNOWN_INTERPRETER_NAMES + }; + + static struct known_names known_libs[] = diff --git a/meta/recipes-core/eglibc/eglibc_2.13.bb b/meta/recipes-core/eglibc/eglibc_2.13.bb index b1bfbf1..60f6a74 100644 --- a/meta/recipes-core/eglibc/eglibc_2.13.bb +++ b/meta/recipes-core/eglibc/eglibc_2.13.bb @@ -3,7 +3,7 @@ require eglibc.inc SRCREV = "14157" DEPENDS += "gperf-native" -PR = "r10" +PR = "r11" PR_append = "+svnr${SRCPV}" EGLIBC_BRANCH="eglibc-2_13" @@ -16,6 +16,7 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http file://etc/ld.so.conf \ file://generate-supported.mk \ file://glibc_bug_fix_12454.patch \ + file://multilib_readlib.patch \ " LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \ file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ @@ -81,6 +82,7 @@ do_move_ports() { do_patch_append() { bb.build.exec_func('do_fix_ia_headers', d) + bb.build.exec_func('do_fix_readlib_c', d) } # We need to ensure that all of the i386 and x86_64 headers are identical @@ -170,6 +172,10 @@ do_fix_ia_headers() { cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/user.h ${S}/sysdeps/unix/sysv/linux/i386/sys/user.h } +do_fix_readlib_c () { + sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c +} + do_configure () { # override this function to avoid the autoconf/automake/aclocal/autoheader # calls for now -- 1.7.0.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH BUG #1236 0/3] Unify ldd/ldconfig for all multilib eglibcs 2011-08-01 11:01 [PATCH BUG #1236 0/3] Unify ldd/ldconfig for all multilib eglibcs Lianhao Lu ` (2 preceding siblings ...) 2011-08-01 11:02 ` [PATCH BUG #1236 3/3] eglibc: Setting KNOWN_INTERPRETER_NAMES for ldconfig Lianhao Lu @ 2011-08-01 11:09 ` Koen Kooi 2011-08-11 22:38 ` Saul Wold 4 siblings, 0 replies; 7+ messages in thread From: Koen Kooi @ 2011-08-01 11:09 UTC (permalink / raw) To: Patches and discussions about the oe-core layer Op 1 aug. 2011, om 13:01 heeft Lianhao Lu het volgende geschreven: > This series of patch allow all the eglibc(s) in the current multilib > configuration have the same ldd/ldconfig settings. > > We put the dynamic loaders'(ld.so) names in the dictionary of "ld_info_all" > defined in the file eglibc-ld.inc. This dictionary is indexed by the > TUNENAME. To support a new ABI, new entry should be added into this > dictionary along with the new ABI's TUNENAME. > > The information in ld_info_all can be used for both ldd script and ldconfig > binary. > > The following changes since commit f94b781695cd8fa387daff16ecbf3987a0883018: > Bruce Ashfield (1): > poky.conf: explicitly referenced preferred linux-yocto version > > are available in the git repository at: > > git://git.pokylinux.org/poky-contrib llu/bug1236 > http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=llu/bug1236 That branch is against poky, making it really hard for people to test the patches against the oe-core repo you're submitting it against. Please base patches against the oe-core repo when you send them to the oe-core mailinglist. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH BUG #1236 0/3] Unify ldd/ldconfig for all multilib eglibcs 2011-08-01 11:01 [PATCH BUG #1236 0/3] Unify ldd/ldconfig for all multilib eglibcs Lianhao Lu ` (3 preceding siblings ...) 2011-08-01 11:09 ` [PATCH BUG #1236 0/3] Unify ldd/ldconfig for all multilib eglibcs Koen Kooi @ 2011-08-11 22:38 ` Saul Wold 4 siblings, 0 replies; 7+ messages in thread From: Saul Wold @ 2011-08-11 22:38 UTC (permalink / raw) To: Patches and discussions about the oe-core layer On 08/01/2011 04:01 AM, Lianhao Lu wrote: > This series of patch allow all the eglibc(s) in the current multilib > configuration have the same ldd/ldconfig settings. > > We put the dynamic loaders'(ld.so) names in the dictionary of "ld_info_all" > defined in the file eglibc-ld.inc. This dictionary is indexed by the > TUNENAME. To support a new ABI, new entry should be added into this > dictionary along with the new ABI's TUNENAME. > > The information in ld_info_all can be used for both ldd script and ldconfig > binary. > > The following changes since commit f94b781695cd8fa387daff16ecbf3987a0883018: > Bruce Ashfield (1): > poky.conf: explicitly referenced preferred linux-yocto version > > are available in the git repository at: > > git://git.pokylinux.org/poky-contrib llu/bug1236 > http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=llu/bug1236 > > Lianhao Lu (3): > utils.bbclass/multilib.conf: Added misc supporting functions. > eglibc: Modify ldd script according to multilib config. > eglibc: Setting KNOWN_INTERPRETER_NAMES for ldconfig. > > meta/classes/utils.bbclass | 31 ++++++++++++ > meta/conf/bitbake.conf | 1 + > meta/conf/multilib.conf | 6 ++- > .../eglibc/eglibc-2.13/multilib_readlib.patch | 20 ++++++++ > meta/recipes-core/eglibc/eglibc-ld.inc | 49 ++++++++++++++++++++ > meta/recipes-core/eglibc/eglibc.inc | 1 + > meta/recipes-core/eglibc/eglibc_2.13.bb | 12 ++++- > 7 files changed, 118 insertions(+), 2 deletions(-) > create mode 100644 meta/recipes-core/eglibc/eglibc-2.13/multilib_readlib.patch > create mode 100644 meta/recipes-core/eglibc/eglibc-ld.inc > > > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core > Can you please rebase and test this and resend. Thanks Sau! ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-08-11 22:42 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-08-01 11:01 [PATCH BUG #1236 0/3] Unify ldd/ldconfig for all multilib eglibcs Lianhao Lu 2011-08-01 11:02 ` [PATCH BUG #1236 1/3] utils.bbclass/multilib.conf: Added misc supporting functions Lianhao Lu 2011-08-01 11:02 ` [PATCH BUG #1236 2/3] eglibc: Modify ldd script according to multilib config Lianhao Lu 2011-08-01 17:52 ` Saul Wold 2011-08-01 11:02 ` [PATCH BUG #1236 3/3] eglibc: Setting KNOWN_INTERPRETER_NAMES for ldconfig Lianhao Lu 2011-08-01 11:09 ` [PATCH BUG #1236 0/3] Unify ldd/ldconfig for all multilib eglibcs Koen Kooi 2011-08-11 22:38 ` Saul Wold
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox