This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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 1/4] Remove the error handling wrapper from exp and exp2


On 20/11/18 17:30, Joseph Myers wrote:
> These four patches are OK.
> 
> To confirm, since you didn't mention it in the commit message: whenever 
> the ieee754/dbl-64 implementations with integrated error handling are 
> used, the *f32x and *f64 names point directly to those after these 
> patches, not to any wrappers, since those names never supported SVID error 
> handling (were deliberately only added as aliases after _LIB_VERSION and 
> matherr were made into compat symbols).
> 

yes those names should always point to code without SVID error handling,

on x86_64 there is ifunc on __ieee754_exp so there is still a wrapper
when calling exp (which may be possible to remove if the ifunc is on
exp itself instead), but the wrapper does not do SVID compat error
handling for the new exp@@GLIBC_2.29 where expf32x and expf64 point to.

e.g. x86_64 libm.so has:
000000000000f3a0 t __exp_compat
000000000000f3a0 T exp@GLIBC_2.2.5
0000000000026940 i __exp_finite
0000000000026940 i __ieee754_exp
0000000000026940 t __ieee754_exp_ifunc
000000000003e000 t __exp
000000000003e000 W expf32x
000000000003e000 W expf64
000000000003e000 T exp@@GLIBC_2.29
000000000003e000 t __GI___exp

note that on riscv64 i did not introduce a new symbol version because
exp never did SVID compat errno handling, not sure if that's the right
design or if it's preferred to have an exp@@GLIBC_2.29 there too, just
pointing to the existing exp code.

e.g. riscv64 libm.so has:
0000000000027306 W exp
0000000000027306 t __exp
0000000000027306 W expf32x
0000000000027306 W expf64
0000000000027306 T __exp_finite
0000000000027306 t __GI___exp
0000000000027306 t __ieee754_exp

e.g. aarch64 libm.so has:
000000000000ee28 t __exp_compat
000000000000ee28 T exp@GLIBC_2.17
0000000000032f80 t __exp
0000000000032f80 T __exp_finite
0000000000032f80 T exp@@GLIBC_2.29
0000000000032f80 t __GI___exp
0000000000032f80 t __ieee754_exp
0000000000032f80 W expf32x
0000000000032f80 W expf64

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