From 51ffb671c04239c812ca7e9e5c29917fe1606ca1 Mon Sep 17 00:00:00 2001 From: Alejandro Enedino Hernandez Samaniego Date: Fri, 1 Feb 2019 17:56:32 -0800 Subject: toolchain: Provide specific configuration for cross(-canadian) gcc and binutils Since we need specific configuration for the SDK toolchain, we need to override the configuration coming from oe-core, this configuration needs to be per MACHINE. Use GCC_CONFIGURE_COMMON_XILINX_STANDALONE to define the default config shared amongst MACHINES, and use a GCC_CONFIGURE_ variable to append to this common configuration options on each MACHINE that we want. Use the same procedure for binutils Signed-off-by: Alejandro Enedino Hernandez Samaniego --- meta-xilinx-standalone/conf/machine/cortexa53.conf | 39 ++++++++++++++++++++++ meta-xilinx-standalone/conf/machine/cortexr5.conf | 37 +++++++++++++++++++- .../conf/machine/zynqmp-pmu.conf | 29 ++++++++++++++++ .../binutils/binutils-cross_%.bbappend | 14 ++++++++ .../gcc/gcc-cross-canadian_%.bbappend | 15 +++++++++ .../recipes-standalone/gcc/gcc-cross_%.bbappend | 29 ++++++++-------- 6 files changed, 149 insertions(+), 14 deletions(-) create mode 100644 meta-xilinx-standalone/recipes-standalone/binutils/binutils-cross_%.bbappend create mode 100644 meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross-canadian_%.bbappend diff --git a/meta-xilinx-standalone/conf/machine/cortexa53.conf b/meta-xilinx-standalone/conf/machine/cortexa53.conf index ac2f21f2..1d8377ca 100644 --- a/meta-xilinx-standalone/conf/machine/cortexa53.conf +++ b/meta-xilinx-standalone/conf/machine/cortexa53.conf @@ -12,3 +12,42 @@ ARMPKGARCH_tune-cortexa53 = "cortexa53" TUNE_FEATURES_tune-cortexa53 = "${TUNE_FEATURES_tune-aarch64} cortexa53" PACKAGE_EXTRA_ARCHS_tune-cortexa53 = "${PACKAGE_EXTRA_ARCHS_tune-aarch64}" +#LANGUAGES_append = ",lto" + +GCC_CONFIGURE_A53 ?= " \ + --disable-bootstrap \ + --disable-multiarch \ + --disable-threads \ + --enable-c99 \ + --enable-checking=yes \ + --enable-fix-cortex-a53-835769 \ + --enable-fix-cortex-a53-843419 \ + --enable-linker-build-id \ + --enable-long-long \ + --enable-lto \ + --enable-plugins \ + --enable-shared \ + --with-arch=armv8-a \ + --with-cloog=no \ + --with-gnu-as \ + --with-gnu-ld \ + --with-isl=no \ + --with-ppl=no \ +" + +EXTRA_OECONF_pn-gcc-cross-${TARGET_ARCH}_append_xilinx-standalone = " \ + ${GCC_CONFIGURE_A53} \ +" + +BINUTILS_CONFIGURE_A53 ?= " \ + --disable-gprof \ + --disable-libdecnumber \ + --disable-readline \ + --disable-shared \ + --enable-lto \ + --enable-static \ +" + +EXTRA_OECONF_pn-binutils-cross-${TARGET_ARCH}_append_xilinx-standalone = " \ + ${BINUTILS_CONFIGURE_A53} \ +" diff --git a/meta-xilinx-standalone/conf/machine/cortexr5.conf b/meta-xilinx-standalone/conf/machine/cortexr5.conf index 48e1f125..74ef4b4d 100644 --- a/meta-xilinx-standalone/conf/machine/cortexr5.conf +++ b/meta-xilinx-standalone/conf/machine/cortexr5.conf @@ -10,4 +10,39 @@ AVAILTUNES += "cortexr5" ARMPKGARCH_tune-cortexr5 = "cortexr5" TUNE_FEATURES_tune-cortexr5 = "cortexr5" -#PACKAGE_EXTRA_ARCHS_tune-cortexr5 = "cortexr5" \ No newline at end of file + +#PACKAGE_EXTRA_ARCHS_tune-cortexr5 = "cortexr5" + + +GCC_CONFIGURE_R5 ?= " \ + --disable-decimal-float \ + --disable-libffi \ + --disable-libgomp \ + --disable-libquadmath \ + --disable-libssp \ + --disable-shared \ + --disable-threads \ + --disable-tls \ + --enable-plugins \ + --with-gnu-as \ + --with-gnu-ld \ + --with-headers=yes \ + --with-host-libstdcxx=-static-libgcc \ + --with-multilib-list=rmprofile \ +" + + +EXTRA_OECONF_pn-gcc-cross-${TARGET_ARCH}_append_xilinx-standalone = " \ + ${GCC_CONFIGURE_R5} \ +" + +BINUTILS_CONFIGURE_R5 ?= " \ + --disable-docs \ + --disable-nls \ + -enable-interwork \ +" + +EXTRA_OECONF_pn-binutils-cross-${TARGET_ARCH}_append_xilinx-standalone = " \ + ${BINUTILS_CONFIGURE_R5} \ +" + diff --git a/meta-xilinx-standalone/conf/machine/zynqmp-pmu.conf b/meta-xilinx-standalone/conf/machine/zynqmp-pmu.conf index 6759c2d8..85b3315e 100644 --- a/meta-xilinx-standalone/conf/machine/zynqmp-pmu.conf +++ b/meta-xilinx-standalone/conf/machine/zynqmp-pmu.conf @@ -9,3 +9,32 @@ PACKAGE_EXTRA_ARCHS_tune-microblaze = "${TUNE_PKGARCH}" SOC_FAMILY = "zynqmp" TARGET_LINK_HASH_STYLE_microblaze = "" + +GCC_CONFIGURE_MB ?= " \ + --disable-__cxa_atexit \ + --disable-libgomp \ + --disable-shared \ + --enable-lto \ + --enable-target-optspace \ + --enable-threads=no \ + --with-isl=no \ + --with-ppl=no \ + --without-long-double-128 \ +" + +EXTRA_OECONF_pn-gcc-cross-${TARGET_ARCH}_append_xilinx-standalone = " \ + ${GCC_CONFIGURE_MB} \ +" + + +BINUTILS_CONFIGURE_MB ?= " \ + --disable-initfini-array \ + --disable-nls \ + --enable-gold=no \ + --enable-ld=yes \ + --enable-multilib \ +" + +EXTRA_OECONF_pn-binutils-cross-${TARGET_ARCH}_append_xilinx-standalone = " \ + ${BINUTILS_CONFIGURE_MB} \ +" \ No newline at end of file diff --git a/meta-xilinx-standalone/recipes-standalone/binutils/binutils-cross_%.bbappend b/meta-xilinx-standalone/recipes-standalone/binutils/binutils-cross_%.bbappend new file mode 100644 index 00000000..25b1090a --- /dev/null +++ b/meta-xilinx-standalone/recipes-standalone/binutils/binutils-cross_%.bbappend @@ -0,0 +1,14 @@ +BINUTILS_CONFIGURE_COMMON_XILINX_STANDALONE = " \ + --disable-gdb \ + --disable-sim \ +" + + +# The following is a copy of what is in OE-Core, without LDGOLD, because we have to do gold per machine instead +EXTRA_OECONF_pn-binutils-cross-${TARGET_ARCH}_xilinx-standalone = " \ + --program-prefix=${TARGET_PREFIX} \ + --disable-werror \ + --enable-deterministic-archives \ + --enable-plugins \ + ${BINUTILS_CONFIGURE_COMMON_XILINX_STANDALONE} \ +" diff --git a/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross-canadian_%.bbappend b/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross-canadian_%.bbappend new file mode 100644 index 00000000..93cfc339 --- /dev/null +++ b/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross-canadian_%.bbappend @@ -0,0 +1,15 @@ +GCC_CONFIGURE_COMMON_XILINX_STANDALONE = " \ + --disable-libmudflap \ + --disable-libstdcxx-pch \ + --disable-nls \ + --enable-languages=${LANGUAGES} \ + --with-newlib \ +" + +# This is still missing a way to remove infiniarray, if we really have to we could use _remove +EXTRA_OECONF_pn-gcc-cross-canadian-${TARGET_ARCH}_xilinx-standalone = " \ + ${GCC_CONFIGURE_COMMON_XILINX_STANDALONE} \ + --program-prefix=${TARGET_PREFIX} \ + --without-local-prefix \ + ${EXTRA_OECONF_PATHS} \ +" diff --git a/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend b/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend index ef5d8190..2ff64b7e 100644 --- a/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend +++ b/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend @@ -1,18 +1,21 @@ -# By using tclibc-baremetal we loose sysroot functionality due to some +# By using tclibc-newlib we loose sysroot functionality due to some # append/override behavior We need to get that back , the following append # overrides everything on EXTRA_OECONF for gcc cross target it avoids # overlapping with crt0 because of --enable-linker-id from EXTRA_OECONF -EXTRA_OECONF_BASE_pn-gcc-cross-${TARGET_ARCH}_xilinx-standalone_append = " \ - ${LTO} \ - ${SSP} \ - --enable-libitm \ - --disable-bootstrap \ - --disable-libmudflap \ - --with-system-zlib \ - --with-ppl=no \ - --with-cloog=no \ - --enable-checking=release \ - --enable-cheaders=c_global \ - --without-isl \ + +GCC_CONFIGURE_COMMON_XILINX_STANDALONE = " \ + --disable-libmudflap \ + --disable-libstdcxx-pch \ + --disable-nls \ + --enable-languages=${LANGUAGES} \ + --with-newlib \ +" + +# This is still missing a way to remove infiniarray, if we really have to we could use _remove +EXTRA_OECONF_pn-gcc-cross-${TARGET_ARCH}_xilinx-standalone = " \ + ${GCC_CONFIGURE_COMMON_XILINX_STANDALONE} \ + --program-prefix=${TARGET_PREFIX} \ + --without-local-prefix \ + ${EXTRA_OECONF_PATHS} \ " -- cgit v1.2.3-54-g00ecf