Files
meta-external-toolchain/recipes-external/glibc/glibc-sysroot-setup.inc
Christopher Larson bfc86fd9c4 oe.external: move common functions here
Also provide external-common.bbclass to wrap its inclusion and setup
associated metadata. This will make easier to search sysroots for files
without pulling in the rest of the external toolchain class.

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
2015-07-29 13:10:51 -07:00

30 lines
1008 B
PHP

def sysroot_multilib_suffix(d):
PATH = d.getVar('PATH', True)
target_cc_arch = d.getVar('TARGET_CC_ARCH', True)
options = d.getVar('TOOLCHAIN_OPTIONS', True) or d.expand('--sysroot=${STAGING_DIR_TARGET}')
sysroot = oe.external.run(d, 'gcc', *(target_cc_arch.split() + options.split() + ['-print-sysroot'])).rstrip()
staging = d.getVar('STAGING_DIR_HOST', True)
if sysroot == staging:
return ''
else:
return os.path.relpath(sysroot, staging)
create_multilib_link () {
dest="$1"
multilib_suffix="${@sysroot_multilib_suffix(d)}"
if [ -n "$multilib_suffix" ]; then
rm -rf $dest/$multilib_suffix
ln -s . $dest/$multilib_suffix
fi
}
SYSROOT_PREPROCESS_FUNCS += "external_toolchain_sysroot_adjust"
external_toolchain_sysroot_adjust() {
create_multilib_link ${SYSROOT_DESTDIR}
# If the usr/lib directory doesn't exist, the toolchain fails to even
# try to find crti.o in a completely different directory (usr/lib64)
install -d ${SYSROOT_DESTDIR}/usr/lib
}