mirror of
https://github.com/thead-yocto-mirror/meta-external-toolchain
synced 2026-09-06 16:04:40 +02:00
Merge remote-tracking branch 'gh-public/danny' into HEAD
* gh-public/danny: external-sourcery-toolchain: ship the multilib link in the -dev package external-sourcery-toolchain: put linux headers in eglibc packages toolchain-scripts: add TOOLCHAIN_PATH_ADD to PATH tcmode: use the class override for PATH add tcmode: don't ship a toolchain in the sdk for now
This commit is contained in:
15
classes/toolchain-scripts-external.bbclass
Normal file
15
classes/toolchain-scripts-external.bbclass
Normal file
@@ -0,0 +1,15 @@
|
||||
toolchain_create_sdk_env_script_append () {
|
||||
if [ -n "${TOOLCHAIN_PATH_ADD}" ]; then
|
||||
echo 'PATH="${TOOLCHAIN_PATH_ADD}$PATH"' >>$script
|
||||
fi
|
||||
}
|
||||
toolchain_create_tree_env_script_append () {
|
||||
if [ -n "${TOOLCHAIN_PATH_ADD}" ]; then
|
||||
echo 'PATH="${TOOLCHAIN_PATH_ADD}$PATH"' >>$script
|
||||
fi
|
||||
}
|
||||
toolchain_create_sdk_env_script_for_installer_append () {
|
||||
if [ -n "${TOOLCHAIN_PATH_ADD}" ]; then
|
||||
echo 'PATH="${TOOLCHAIN_PATH_ADD}$PATH"' >>$script
|
||||
fi
|
||||
}
|
||||
@@ -4,13 +4,15 @@
|
||||
|
||||
EXTERNAL_TOOLCHAIN ?= "UNDEFINED"
|
||||
|
||||
TOOLCHAIN_PATH_ADD = "${EXTERNAL_TOOLCHAIN}/bin:"
|
||||
TOOLCHAIN_PATH_ADD = ""
|
||||
TOOLCHAIN_PATH_ADD_class-target = "${EXTERNAL_TOOLCHAIN}/bin:"
|
||||
PATH =. "${TOOLCHAIN_PATH_ADD}"
|
||||
|
||||
python () {
|
||||
if oe.utils.inherits(d, 'native'):
|
||||
d.setVar('TOOLCHAIN_PATH_ADD', '')
|
||||
}
|
||||
# Don't ship any toolchain binaries in the sdk for the time being
|
||||
TOOLCHAIN_HOST_TASK ?= "nativesdk-packagegroup-sdk-host meta-environment-${TRANSLATED_TARGET_ARCH}"
|
||||
|
||||
# Add the external toolchain to the sdk setup script PATH
|
||||
INHERIT += "toolchain-scripts-external"
|
||||
|
||||
localedir = "${exec_prefix}/lib/locale"
|
||||
|
||||
@@ -115,7 +117,7 @@ python toolchain_metadata_setup () {
|
||||
bb.fatal("Error: EXTERNAL_TOOLCHAIN path '%s' does not exist" % external_toolchain)
|
||||
|
||||
if os.path.exists(bb.data.expand('${EXTERNAL_TOOLCHAIN}/bin/gcc', l)):
|
||||
d.setVar('TOOLCHAIN_PATH_ADD', '')
|
||||
d.setVar('TOOLCHAIN_PATH_ADD_class-target', '')
|
||||
populate_toolchain_links(l)
|
||||
|
||||
# The external toolchain may not have been built with the yocto preferred
|
||||
|
||||
@@ -22,7 +22,7 @@ PROVIDES = "\
|
||||
libgcc \
|
||||
"
|
||||
PV = "${CSL_VER_MAIN}"
|
||||
PR = "r15"
|
||||
PR = "r17"
|
||||
|
||||
#SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/${CSL_TARGET_SYS}/arm-${PV}-${TARGET_PREFIX}i686-pc-linux-gnu.tar.bz2"
|
||||
|
||||
@@ -74,15 +74,29 @@ do_install() {
|
||||
sed -i -e "s# ${base_libdir}# ../..${base_libdir}#g" -e "s# ${libdir}# .#g" ${D}${libdir}/libc.so
|
||||
sed -i -e "s# ${base_libdir}# ../..${base_libdir}#g" -e "s# ${libdir}# .#g" ${D}${libdir}/libpthread.so
|
||||
sed -i -e 's/__packed/__attribute__ ((packed))/' ${D}${includedir}/mtd/ubi-user.h
|
||||
|
||||
create_multilib_link ${D}
|
||||
}
|
||||
|
||||
def sysroot_multilib_suffix(d):
|
||||
PATH = d.getVar('PATH', True)
|
||||
cmd = '${CC} -print-sysroot | sed -e "s,^${STAGING_DIR_HOST},,; s,^/,,"'
|
||||
return oe.path.check_output(bb.data.expand(cmd, d), shell=True, env={'PATH': PATH})
|
||||
|
||||
FILES_${PN}-dev += "/${@sysroot_multilib_suffix(d)}"
|
||||
|
||||
create_multilib_link () {
|
||||
dest="$1"
|
||||
sysroot_multilib_suffix="${@sysroot_multilib_suffix(d)}"
|
||||
if [ -n "$sysroot_multilib_suffix" ]; then
|
||||
rm -f $dest/$sysroot_multilib_suffix
|
||||
ln -s . $dest/$sysroot_multilib_suffix
|
||||
fi
|
||||
}
|
||||
|
||||
SYSROOT_PREPROCESS_FUNCS += "external_toolchain_sysroot_adjust"
|
||||
external_toolchain_sysroot_adjust() {
|
||||
dest_sysroot="$(${CC} -print-sysroot | sed -e's,^${STAGING_DIR_HOST},,; s,/$,,')"
|
||||
if [ -n "$dest_sysroot" ]; then
|
||||
rm -f ${SYSROOT_DESTDIR}/$dest_sysroot
|
||||
ln -s . ${SYSROOT_DESTDIR}/$dest_sysroot
|
||||
fi
|
||||
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)
|
||||
@@ -93,7 +107,6 @@ TC_PACKAGES =+ "libgcc libgcc-dev"
|
||||
TC_PACKAGES =+ "libgomp libgomp-dev libgomp-staticdev"
|
||||
TC_PACKAGES =+ "libstdc++ libstdc++-dev libstdc++-staticdev"
|
||||
TC_PACKAGES =+ "gdbserver gdbserver-dbg"
|
||||
TC_PACKAGES =+ "${@base_conditional('PREFERRED_PROVIDER_linux-libc-headers', PN, 'linux-libc-headers linux-libc-headers-dev', '', d)}"
|
||||
TC_PACKAGES =+ "oprofile"
|
||||
PACKAGES =+ "${TC_PACKAGES}"
|
||||
|
||||
@@ -119,8 +132,6 @@ PKGV_libgomp-staticdev = "${CSL_VER_GCC}"
|
||||
PKGV_libstdc++ = "${CSL_VER_GCC}"
|
||||
PKGV_libstdc++-dev = "${CSL_VER_GCC}"
|
||||
PKGV_libstdc++-staticdev = "${CSL_VER_GCC}"
|
||||
PKGV_linux-libc-headers = "${CSL_VER_KERNEL}"
|
||||
PKGV_linux-libc-headers-dev = "${CSL_VER_KERNEL}"
|
||||
PKGV_gdbserver = "${CSL_VER_GDB}"
|
||||
PKGV_gdbserver-dbg = "${CSL_VER_GDB}"
|
||||
PKGV_oprofile = "${CSL_VER_GCC}"
|
||||
@@ -136,14 +147,6 @@ FILES_libstdc++-dev = "${includedir}/c++/${PV} \
|
||||
${libdir}/libstdc++.la \
|
||||
${libdir}/libsupc++.la"
|
||||
FILES_libstdc++-staticdev = "${libdir}/libstdc++.a ${libdir}/libsupc++.a"
|
||||
FILES_linux-libc-headers = "${includedir}/asm* \
|
||||
${includedir}/linux \
|
||||
${includedir}/mtd \
|
||||
${includedir}/rdma \
|
||||
${includedir}/scsi \
|
||||
${includedir}/sound \
|
||||
${includedir}/video \
|
||||
"
|
||||
FILES_gdbserver = "${bindir}/gdbserver ${libdir}/bin/sysroot-gdbserver"
|
||||
FILES_gdbserver-dbg = "${bindir}/.debug/gdbserver"
|
||||
FILES_oprofile = "${datadir}/oprofile/* ${libdir}/oprofile/* ${datadir}/stl.pat"
|
||||
|
||||
Reference in New Issue
Block a user