From 4aa4cb1d986edeed6abd34778484ec7ddbc99891 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Wed, 2 Sep 2020 14:49:38 -0500 Subject: Uprev standalone toolchain bbappends Move newlib/libgloss from 3.1.0 to 3.% Move the gcc configuration for standalone to gcc 10. Signed-off-by: Mark Hatle --- .../recipes-core/newlib/libgloss_3.%.bbappend | 13 ++++ .../recipes-core/newlib/newlib_3.%.bbappend | 21 ++++++ .../gcc-10/additional-microblaze-multilibs.patch | 86 ++++++++++++++++++++++ .../recipes-devtools/gcc/gcc-source_10.%.bbappend | 7 ++ 4 files changed, 127 insertions(+) create mode 100644 meta-xilinx-standalone/recipes-core/newlib/libgloss_3.%.bbappend create mode 100644 meta-xilinx-standalone/recipes-core/newlib/newlib_3.%.bbappend create mode 100644 meta-xilinx-standalone/recipes-devtools/gcc/gcc-10/additional-microblaze-multilibs.patch create mode 100644 meta-xilinx-standalone/recipes-devtools/gcc/gcc-source_10.%.bbappend diff --git a/meta-xilinx-standalone/recipes-core/newlib/libgloss_3.%.bbappend b/meta-xilinx-standalone/recipes-core/newlib/libgloss_3.%.bbappend new file mode 100644 index 00000000..b2245022 --- /dev/null +++ b/meta-xilinx-standalone/recipes-core/newlib/libgloss_3.%.bbappend @@ -0,0 +1,13 @@ +COMPATIBLE_HOST = ".*-elf" +COMPATIBLE_HOST_arm = "[^-]*-[^-]*-eabi" + +# When building multiple, we need to depend on the multilib newlib +DEPENDS_append_xilinx-standalone = " ${MLPREFIX}newlib" + +EXTRA_OECONF_append_xilinx-standalone = " \ + --enable-newlib-io-c99-formats \ + --enable-newlib-io-long-long \ + --enable-newlib-io-float \ + --enable-newlib-io-long-double \ + --disable-newlib-supplied-syscalls \ +" diff --git a/meta-xilinx-standalone/recipes-core/newlib/newlib_3.%.bbappend b/meta-xilinx-standalone/recipes-core/newlib/newlib_3.%.bbappend new file mode 100644 index 00000000..536a23a1 --- /dev/null +++ b/meta-xilinx-standalone/recipes-core/newlib/newlib_3.%.bbappend @@ -0,0 +1,21 @@ +COMPATIBLE_HOST = ".*-elf" +COMPATIBLE_HOST_arm = "[^-]*-[^-]*-eabi" + +EXTRA_OECONF_append_xilinx-standalone = " \ + --enable-newlib-io-c99-formats \ + --enable-newlib-io-long-long \ + --enable-newlib-io-float \ + --enable-newlib-io-long-double \ + --disable-newlib-supplied-syscalls \ +" + +# Avoid trimmping CCARGS from CC by newlib configure +do_configure_prepend_xilinx-standalone(){ + export CC_FOR_TARGET="${CC}" +} + +# Fix for multilib newlib installations +do_install_prepend_xilinx-standalone() { + mkdir -p $(dirname ${D}${libdir}) + mkdir -p $(dirname ${D}${includedir}) +} diff --git a/meta-xilinx-standalone/recipes-devtools/gcc/gcc-10/additional-microblaze-multilibs.patch b/meta-xilinx-standalone/recipes-devtools/gcc/gcc-10/additional-microblaze-multilibs.patch new file mode 100644 index 00000000..3d520d0f --- /dev/null +++ b/meta-xilinx-standalone/recipes-devtools/gcc/gcc-10/additional-microblaze-multilibs.patch @@ -0,0 +1,86 @@ +Change the multilib settings to match the expectations of Vitis and related. + +The multilib list is as follows: + +.; +le;@mlittle-endian +bs;@mxl-barrel-shift +p;@mxl-pattern-compare +m;@mno-xl-soft-mul +fpd;@mhard-float +m/fpd;@mno-xl-soft-mul@mhard-float +p/m;@mxl-pattern-compare@mno-xl-soft-mul +p/fpd;@mxl-pattern-compare@mhard-float +p/m/fpd;@mxl-pattern-compare@mno-xl-soft-mul@mhard-float +bs/p;@mxl-barrel-shift@mxl-pattern-compare +bs/m;@mxl-barrel-shift@mno-xl-soft-mul +bs/fpd;@mxl-barrel-shift@mhard-float +bs/m/fpd;@mxl-barrel-shift@mno-xl-soft-mul@mhard-float +bs/p/m;@mxl-barrel-shift@mxl-pattern-compare@mno-xl-soft-mul +bs/p/fpd;@mxl-barrel-shift@mxl-pattern-compare@mhard-float +bs/p/m/fpd;@mxl-barrel-shift@mxl-pattern-compare@mno-xl-soft-mul@mhard-float +le/m64;@mlittle-endian@m64 +le/bs;@mlittle-endian@mxl-barrel-shift +le/p;@mlittle-endian@mxl-pattern-compare +le/m;@mlittle-endian@mno-xl-soft-mul +le/fpd;@mlittle-endian@mhard-float +le/m/fpd;@mlittle-endian@mno-xl-soft-mul@mhard-float +le/p/m;@mlittle-endian@mxl-pattern-compare@mno-xl-soft-mul +le/p/fpd;@mlittle-endian@mxl-pattern-compare@mhard-float +le/p/m/fpd;@mlittle-endian@mxl-pattern-compare@mno-xl-soft-mul@mhard-float +le/bs/p;@mlittle-endian@mxl-barrel-shift@mxl-pattern-compare +le/bs/m;@mlittle-endian@mxl-barrel-shift@mno-xl-soft-mul +le/bs/fpd;@mlittle-endian@mxl-barrel-shift@mhard-float +le/bs/m/fpd;@mlittle-endian@mxl-barrel-shift@mno-xl-soft-mul@mhard-float +le/bs/p/m;@mlittle-endian@mxl-barrel-shift@mxl-pattern-compare@mno-xl-soft-mul +le/bs/p/fpd;@mlittle-endian@mxl-barrel-shift@mxl-pattern-compare@mhard-float +le/bs/p/m/fpd;@mlittle-endian@mxl-barrel-shift@mxl-pattern-compare@mno-xl-soft-mul@mhard-float +le/m64/bs;@mlittle-endian@m64@mxl-barrel-shift +le/m64/p;@mlittle-endian@m64@mxl-pattern-compare +le/m64/m;@mlittle-endian@m64@mno-xl-soft-mul +le/m64/fpd;@mlittle-endian@m64@mhard-float +le/m64/m/fpd;@mlittle-endian@m64@mno-xl-soft-mul@mhard-float +le/m64/p/m;@mlittle-endian@m64@mxl-pattern-compare@mno-xl-soft-mul +le/m64/p/fpd;@mlittle-endian@m64@mxl-pattern-compare@mhard-float +le/m64/p/m/fpd;@mlittle-endian@m64@mxl-pattern-compare@mno-xl-soft-mul@mhard-float +le/m64/bs/p;@mlittle-endian@m64@mxl-barrel-shift@mxl-pattern-compare +le/m64/bs/m;@mlittle-endian@m64@mxl-barrel-shift@mno-xl-soft-mul +le/m64/bs/fpd;@mlittle-endian@m64@mxl-barrel-shift@mhard-float +le/m64/bs/m/fpd;@mlittle-endian@m64@mxl-barrel-shift@mno-xl-soft-mul@mhard-float +le/m64/bs/p/m;@mlittle-endian@m64@mxl-barrel-shift@mxl-pattern-compare@mno-xl-soft-mul +le/m64/bs/p/fpd;@mlittle-endian@m64@mxl-barrel-shift@mxl-pattern-compare@mhard-float +le/m64/bs/p/m/fpd;@mlittle-endian@m64@mxl-barrel-shift@mxl-pattern-compare@mno-xl-soft-mul@mhard-float + +As part of this the order of the multilibs was changes from upstream to make +it easier to avoid big-endian m64, which is not supported by the toolchain. + +Signed-off-by: Mark Hatle + +Index: gcc-9.2.0/gcc/config/microblaze/t-microblaze +=================================================================== +--- gcc-9.2.0.orig/gcc/config/microblaze/t-microblaze ++++ gcc-9.2.0/gcc/config/microblaze/t-microblaze +@@ -1,17 +1,11 @@ +-MULTILIB_OPTIONS = m64 mxl-barrel-shift mlittle-endian mno-xl-soft-mul mxl-multiply-high +-#MULTILIB_DIRNAMES = m64 bs le m mh +-MULTILIB_DIRNAMES = . . . . . +-MULTILIB_EXCEPTIONS = *m64/mxl-multiply-high mxl-multiply-high +-MULTILIB_EXCEPTIONS += *m64 +-MULTILIB_EXCEPTIONS += *m64/mxl-barrel-shift +-MULTILIB_EXCEPTIONS += *m64/mno-xl-soft-mul +-MULTILIB_EXCEPTIONS += *m64/mxl-barrel-shift/mno-xl-soft-mul +-MULTILIB_EXCEPTIONS += *m64/mno-xl-soft-mul +-MULTILIB_EXCEPTIONS += *m64/mxl-barrel-shift/mno-xl-soft-mul/mxl-multiply-high +-MULTILIB_EXCEPTIONS += *m64/mno-xl-soft-mul/mxl-multiply-high ++MULTILIB_OPTIONS = mlittle-endian m64 mxl-barrel-shift mxl-pattern-compare mno-xl-soft-mul mhard-float ++MULTILIB_DIRNAMES = le m64 bs p m fpd ++MULTILIB_EXCEPTIONS = mxl-multiply-high + MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high mxl-multiply-high + MULTILIB_EXCEPTIONS += *mlittle-endian/mxl-multiply-high mxl-multiply-high +-MULTILIB_EXCEPTIONS += *m64/mxl-barrel-shift/mlittle-endian/mxl-multiply-high ++MULTILIB_EXCEPTIONS += *mxl-pattern-compare*/*mxl-multiply-high* ++# Big endian m64 is not supported ++MULTILIB_EXCEPTIONS += m64* + + # Extra files + microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \ diff --git a/meta-xilinx-standalone/recipes-devtools/gcc/gcc-source_10.%.bbappend b/meta-xilinx-standalone/recipes-devtools/gcc/gcc-source_10.%.bbappend new file mode 100644 index 00000000..e1876700 --- /dev/null +++ b/meta-xilinx-standalone/recipes-devtools/gcc/gcc-source_10.%.bbappend @@ -0,0 +1,7 @@ +COMPATIBLE_HOST = "${HOST_SYS}" + +# Add MicroBlaze Patches (only when using MicroBlaze) +FILESEXTRAPATHS_append_microblaze_xilinx-standalone := ":${THISDIR}/gcc-10" +SRC_URI_append_microblaze_xilinx-standalone = " \ + file://additional-microblaze-multilibs.patch \ +" -- cgit v1.2.3-54-g00ecf