[OE-core] [PATCH] gcc-target.inc: configure gcc for armv7ve targets to default to armv7ve

Khem Raj raj.khem at gmail.com
Thu Jun 7 06:04:11 UTC 2018



On 6/6/18 9:34 PM, Andre McCurdy wrote:
> Originally these ARM specific EXTRA_OECONF options were applied to
> both gcc for the target and gcc-cross. That lead to a compromise
> being made: gcc on the target was configured to default to an ARM
> architecture which was at least compatible with the target (but not
> necessarily an exact match) and gcc-cross was configured default to
> armv7a for both armv7a and armv7ve (to avoid gcc-cross rebuilds when
> switching between the two).
> 
> However, when these ARM specific EXTRA_OECONF options were moved from
> gcc-configure-common.inc into gcc-target.inc (ie they were made to
> apply only to gcc on the target) the compromise no longer needed to
> be made.
> 
>    http://git.openembedded.org/openembedded-core/commit/?id=851937dde81de2a9ef54c5f19a78fb12fb82afd4
> 

this was done with a purpose so we can avoid gcc complaining about 
incompatible architectures when building programs on device.
probably testing compiling some c++ apps on device might be good to 
validate this if at all this is working.

> Signed-off-by: Andre McCurdy <armccurdy at gmail.com>
> ---
>   meta/recipes-devtools/gcc/gcc-target.inc | 11 ++++++-----
>   1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/meta/recipes-devtools/gcc/gcc-target.inc b/meta/recipes-devtools/gcc/gcc-target.inc
> index b6e31f5..56e4b95 100644
> --- a/meta/recipes-devtools/gcc/gcc-target.inc
> +++ b/meta/recipes-devtools/gcc/gcc-target.inc
> @@ -9,13 +9,14 @@ EXTRA_OECONF_PATHS = "\
>   
>   EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu"
>   
> -# ARMv6+ adds atomic instructions that affect the ABI in libraries built
> -# with TUNE_CCARGS in gcc-runtime.  Make the compiler default to a
> -# compatible architecture.  armv6 and armv7a cover the minimum tune
> -# features used in OE.
> +# Configure gcc running on the target to default to an architecture which will
> +# be compatible with that of gcc-runtime (which is cross compiled to be target
> +# specific). For example, for ARM, ARMv6+ adds atomic instructions that may
> +# affect the ABI in the gcc-runtime libs. Since we can't rely on gcc on the
> +# target to always be passed -march etc, its built-in default needs to be safe.
>   EXTRA_OECONF_append_armv6 = " --with-arch=armv6"
>   EXTRA_OECONF_append_armv7a = " --with-arch=armv7-a"
> -EXTRA_OECONF_append_armv7ve = " --with-arch=armv7-a"
> +EXTRA_OECONF_append_armv7ve = " --with-arch=armv7ve"
>   
>   # libcc1 requres gcc_cv_objdump when cross build, but gcc_cv_objdump is
>   # set in subdir gcc, so subdir libcc1 can't use it, export it here to
> 



More information about the Openembedded-core mailing list