From patchwork Tue Dec 10 20:23:19 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kugan Vivekanandarajah X-Patchwork-Id: 299616 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 0446E2C03B7 for ; Wed, 11 Dec 2013 10:10:18 +1100 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type; q=dns; s=default; b=wRbSlHBbC0wt5fB7p LXQhOo5f0+oVjeY6YigI25e7plbteARr3amm2BcsaKsZMFzkV4y7wITCuzIty01b yQ+CcAmQBN7Xmx9yFZQzxI0vXhrF/XAP9qpOM396MUW9+UzVGFR1RrFPIS31Devn 7SD4oX1GMOgOGcWJyGegpBq5iA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type; s=default; bh=xEm+yCTuG4aDHt7iCaDKtAj vMhs=; b=sMQEAmT0dO3UxUnwhNVSqRmYhBggxhMXxlwAZCKJK4mxklMVDybyAoR 2mAPxcTG8blZwybW7i3AdKfYoF2Eldq75lMpFJ1YnOPzTbp4WlGJELbypqXftg1Z AAHDmm9N6Lzfrriurvl6UMX8ezuKY1tLOd8KX/5Z1jVxGGhtrSog= Received: (qmail 6265 invoked by alias); 10 Dec 2013 20:23:36 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 6256 invoked by uid 89); 10 Dec 2013 20:23:36 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-pd0-f179.google.com Received: from Unknown (HELO mail-pd0-f179.google.com) (209.85.192.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Tue, 10 Dec 2013 20:23:34 +0000 Received: by mail-pd0-f179.google.com with SMTP id r10so8071019pdi.38 for ; Tue, 10 Dec 2013 12:23:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type; bh=+7UTUevUqd5RWVDSrbiJur7qv7I5O8qgm3iLU19u1D4=; b=OCgNcm3FmiUNDyBKV9Ts6ZSoZrnGXDuhmWGvPsVn5qWfKdgbY9wg2wGCXw8Qx74XNL B8GEc+JNbT1pN9aksXDtINgOPPlgmlDztgBYUfYpskhTfcKrHyIWt6x9MmIflZU/sI6D 5mhK/2MmNFapGoIQa+FvL1JOuSiXl8qYY1mcj3u2NmSZYiTgJBDk7KnC8P9/RrgBXs2U 5FZ5gSRA/XJeNjgDErA8wBirOMyq8TADO3suUvO8axR1mQqIYwhhCP3LjQp9YBK1MRrk B/9JWvgQmpvsgcyB2LipU6owiQYb4sJEaGu0Xx81iWB+IYF+fNs8pxiQdE104xtN9Eee JzRg== X-Gm-Message-State: ALoCoQnzKTVb9Zjm8u8vUT5u5HyrVwGhe5WSGo4JCFzDl2R9uXUifYAM27hnRFOgIXGBvWRBTkUE X-Received: by 10.66.121.164 with SMTP id ll4mr30469250pab.48.1386707006470; Tue, 10 Dec 2013 12:23:26 -0800 (PST) Received: from [192.168.0.100] ([1.144.61.107]) by mx.google.com with ESMTPSA id qf7sm38058943pac.14.2013.12.10.12.23.22 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 10 Dec 2013 12:23:24 -0800 (PST) Message-ID: <52A77837.9000108@linaro.org> Date: Wed, 11 Dec 2013 07:23:19 +1100 From: Kugan User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 MIME-Version: 1.0 To: Yufeng Zhang CC: "gcc-patches@gcc.gnu.org" , Marcus Shawcroft , "patches@linaro.org" Subject: Re: AARCH64 configure check for gas -mabi support References: <529F98A0.8020503@linaro.org> <52A1F8C0.70302@arm.com> <52A5A765.7000106@linaro.org> <52A63CA3.9000304@arm.com> <52A6B2D4.3080105@linaro.org> <52A6FB03.4050500@arm.com> In-Reply-To: <52A6FB03.4050500@arm.com> X-IsSubscribed: yes [snip] >> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c >> index b1b4eef..a53febc 100644 >> --- a/gcc/config/aarch64/aarch64.c >> +++ b/gcc/config/aarch64/aarch64.c >> @@ -5187,6 +5187,13 @@ aarch64_override_options (void) >> aarch64_parse_tune (); >> } >> >> +/* Issue error if assembler does not support -mabi and option ilp32 >> + is selected. */ > >I'd prefer the comment to be "The compiler may have been configured >with 2.23.* binutils, which does not have support for ILP32." >> +#ifndef HAVE_AS_MABI_OPTION >> + if (TARGET_ILP32) >> + error ("Assembler does not supprt -mabi=ilp32"); >> +#endif > > supprt/support > [snip] > I'm not very sure about the indent rules for configury files, but in > other areas of configure.ac, it seems using a similar indent convention > as in .c files. > Thanks Yufeng. I have updated the patch based on the comments above. Marcus, is this OK for trunk now? Thanks, Kugan 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. + diff --git a/gcc/config/aarch64/aarch64-elf.h b/gcc/config/aarch64/aarch64-elf.h index 4757d22..a66c3db 100644 --- a/gcc/config/aarch64/aarch64-elf.h +++ b/gcc/config/aarch64/aarch64-elf.h @@ -134,13 +134,19 @@ " %{!mbig-endian:%{!mlittle-endian:" ENDIAN_SPEC "}}" \ " %{!mabi=*:" ABI_SPEC "}" +#ifdef HAVE_AS_MABI_OPTION +#define ASM_MABI_SPEC "%{mabi=*:-mabi=%*}" +#else +#define ASM_MABI_SPEC "%{mabi=lp64:}" +#endif + #ifndef ASM_SPEC #define ASM_SPEC "\ %{mbig-endian:-EB} \ %{mlittle-endian:-EL} \ %{mcpu=*:-mcpu=%*} \ -%{march=*:-march=%*} \ -%{mabi=*:-mabi=%*}" +%{march=*:-march=%*}" \ +ASM_MABI_SPEC #endif #undef TYPE_OPERAND_FMT diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index b1b4eef..01dbe23 100644 --- 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 + initialize_aarch64_code_model (); aarch64_build_bitmask_table (); diff --git a/gcc/configure.ac b/gcc/configure.ac index 91a22d5..0a3b97b 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -3495,6 +3495,35 @@ AC_DEFINE_UNQUOTED(HAVE_LTO_PLUGIN, $gcc_cv_lto_plugin, AC_MSG_RESULT($gcc_cv_lto_plugin) case "$target" in + aarch64*-*-*) + gcc_GAS_CHECK_FEATURE([-mabi option], gcc_cv_as_aarch64_mabi,, + [-mabi=lp64], [.text],,,) + if test x$gcc_cv_as_aarch64_mabi = xyes; then + AC_DEFINE(HAVE_AS_MABI_OPTION, 1, + [Define if your assembler supports the -mabi option.]) + else + if test x$with_abi = xilp32; then + AC_MSG_ERROR([Assembler does not support -mabi=ilp32.\ + Upgrade the Assembler.]) + fi + if test x"$with_multilib_list" = xdefault; then + TM_MULTILIB_CONFIG=lp64 + else + aarch64_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'` + for aarch64_multilib in ${aarch64_multilibs}; do + case ${aarch64_multilib} in + ilp32) + AC_MSG_ERROR([Assembler does not support -mabi=ilp32.\ + Upgrade the Assembler.]) + ;; + *) + ;; + esac + done + fi + fi + ;; + # All TARGET_ABI_OSF targets. alpha*-*-linux* | alpha*-*-*bsd*) gcc_GAS_CHECK_FEATURE([explicit relocation support], diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index a8f9f8a..00c4f0d 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -3735,6 +3735,15 @@ removed and the system libunwind library will always be used. @html
+@end html +@anchor{aarch64-x-x} +@heading aarch64*-*-* +Pre 2.24 binutils does not have support for selecting -mabi and does not +support ILP32. If GCC 4.9 or later is built with pre 2.24, GCC will not +support option -mabi=ilp32. + +@html +
@end html @anchor{x-ibm-aix}