From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17062 invoked by alias); 26 Dec 2014 08:29:17 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 17045 invoked by uid 89); 26 Dec 2014 08:29:16 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.2 X-HELO: service87.mimecast.com Received: from service87.mimecast.com (HELO service87.mimecast.com) (91.220.42.44) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 26 Dec 2014 08:29:14 +0000 Received: from cam-owa1.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.140]) by service87.mimecast.com; Fri, 26 Dec 2014 08:29:11 +0000 Received: from SHAWIN202 ([10.1.255.212]) by cam-owa1.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 26 Dec 2014 08:29:08 +0000 From: "Thomas Preud'homme" To: "'Alan Modra'" , Cc: References: <002e01cfdafa$10ac4c00$3204e400$@arm.com> <002501cfe390$3edc1440$bc943cc0$@arm.com> <54510F8D.9020202@redhat.com> <001201cff392$27668a40$76339ec0$@arm.com> <001601cfff20$e6bce850$b436b8f0$@arm.com> <54996EE0.2080407@redhat.com> <20141225115204.GA5183@bubble.grove.modra.org> In-Reply-To: <20141225115204.GA5183@bubble.grove.modra.org> Subject: RE: [PATCH, ARM] Add support for value 3 of Tag_ABI_VFP_args attribute Date: Fri, 26 Dec 2014 08:29:00 -0000 Message-ID: <000001d020e5$f479b180$dd6d1480$@arm.com> MIME-Version: 1.0 X-MC-Unique: 114122608291102101 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2014-12/txt/msg00305.txt.bz2 Oh my. Sincere apologize. I remember doing a version with the two headers a= nd then removing the changes in one with the source still compiling and the= testsuite passing. I probably had some stale version of the file somewhere. Thanks a lot for fixing the failure. Best regards and merry Christmas, Thomas > -----Original Message----- > From: Alan Modra [mailto:amodra@gmail.com] > Sent: Thursday, December 25, 2014 11:52 AM > To: nickc@redhat.com > Cc: Thomas Preud'homme; binutils@sourceware.org > Subject: Re: [PATCH, ARM] Add support for value 3 of Tag_ABI_VFP_args > attribute >=20 > On Tue, Dec 23, 2014 at 01:32:16PM +0000, Nicholas Clifton wrote: > > >*** gold/ChangeLog *** > > > > > >2014-11-06 Thomas Preud'homme > > > > > > > * arm.cc (Target_arm::do_adjust_elf_header): Set e_flags in ELF > header > > > as hard float only when Tag_ABI_VFP_args is 1, using new enum > value > > > AEABI_VFP_args_vfp to check that. > > > (Target_arm::merge_object_attributes): Handle new > Tag_ABI_VFP_args > > > value and replace hardcoded values by enum values. >=20 > This part doesn't even compile. :-( >=20 > Committing the following to fix it. >=20 > elfcpp/ > * arm.h: Add enums for Tag_ABI_FP_number_model and > Tag_ABI_VFP_args. > gold/ > * arm.cc (Target_arm::do_adjust_elf_header): Provide > namespace on > new enums. > (Target_arm::merge_object_attributes, ): Likewise. >=20 > diff --git a/elfcpp/arm.h b/elfcpp/arm.h > index 8c6b6bf..8a86595 100644 > --- a/elfcpp/arm.h > +++ b/elfcpp/arm.h > @@ -340,6 +340,24 @@ enum > AEABI_enum_forced_wide =3D 3 > }; >=20 > +// Values for Tag_ABI_FP_number_model. > +enum > +{ > + AEABI_FP_number_model_none =3D 0, > + AEABI_FP_number_model_ieee754_number =3D 1, > + AEABI_FP_number_model_rtabi =3D 2, > + AEABI_FP_number_model_ieee754_all =3D 3 > +}; > + > +// Values for Tag_ABI_VFP_args. > +enum > +{ > + AEABI_VFP_args_base =3D 0, > + AEABI_VFP_args_vfp =3D 1, > + AEABI_VFP_args_toolchain =3D 2, > + AEABI_VFP_args_compatible =3D 3 > +}; > + > // For Exception Index Table. (Exception handling ABI for the ARM > // architectue, Section 5) > enum > diff --git a/gold/arm.cc b/gold/arm.cc > index 4186a2a..8485ab3 100644 > --- a/gold/arm.cc > +++ b/gold/arm.cc > @@ -10056,7 +10056,7 @@ > Target_arm::do_adjust_elf_header( > if (type =3D=3D elfcpp::ET_EXEC || type =3D=3D elfcpp::ET_DYN) > { > Object_attribute* attr =3D this- > >get_aeabi_object_attribute(elfcpp::Tag_ABI_VFP_args); > - if (attr->int_value() =3D=3D AEABI_VFP_args_vfp) > + if (attr->int_value() =3D=3D elfcpp::AEABI_VFP_args_vfp) > flags |=3D elfcpp::EF_ARM_ABI_FLOAT_HARD; > else > flags |=3D elfcpp::EF_ARM_ABI_FLOAT_SOFT; > @@ -10494,17 +10494,17 @@ > Target_arm::merge_object_attributes( > { > // Ignore mismatches if the object doesn't use floating point. */ > if (out_attr[elfcpp::Tag_ABI_FP_number_model].int_value() > - =3D=3D AEABI_FP_number_model_none > + =3D=3D elfcpp::AEABI_FP_number_model_none > || (in_attr[elfcpp::Tag_ABI_FP_number_model].int_value() > - !=3D AEABI_FP_number_model_none > + !=3D elfcpp::AEABI_FP_number_model_none > && out_attr[elfcpp::Tag_ABI_VFP_args].int_value() > - =3D=3D AEABI_VFP_args_compatible)) > + =3D=3D elfcpp::AEABI_VFP_args_compatible)) > out_attr[elfcpp::Tag_ABI_VFP_args].set_int_value( > in_attr[elfcpp::Tag_ABI_VFP_args].int_value()); > else if (in_attr[elfcpp::Tag_ABI_FP_number_model].int_value() > - !=3D AEABI_FP_number_model_none > + !=3D elfcpp::AEABI_FP_number_model_none > && in_attr[elfcpp::Tag_ABI_VFP_args].int_value() > - !=3D AEABI_VFP_args_compatible > + !=3D elfcpp::AEABI_VFP_args_compatible > && parameters->options().warn_mismatch()) > gold_error(_("%s uses VFP register arguments, output does > not"), > name); >=20 > -- > Alan Modra > Australia Development Lab, IBM