summaryrefslogtreecommitdiff
path: root/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-runtime_%.bbappend
diff options
context:
space:
mode:
Diffstat (limited to 'meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-runtime_%.bbappend')
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-runtime_%.bbappend74
1 files changed, 74 insertions, 0 deletions
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-runtime_%.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-runtime_%.bbappend
new file mode 100644
index 000000000..7057a0576
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-runtime_%.bbappend
@@ -0,0 +1,74 @@
+require gcc-configure-xilinx-standalone.inc
+
+COMPATIBLE_HOST = "${HOST_SYS}"
+
+EXTRA_OECONF_append_xilinx-standalone_class-target = " \
+ --disable-libstdcxx-pch \
+ --with-newlib \
+ --disable-threads \
+ --enable-plugins \
+ --with-gnu-as \
+ --disable-libitm \
+"
+
+EXTRA_OECONF_append_xilinx-standalone_aarch64_class-target = " \
+ --disable-multiarch \
+ --with-arch=armv8-a \
+ "
+
+# Both arm and armrm overrides are set w/ cortex r5
+# So only set rmprofile if armrm is defined.
+ARM_PROFILE = "aprofile"
+ARM_PROFILE_armrm = "rmprofile"
+
+EXTRA_OECONF_append_xilinx-standalone_arm_class-target = " \
+ --with-multilib-list=${ARM_PROFILE} \
+ "
+
+EXTRA_OECONF_append_xilinx-standalone_armrm_class-target = " \
+ --disable-tls \
+ --disable-decimal-float \
+ "
+
+EXTRA_OECONF_append_xilinx-standalone_microblaze_class-target = " \
+ --enable-target-optspace \
+ --without-long-double-128 \
+ "
+
+# Changes local to gcc-runtime...
+
+# Dont build libitm, etc.
+RUNTIMETARGET_xilinx-standalone_class-target = "libstdc++-v3"
+
+do_install_append_xilinx-standalone_class-target() {
+ # Fixup what gcc-runtime normally would do, we don't want linux directories!
+ rm -rf ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
+
+ # The multilibs have different headers, so stop combining them!
+ 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 = "\
+ ${libdir}/libstdc++.a-gdb.py \
+"