This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Disable x87 inline functions for x86_64 and SSE [BZ #17262]
- From: Jakub Jelinek <jakub at redhat dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: Siddhesh Poyarekar <siddhesh at redhat dot com>, GNU C Library <libc-alpha at sourceware dot org>
- Date: Tue, 12 Aug 2014 21:00:01 +0200
- Subject: Re: [PATCH] Disable x87 inline functions for x86_64 and SSE [BZ #17262]
- Authentication-results: sourceware.org; auth=none
- References: <20140812183008 dot GO9284 at spoyarek dot pnq dot redhat dot com> <CAMe9rOrt=ugLKy-wKNtALn7=LeE58H7BnpM=g4qp_d-M5s1Cpg at mail dot gmail dot com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Tue, Aug 12, 2014 at 11:48:44AM -0700, H.J. Lu wrote:
> > --- a/sysdeps/x86/fpu/bits/mathinline.h
> > +++ b/sysdeps/x86/fpu/bits/mathinline.h
> > @@ -384,7 +384,10 @@ __END_NAMESPACE_C99
> > # endif
> > #endif
> >
> > -#ifndef __SSE2_MATH__
> > +/* Disable x87 inlines when -fpmath=sse is passed and also when we're building
> > + on x86_64. Older gcc (gcc-3.2 for example) does not set __SSE2_MATH__
> > + for x86_64. */
> > +#if !defined __SSE2_MATH__ && !defined __x86_64__
> > # if ((!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \
> > && defined __OPTIMIZE__)
> >
> > @@ -970,4 +973,4 @@ __inline_mathcode2 (__ieee754_atan2, __y, __x,
> > return __value;)
> > # endif
> >
> > -#endif /* !__SSE2_MATH__ */
> > +#endif /* !__SSE2_MATH__ && !__x86_64__ */
>
> Will this patch get x86 inline functions with -fpmath=sse -m32 for
> GCC 3.2?
You'll get the i387 ones in that case, as GCC 3.2 and earlier just don't
predefine anything you could use for that. Before this patch it didn't do
that either. The bug in the current mathinline.h is that for gcc 3.2 and
earlier on x86_64 you get errors on the mathinline.h, because you have
multiple definitions of the inlines when __SSE2_MATH__ is not defined, but
__x86_64__ is.
Jakub