mirror of
https://git.yoctoproject.org/poky
synced 2026-05-08 17:19:20 +00:00
glibc: Improve ldd loader specification
Currently if a tune isn't specified in the table, the loader defaults for the architecture are used which may or may not match our path specification. This leads to general confusion. Change the code to use the linuxloader class which works of architecture, not tune. This still isn't perfect as n32/x32 aren't covered but its an improvement to listing all tunes here. (From OE-Core rev: 46a6da24b51426bedd9af8a2d63b2992b9d3fa5a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -1,43 +1,28 @@
|
||||
def ld_append_if_tune_exists(d, infos, dict):
|
||||
tune = d.getVar("DEFAULTTUNE") or ""
|
||||
libdir = d.getVar("base_libdir") or ""
|
||||
if tune in dict:
|
||||
infos['ldconfig'].add('{"' + libdir + '/' + dict[tune][0] + '",' + dict[tune][1] + ' }')
|
||||
infos['lddrewrite'].add(libdir+'/'+dict[tune][0])
|
||||
inherit linuxloader
|
||||
|
||||
def ld_append_if_tune_exists(d, infos):
|
||||
loader = get_linuxloader(d)
|
||||
if loader:
|
||||
infos['ldconfig'].add('{"' + loader + '",' + "FLAG_ELF_LIBC6" + ' }')
|
||||
infos['lddrewrite'].add(loader)
|
||||
|
||||
def glibc_dl_info(d):
|
||||
ld_info_all = {
|
||||
"mipsarch": ["ld.so.1", "FLAG_ELF_LIBC6"],
|
||||
"mipsarchr6": ["ld-linux-mipsn8.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-32": ["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"],
|
||||
"corei7-32": ["ld-linux.so.2", "FLAG_ELF_LIBC6"],
|
||||
"corei7-64": ["ld-linux-x86-64.so.2", "FLAG_ELF_LIBC6"],
|
||||
}
|
||||
|
||||
infos = {'ldconfig':set(), 'lddrewrite':set()}
|
||||
ld_append_if_tune_exists(d, infos, ld_info_all)
|
||||
ld_append_if_tune_exists(d, infos)
|
||||
|
||||
#DEFAULTTUNE_MULTILIB_ORIGINAL
|
||||
original_tune=d.getVar("DEFAULTTUNE_MULTILIB_ORIGINAL")
|
||||
if original_tune:
|
||||
localdata = bb.data.createCopy(d)
|
||||
localdata.setVar("DEFAULTTUNE", original_tune)
|
||||
ld_append_if_tune_exists(localdata, infos, ld_info_all)
|
||||
ld_append_if_tune_exists(localdata, infos)
|
||||
|
||||
variants = d.getVar("MULTILIB_VARIANTS") or ""
|
||||
for item in variants.split():
|
||||
localdata = bb.data.createCopy(d)
|
||||
overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item
|
||||
localdata.setVar("OVERRIDES", overrides)
|
||||
ld_append_if_tune_exists(localdata, infos, ld_info_all)
|
||||
ld_append_if_tune_exists(localdata, infos)
|
||||
infos['ldconfig'] = ','.join(infos['ldconfig'])
|
||||
infos['lddrewrite'] = ' '.join(infos['lddrewrite'])
|
||||
return infos
|
||||
|
||||
Reference in New Issue
Block a user