CANADIANEXTRAOS = "linux-uclibc linux-musl"
CANADIANEXTRAVENDOR = ""
MODIFYTOS ??= "1"
+GNUEABI_SUFFIX = ""
python () {
archs = d.getVar('PACKAGE_ARCHS', True).split()
sdkarchs = []
d.appendVar("CANADIANEXTRAOS", " linux-gnun32 linux-uclibcn32 linux-musln32")
if tarch == "arm" or tarch == "armeb":
d.setVar("TARGET_OS", "linux-gnueabi")
+ d.setVar("GNUEABI_SUFFIX", "-gnueabi")
else:
d.setVar("TARGET_OS", "linux")
cross_canadian_bindirlinks () {
for i in linux ${CANADIANEXTRAOS}
do
+ i="$i${GNUEABI_SUFFIX}"
for v in ${CANADIANEXTRAVENDOR}
do
d=${D}${bindir}/../${TARGET_ARCH}$v-$i
addtask extra_symlinks after do_multilib_install before do_package do_populate_sysroot
fakeroot python do_extra_symlinks() {
- targetsys = d.getVar('BASETARGET_SYS', True)
-
- if targetsys != d.getVar('TARGET_SYS', True):
- dest = d.getVar('D', True) + d.getVar('libdir', True) + '/' + targetsys
- src = d.getVar('TARGET_SYS', True)
- if not os.path.lexists(dest) and os.path.lexists(d.getVar('D', True) + d.getVar('libdir', True)):
- os.symlink(src, dest)
+ base_targetsys = d.getVar('BASETARGET_SYS', True)
+ targetsys = d.getVar('TARGET_SYS', True)
+
+ if base_targetsys != targetsys:
+ dest = d.getVar('D', True) + d.getVar('libdir', True) + '/' + base_targetsys
+ dest_list = [dest]
+ # For multilib like aarch64 + arm, need 2 symlinks:
+ # 1) BASETARGET_SYS as usual
+ # 2) BASETARGET_SYS + "-gnueabi" for multilib
+ libce = d.getVar('LIBCEXTENSION', True)
+ abie = d.getVar('ABIEXTENSION', True)
+ if abie and libce and targetsys.endswith(libce + abie):
+ dest_list.append(dest + libce + abie)
+ src = targetsys
+ for dir in dest_list:
+ if not os.path.lexists(dir) and os.path.lexists(d.getVar('D', True) + d.getVar('libdir', True)):
+ os.symlink(src, dir)
}
FILES_${PN}-dev = "\
${base_libdir}/libgcc*.so \
- ${@base_conditional('BASETARGET_SYS', '${TARGET_SYS}', '', '${libdir}/${BASETARGET_SYS}', d)} \
+ ${@base_conditional('BASETARGET_SYS', '${TARGET_SYS}', '', '${libdir}/${BASETARGET_SYS}*', d)} \
${libdir}/${TARGET_SYS}/${BINV}* \
"