blob: b982368d86e43f2eba584e230a8f07b1a2e0dfb1 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001def ld_append_if_tune_exists(d, infos, dict):
2 tune = d.getVar("DEFAULTTUNE", True) or ""
3 libdir = d.getVar("base_libdir", True) or ""
4 if tune in dict:
5 infos['ldconfig'].add('{"' + libdir + '/' + dict[tune][0] + '",' + dict[tune][1] + ' }')
6 infos['lddrewrite'].add(libdir+'/'+dict[tune][0])
7
8def glibc_dl_info(d):
9 ld_info_all = {
10 "mips": ["ld.so.1", "FLAG_ELF_LIBC6"],
11 "mips64-n32": ["ld.so.1", "FLAG_ELF_LIBC6"],
12 "mips64": ["ld.so.1", "FLAG_ELF_LIBC6"],
13 "mipsel": ["ld.so.1", "FLAG_ELF_LIBC6"],
14 "mips64el-n32": ["ld.so.1", "FLAG_ELF_LIBC6"],
15 "mips64el": ["ld.so.1", "FLAG_ELF_LIBC6"],
16 "mips-nf": ["ld.so.1", "FLAG_ELF_LIBC6"],
Patrick Williamsc0f7c042017-02-23 20:41:17 -060017 "mipsisa32r6": ["ld-linux-mipsn8.so.1", "FLAG_ELF_LIBC6"],
18 "mipsisa32r6el": ["ld-linux-mipsn8.so.1", "FLAG_ELF_LIBC6"],
Patrick Williamsc124f4f2015-09-15 14:41:29 -050019 "mips64-nf-n32": ["ld.so.1", "FLAG_ELF_LIBC6"],
20 "mips64-nf": ["ld.so.1", "FLAG_ELF_LIBC6"],
21 "mips64el-nf-n32": ["ld.so.1", "FLAG_ELF_LIBC6"],
22 "mips64el-nf": ["ld.so.1", "FLAG_ELF_LIBC6"],
Patrick Williamsc0f7c042017-02-23 20:41:17 -060023 "mipsisa64r6": ["ld-linux-mipsn8.so.1", "FLAG_ELF_LIBC6"],
24 "mipsisa64r6el": ["ld-linux-mipsn8.so.1", "FLAG_ELF_LIBC6"],
Patrick Williamsc124f4f2015-09-15 14:41:29 -050025 "powerpc": ["ld.so.1", "FLAG_ELF_LIBC6"],
26 "powerpc-nf": ["ld.so.1", "FLAG_ELF_LIBC6"],
27 "powerpc64": ["ld64.so.1", "FLAG_ELF_LIBC6"],
28 "powerpc64-nf": ["ld64.so.1", "FLAG_ELF_LIBC6"],
29 "core2-32": ["ld-linux.so.2", "FLAG_ELF_LIBC6"],
30 "core2-64": ["ld-linux-x86-64.so.2", "FLAG_ELF_LIBC6"],
31 "x86": ["ld-linux.so.2", "FLAG_ELF_LIBC6"],
32 "x86-64": ["ld-linux-x86-64.so.2", "FLAG_ELF_LIBC6"],
33 "i586": ["ld-linux.so.2", "FLAG_ELF_LIBC6"],
34 "corei7-32": ["ld-linux.so.2", "FLAG_ELF_LIBC6"],
35 "corei7-64": ["ld-linux-x86-64.so.2", "FLAG_ELF_LIBC6"],
36 }
37
38 infos = {'ldconfig':set(), 'lddrewrite':set()}
39 ld_append_if_tune_exists(d, infos, ld_info_all)
40
41 #DEFAULTTUNE_MULTILIB_ORIGINAL
42 original_tune=d.getVar("DEFAULTTUNE_MULTILIB_ORIGINAL",True)
43 if original_tune:
44 localdata = bb.data.createCopy(d)
45 localdata.setVar("DEFAULTTUNE", original_tune)
46 ld_append_if_tune_exists(localdata, infos, ld_info_all)
47
48 variants = d.getVar("MULTILIB_VARIANTS", True) or ""
49 for item in variants.split():
50 localdata = bb.data.createCopy(d)
51 overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item
52 localdata.setVar("OVERRIDES", overrides)
53 bb.data.update_data(localdata)
54 ld_append_if_tune_exists(localdata, infos, ld_info_all)
55 infos['ldconfig'] = ','.join(infos['ldconfig'])
56 infos['lddrewrite'] = ' '.join(infos['lddrewrite'])
57 return infos
58
59EGLIBC_KNOWN_INTERPRETER_NAMES = "${@glibc_dl_info(d)['ldconfig']}"
60RTLDLIST = "${@glibc_dl_info(d)['lddrewrite']}"
Patrick Williamsd7e96312015-09-22 08:09:05 -050061glibc_dl_info[vardepsexclude] = "OVERRIDES"