gcc-runtime: Fix C++ multilib headers
The C++ headers are slightly different for different multilibs.  The Yocto
Project name (canonical arch) is different then the gcc multilib directory
name.  Put in code that will syncronize these two items, allows C++ support
to function properly, avoiding conflicts in the process.
@@ -55,6 +55,25 @@ do_install_append_xilinx-standalone_class-target() {
if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then
rm -rf ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}
fi
+
+ # link the C++ header into the place that multilib gcc expects
+ # C++ compiler looks at usr/include/c++/version/canonical-arch/mlib
+ if [ "${TARGET_SYS_MULTILIB_ORIGINAL}" != "" -a "${TARGET_SYS_MULTILIB_ORIGINAL}" != "${TARGET_SYS}" ]; then
+ mlib=${BASE_LIB_tune-${DEFAULTTUNE}}
+ mlib=${mlib##lib/}
+
+ link_name=${D}${includedir}/c++/${BINV}/${TARGET_SYS_MULTILIB_ORIGINAL}/${mlib}
+ target=${D}${includedir}/c++/${BINV}/${TARGET_SYS}
+
+ echo mkdir -p $link_name
+ mkdir -p $link_name
+ for each in bits ext ; do
+ relpath=$(python3 -c "import os.path; print(os.path.relpath('$target/$each', '$(dirname $link_name/$each)'))")
+
+ echo ln -s $relpath $link_name/$each
+ ln -s $relpath $link_name/$each
+ done
+ fi
}
FILES_${PN}-dbg_append_xilinx-standalone_class-target = "\
