gcc-target: Enable fp arch extention when fpu is available

Submitted by Khem Raj on June 20, 2018, 5:21 a.m. | Patch ID: 151841

Details

Message ID 20180620052106.22306-1-raj.khem@gmail.com
State Master Next
Commit 3c77e3443206cc7a2b321fb3a5ac43d8f93ab8be
Headers show

Commit Message

Khem Raj June 20, 2018, 5:21 a.m.
This is especially needed when defaulting to hard-float ABI
Fixes errors e.g.
cc1: error: -mfloat-abi=hard: selected processor lacks an FPU

Fixes [YOCTO #12795]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Ross Burton <ross.burton@intel.com>
---
 meta/recipes-devtools/gcc/gcc-target.inc | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Patch hide | download patch | download mbox

diff --git a/meta/recipes-devtools/gcc/gcc-target.inc b/meta/recipes-devtools/gcc/gcc-target.inc
index 56e4b95af4..92cad28b7a 100644
--- a/meta/recipes-devtools/gcc/gcc-target.inc
+++ b/meta/recipes-devtools/gcc/gcc-target.inc
@@ -14,9 +14,9 @@  EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu"
 # 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=armv7ve"
+EXTRA_OECONF_append_armv6 = " --with-arch=armv6${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}"
+EXTRA_OECONF_append_armv7a = " --with-arch=armv7-a${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}"
+EXTRA_OECONF_append_armv7ve = " --with-arch=armv7ve${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}"
 
 # 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

Comments

Andre McCurdy June 20, 2018, 11:33 p.m.
On Tue, Jun 19, 2018 at 10:21 PM, Khem Raj <raj.khem@gmail.com> wrote:
> This is especially needed when defaulting to hard-float ABI
> Fixes errors e.g.
> cc1: error: -mfloat-abi=hard: selected processor lacks an FPU
>
> Fixes [YOCTO #12795]
>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> Cc: Ross Burton <ross.burton@intel.com>
> ---
>  meta/recipes-devtools/gcc/gcc-target.inc | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/meta/recipes-devtools/gcc/gcc-target.inc b/meta/recipes-devtools/gcc/gcc-target.inc
> index 56e4b95af4..92cad28b7a 100644
> --- a/meta/recipes-devtools/gcc/gcc-target.inc
> +++ b/meta/recipes-devtools/gcc/gcc-target.inc
> @@ -14,9 +14,9 @@ EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu"
>  # 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=armv7ve"
> +EXTRA_OECONF_append_armv6 = " --with-arch=armv6${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}"
> +EXTRA_OECONF_append_armv7a = " --with-arch=armv7-a${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}"
> +EXTRA_OECONF_append_armv7ve = " --with-arch=armv7ve${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}"

Does this work for gcc7?

>  # 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
> --
> 2.17.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
Khem Raj June 21, 2018, 1:05 a.m.
No, it wont AFAICT, I guess we need to move this into gcc-8.0.bb
On Wed, Jun 20, 2018 at 4:33 PM Andre McCurdy <armccurdy@gmail.com> wrote:
>
> On Tue, Jun 19, 2018 at 10:21 PM, Khem Raj <raj.khem@gmail.com> wrote:
> > This is especially needed when defaulting to hard-float ABI
> > Fixes errors e.g.
> > cc1: error: -mfloat-abi=hard: selected processor lacks an FPU
> >
> > Fixes [YOCTO #12795]
> >
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > Cc: Ross Burton <ross.burton@intel.com>
> > ---
> >  meta/recipes-devtools/gcc/gcc-target.inc | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/meta/recipes-devtools/gcc/gcc-target.inc b/meta/recipes-devtools/gcc/gcc-target.inc
> > index 56e4b95af4..92cad28b7a 100644
> > --- a/meta/recipes-devtools/gcc/gcc-target.inc
> > +++ b/meta/recipes-devtools/gcc/gcc-target.inc
> > @@ -14,9 +14,9 @@ EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu"
> >  # 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=armv7ve"
> > +EXTRA_OECONF_append_armv6 = " --with-arch=armv6${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}"
> > +EXTRA_OECONF_append_armv7a = " --with-arch=armv7-a${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}"
> > +EXTRA_OECONF_append_armv7ve = " --with-arch=armv7ve${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}"
>
> Does this work for gcc7?
>
> >  # 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
> > --
> > 2.17.1
> >
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core