This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


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

Re: __exm1 and __expl are exposed, but not exported.


On Mon, Jun 12, 2000 at 07:22:30AM -0700, H . J . Lu wrote:
> On Mon, Jun 12, 2000 at 09:16:13AM +0200, Jakub Jelinek wrote:
> > On Sun, Jun 11, 2000 at 10:07:21PM -0700, H . J . Lu wrote:
> > > __exm1 and __expl are used in sysdeps/i386/fpu/bits/mathinline.h.
> > > But they are not exported.
> > 
> > Can you cvs update?
> > I hope this is already fixed:
> > 
> > 2000-06-04  Jakub Jelinek  <jakub@redhat.com>
> > 
> > 	* sysdeps/i386/fpu/bits/mathinline.h: Only inline sinh, cosh and tanh
> > 	if -ffast-math.
> > 
> 
> Yes. Then I did
> 
> # grep __exm1 sysdeps/i386/fpu/bits/mathinline.h
>   register long double __exm1 = __expm1l (__fabsl (__x));                     \
>   return 0.5 * (__exm1 / (__exm1 + 1.0) + __exm1) * __sgn1l (__x))
>   register long double __exm1 = __expm1l (-__fabsl (__x + __x));              \
>   return __exm1 / (__exm1 + 2.0) * __sgn1l (-__x))
>   register long double __exm1 = __expm1l (__fabsl (__x));                     \
>   return 0.5 * (__exm1 / (__exm1 + 1.0)) * __exm1)
> # grep __expl sysdeps/i386/fpu/bits/mathinline.h
> __inline_mathcodeNP_ (long double, __expl, __x, __exp_code)
>   register long double __ex = __expl (__x);                                   \
> 
> I don't see how -ffast-math will do anything. If they are in the
> public header files, they are exposed. I can compile my code with
> -ffast-math.

You're right in that they probably should be exported, because gcc may fail
to inline them and as they are extern inline, that will cause undefined
references.
-ffast-math matters, because __expm1 and __expl are only defined if
__FAST_MATH__ is defined, but were used always if __OPTIMIZE__.

	Jakub

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