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 wrote: > Committed on Kugan's behalf as rev 205891. > > On 11 December 2013 13:27, Marcus Shawcroft wrote: > > On 10/12/13 20:23, Kugan wrote: > > > >> gcc/ > >> > >> +2013-12-11 Kugan Vivekanandarajah > >> + * 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? (For my own testing, I just locally disabled that, of course.) Grüße Thomas