AARCH64 configure check for gas -mabi support

Kugan Vivekanandarajah kugan.vivekanandarajah@linaro.org
Thu Jun 20 10:49:00 GMT 2019


Hi Thomas,

On Thu, 20 Jun 2019 at 20:04, Thomas Schwinge <thomas@codesourcery.com> wrote:
>
> Hi!
>
> I was just building an aarch64 cross-compiler (indeed compiler only:
> 'make all-gcc'), and then wanted to check something in gimplification
> ('-S -fdump-tree-gimple'), with '-mabi=ilp32', which told me: "cc1:
> error: assembler does not support '-mabi=ilp32'".  That's unexpected, as
> for '-S' GCC isn't even going to invoke the assembler.  It's coming from
> this change:
>
> On Wed, 11 Dec 2013 13:57:59 +0100, Christophe Lyon <christophe.lyon@linaro.org> wrote:
> > Committed on Kugan's behalf as rev 205891.
> >
> > On 11 December 2013 13:27, Marcus Shawcroft <marcus.shawcroft@arm.com> wrote:
> > > On 10/12/13 20:23, Kugan wrote:
> > >
> > >> gcc/
> > >>
> > >> +2013-12-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
> > >> +       * configure.ac: Add check for aarch64 assembler -mabi support.
> > >> +       * configure: Regenerate.
> > >> +       * config.in: Regenerate.
> > >> +       * config/aarch64/aarch64-elf.h (ASM_MABI_SPEC): New define.
> > >> +       (ASM_SPEC): Update to substitute -mabi with ASM_MABI_SPEC.
> > >> +       * config/aarch64/aarch64.h (aarch64_override_options):  Issue
> > >> error if
> > >> +       assembler does not support -mabi and option ilp32 is selected.
> > >> +       * doc/install.texi: Added note that building gcc 4.9 and after
> > >> with pre
> > >> +       2.24 binutils will not support -mabi=ilp32.
> > >> +
> > >>
> > >
> > > Kugan, Thanks for sorting this out. OK to commit.
> > >
> > > /Marcus
>
> Specifically:
>
>     --- a/gcc/config/aarch64/aarch64.c
>     +++ b/gcc/config/aarch64/aarch64.c
>     @@ -5187,6 +5187,13 @@ aarch64_override_options (void)
>            aarch64_parse_tune ();
>          }
>
>     +#ifndef HAVE_AS_MABI_OPTION
>     +  /* The compiler may have been configured with 2.23.* binutils, which does
>     +     not have support for ILP32.  */
>     +  if (TARGET_ILP32)
>     +    error ("Assembler does not support -mabi=ilp32");
>     +#endif
>
> Why is that necessary?  Won't the assembler itself tell the user that it
> "does not support -mabi=ilp32", thus this check can be removed?  If not,
> can a condition simply be added here to only emit this error if we're
> indeed going to invoke the assembler?
Current binutils will but  binutils  2.23 and before didnt.
Specifically, with  2.23.2, bootstrap was failing. That is why we
needed this.

Thanks,
Kugan


>
> (For my own testing, I just locally disabled that, of course.)
>
>
> Grüße
>  Thomas



More information about the Gcc-patches mailing list