This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Add OPTION_MASK_ISA_X86_64 and support TARGET_BI_ARCH == 2


On Fri, Mar 30, 2012 at 11:32:37AM -0700, H.J. Lu wrote:
> On Fri, Mar 30, 2012 at 11:05 AM, Jack Howarth <howarth@bromo.med.uc.edu> wrote:
> > On Fri, Mar 30, 2012 at 09:18:13AM -0700, H.J. Lu wrote:
> >> On Fri, Mar 30, 2012 at 8:11 AM, Rainer Orth
> >> <ro@cebitec.uni-bielefeld.de> wrote:
> >> > Mike Stump <mikestump@comcast.net> writes:
> >> >
> >> >>> Here is the new patch. ?OK for trunk if there are no regressions on
> >> >>> Linux/ia32 and Linux/x86-64?
> >> >>
> >> >> Too bad you didn't test 32-bit darwin, causes:
> >> >>
> >> >> ? http://gcc.gnu.org/PR52784
> >> >>
> >> >> Could you please revert or fix, thanks.
> >> >
> >> > Same problem on Solaris 10 and 11/x86.
> >> >
> >> > ? ? ? ?Rainer
> >> >
> >>
> >> When i[34567]86-*-* targets are configured with --enable-targets=all,
> >> TARGET_BI_ARCH is defined as 1, but TARGET_64BIT_DEFAULT
> >> isn't defined. ?It leads to
> >>
> >> ? ?if (!TARGET_64BIT)
> >> ? ? ?ix86_isa_flags &= ~(OPTION_MASK_ABI_64 | OPTION_MASK_ABI_X32);
> >>
> >> Since TARGET_64BIT is false by default, -m64 and -mx32 don't work
> >> correctly. ?This patch changes TARGET_BI_ARCH to 3 for
> >> i[34567]86-*-* targets configured with --enable-targets=all. ?Tested on
> >> Linux/ia32 with bootstrap and Linux/ia32 with --enable-targets=all
> >> --disable-bootstrap. ?Please try on other OSes.
> >
> > H.J.,
> > ? This patch solves the bootstrap of current gcc trunk on
> > i386-apple-darwin10. Thanks.
> > ? ? ? ? ?Jack
> >
> 
> Here is a smaller patch.

H.J.,
  The smaller patch also solves the bootstrap failure on i386-apple-darwin10.
           Jack

> 
> 
> -- 
> H.J.

> 2012-03-30  H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	PR bootstrap/52784
> 	* config/i386/i386.c (ix86_option_override_internal): Don't
> 	check OPTION_MASK_ABI_64 nor OPTION_MASK_ABI_X32 if
> 	TARGET_BI_ARCH isn't defined or TARGET_64BIT_DEFAULT is 0.
> 
> diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
> index 42746e4..3905287 100644
> --- a/gcc/config/i386/i386.c
> +++ b/gcc/config/i386/i386.c
> @@ -3117,11 +3117,13 @@ ix86_option_override_internal (bool main_args_p)
>    SUBSUBTARGET_OVERRIDE_OPTIONS;
>  #endif
>  
> -  /* Turn off both OPTION_MASK_ABI_64 and OPTION_MASK_ABI_X32 if
> -     TARGET_64BIT is false.  */
> +#if defined TARGET_BI_ARCH && TARGET_64BIT_DEFAULT
> +  /* When TARGET_64BIT_DEFAULT isn't defined, TARGET_64BIT is false by
> +     default and there is no need to check OPTION_MASK_ABI_64 nor
> +     OPTION_MASK_ABI_X32.  Turn off both OPTION_MASK_ABI_64 and
> +     OPTION_MASK_ABI_X32 if TARGET_64BIT is false.  */
>    if (!TARGET_64BIT)
>      ix86_isa_flags &= ~(OPTION_MASK_ABI_64 | OPTION_MASK_ABI_X32);
> -#ifdef TARGET_BI_ARCH
>    else
>      {
>  #if TARGET_BI_ARCH == 1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]