We build SDKs such that gcc-cross-candian is built for only one target *-*-linux and then use -muclibc or -mmusl to let it compile code for other libc variants. This works fine when libc = glibc however it does not work for c++ programs when libc != glibc since there are c++ headers installed under ${includedir}/c++/${BINV}/${TARGET_SYS} which is fine when gcc-runtime and gcc-cross-candian uses same --target options gxx includedir searches in right triplet, but it fails with musl/uclibc since gcc will look for glibc based triplet but gcc-runtime will install them under musl/uclibc triplet. This patch symlinks the musl/uclibc triplet to glibc triplet when libc != glibc This fixes SDKs for musl/uclibc (From OE-Core rev: fcaaabb401fffcda4db9a7d1f927a2a404e4776d) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
45 lines
1.3 KiB
PHP
45 lines
1.3 KiB
PHP
require libgcc-common.inc
|
|
|
|
DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
|
|
|
|
do_install_append_class-target () {
|
|
if [ "${TCLIBC}" != "glibc" ]; then
|
|
case "${TARGET_OS}" in
|
|
"linux-musl" | "linux-uclibc" | "linux-*spe") extra_target_os="linux";;
|
|
"linux-musleabi" | "linux-uclibceabi") extra_target_os="linux-gnueabi";;
|
|
*) extra_target_os="linux";;
|
|
esac
|
|
ln -s ${TARGET_SYS} ${D}${libdir}/${TARGET_ARCH}${TARGET_VENDOR}-$extra_target_os
|
|
fi
|
|
}
|
|
|
|
PACKAGES = "\
|
|
${PN} \
|
|
${PN}-dev \
|
|
${PN}-dbg \
|
|
"
|
|
|
|
# All libgcc source is marked with the exception.
|
|
#
|
|
LICENSE_${PN} = "GPL-3.0-with-GCC-exception"
|
|
LICENSE_${PN}-dev = "GPL-3.0-with-GCC-exception"
|
|
LICENSE_${PN}-dbg = "GPL-3.0-with-GCC-exception"
|
|
|
|
|
|
FILES_${PN}-dev = "\
|
|
${base_libdir}/libgcc*.so \
|
|
${@base_conditional('BASETARGET_SYS', '${TARGET_SYS}', '', '${libdir}/${BASETARGET_SYS}', d)} \
|
|
${libdir}/${TARGET_SYS}/${BINV}* \
|
|
${libdir}/${TARGET_ARCH}${TARGET_VENDOR}* \
|
|
"
|
|
|
|
LIBGCCBUILDTREENAME = "gcc-build-internal-"
|
|
|
|
do_package[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
|
|
do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
|
|
do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
|
|
do_package_write_rpm[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
|
|
|
|
INSANE_SKIP_${PN}-dev = "staticdev"
|
|
|