mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
Move some float128 symbol version definitions.
With support for _Float128 functions on platforms where that type has the same ABI as long double, as well as on platforms where it is ABI-distinct, those functions will need to be exported from glibc's shared libraries at appropriate symbol versions in each case. This patch avoids duplication of lists of symbols to export by moving the symbols other than __* to math/Versions and stdlib/Versions. There, they are conditional on <float128-abi.h> defining FLOAT128_VERSION and a default version of that header is added that does not define that macro. Enabling the float128 function aliases will then include adding a sysdeps/ieee754/ldbl-128/float128-abi.h that defines FLOAT128_VERSION to GLIBC_2.27. Symbols __* remain in sysdeps/ieee754/float128/Versions; those symbols should be present only once per floating-point format, not once per type. Note that if any platforms currently lacking support for a type with binary128 format get glibc support for such a type in future (whether only as _Float128, or also as a new long double format), and new libm functions (present for all types) have been added by then, additional macros will be needed to allow such functions to get a version of the form "GLIBC_2.28 if the platform had _Float128 support by then, or the later version at which that platform had _Float128 support added". This is not however a preexisting condition, but would have applied equally to the existing support for _Float128 as an ABI-distinct type. New all-type libm functions should just be added to the appropriate symbol version (currently GLIBC_2.27) for all types, with such special-case handling for _Float128 versions (and _Float64x as well in future) waiting until someone actually wants to add support for _Float128 to an existing platform after a release in which that platform and a post-2.26 libm function had support but that platform lacked _Float128 support. Tested with build-many-glibcs.py that installed stripped shared libraries are unchanged by this patch. Also tested in conjunction with the remaining changes to enable float128 aliases. * sysdeps/generic/float128-abi.h: New file. * sysdeps/ieee754/float128/Versions (FLOAT128_VERSION): Move non-__prefixed symbols to .... * math/Versions: ... here. Include <float128-abi.h>. * stdlib/Versions ... and here. Include <float128-abi.h>
This commit is contained in:
parent
76009b2639
commit
c38a4bfd59
@ -1,3 +1,11 @@
|
||||
2017-10-16 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/generic/float128-abi.h: New file.
|
||||
* sysdeps/ieee754/float128/Versions (FLOAT128_VERSION): Move
|
||||
non-__prefixed symbols to ....
|
||||
* math/Versions: ... here. Include <float128-abi.h>.
|
||||
* stdlib/Versions ... and here. Include <float128-abi.h>
|
||||
|
||||
2017-10-16 Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
* version.h (VERSION): Switch to ".9000" as the development
|
||||
|
109
math/Versions
109
math/Versions
@ -1,3 +1,4 @@
|
||||
%include <float128-abi.h>
|
||||
libc {
|
||||
GLIBC_2.0 {
|
||||
# functions used in inline functions or macros
|
||||
@ -229,6 +230,114 @@ libm {
|
||||
fromfp; fromfpf; fromfpl; ufromfp; ufromfpf; ufromfpl;
|
||||
fromfpx; fromfpxf; fromfpxl; ufromfpx; ufromfpxf; ufromfpxl;
|
||||
}
|
||||
%ifdef FLOAT128_VERSION
|
||||
FLOAT128_VERSION {
|
||||
acosf128;
|
||||
acoshf128;
|
||||
asinf128;
|
||||
asinhf128;
|
||||
atan2f128;
|
||||
atanf128;
|
||||
atanhf128;
|
||||
cabsf128;
|
||||
cacosf128;
|
||||
cacoshf128;
|
||||
canonicalizef128;
|
||||
cargf128;
|
||||
casinf128;
|
||||
casinhf128;
|
||||
catanf128;
|
||||
catanhf128;
|
||||
cbrtf128;
|
||||
ccosf128;
|
||||
ccoshf128;
|
||||
ceilf128;
|
||||
cexpf128;
|
||||
cimagf128;
|
||||
clog10f128;
|
||||
clogf128;
|
||||
conjf128;
|
||||
copysignf128;
|
||||
cosf128;
|
||||
coshf128;
|
||||
cpowf128;
|
||||
cprojf128;
|
||||
crealf128;
|
||||
csinf128;
|
||||
csinhf128;
|
||||
csqrtf128;
|
||||
ctanf128;
|
||||
ctanhf128;
|
||||
erfcf128;
|
||||
erff128;
|
||||
exp10f128;
|
||||
exp2f128;
|
||||
expf128;
|
||||
expm1f128;
|
||||
fabsf128;
|
||||
fdimf128;
|
||||
floorf128;
|
||||
fmaf128;
|
||||
fmaxf128;
|
||||
fmaxmagf128;
|
||||
fminf128;
|
||||
fminmagf128;
|
||||
fmodf128;
|
||||
frexpf128;
|
||||
fromfpf128;
|
||||
fromfpxf128;
|
||||
getpayloadf128;
|
||||
hypotf128;
|
||||
ilogbf128;
|
||||
j0f128;
|
||||
j1f128;
|
||||
jnf128;
|
||||
ldexpf128;
|
||||
lgammaf128;
|
||||
lgammaf128_r;
|
||||
llogbf128;
|
||||
llrintf128;
|
||||
llroundf128;
|
||||
log10f128;
|
||||
log1pf128;
|
||||
log2f128;
|
||||
logbf128;
|
||||
logf128;
|
||||
lrintf128;
|
||||
lroundf128;
|
||||
modff128;
|
||||
nanf128;
|
||||
nearbyintf128;
|
||||
nextafterf128;
|
||||
nextdownf128;
|
||||
nextupf128;
|
||||
powf128;
|
||||
remainderf128;
|
||||
remquof128;
|
||||
rintf128;
|
||||
roundevenf128;
|
||||
roundf128;
|
||||
scalblnf128;
|
||||
scalbnf128;
|
||||
setpayloadf128;
|
||||
setpayloadsigf128;
|
||||
sincosf128;
|
||||
sinf128;
|
||||
sinhf128;
|
||||
sqrtf128;
|
||||
tanf128;
|
||||
tanhf128;
|
||||
tgammaf128;
|
||||
totalorderf128;
|
||||
totalordermagf128;
|
||||
truncf128;
|
||||
ufromfpf128;
|
||||
ufromfpxf128;
|
||||
y0f128;
|
||||
y1f128;
|
||||
ynf128;
|
||||
}
|
||||
%endif
|
||||
GLIBC_2.27 {
|
||||
expf; exp2f; logf; log2f; powf;
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
%include <float128-abi.h>
|
||||
libc {
|
||||
GLIBC_2.0 {
|
||||
# functions with required interface outside normal name space
|
||||
@ -121,6 +122,15 @@ libc {
|
||||
strfromd; strfromf; strfroml;
|
||||
getrandom; getentropy;
|
||||
}
|
||||
%ifdef FLOAT128_VERSION
|
||||
FLOAT128_VERSION {
|
||||
strfromf128;
|
||||
strtof128;
|
||||
strtof128_l;
|
||||
wcstof128;
|
||||
wcstof128_l;
|
||||
}
|
||||
%endif
|
||||
GLIBC_PRIVATE {
|
||||
# functions which have an additional interface since they are
|
||||
# are cancelable.
|
||||
|
1
sysdeps/generic/float128-abi.h
Normal file
1
sysdeps/generic/float128-abi.h
Normal file
@ -0,0 +1 @@
|
||||
/* No _Float128 ABI support by default. */
|
@ -6,11 +6,6 @@ libc {
|
||||
FLOAT128_VERSION {
|
||||
__strtof128_internal;
|
||||
__wcstof128_internal;
|
||||
strfromf128;
|
||||
strtof128;
|
||||
strtof128_l;
|
||||
wcstof128;
|
||||
wcstof128_l;
|
||||
}
|
||||
GLIBC_PRIVATE {
|
||||
# For __nanf128.
|
||||
@ -52,109 +47,5 @@ libm {
|
||||
__y0f128_finite;
|
||||
__y1f128_finite;
|
||||
__ynf128_finite;
|
||||
acosf128;
|
||||
acoshf128;
|
||||
asinf128;
|
||||
asinhf128;
|
||||
atan2f128;
|
||||
atanf128;
|
||||
atanhf128;
|
||||
cabsf128;
|
||||
cacosf128;
|
||||
cacoshf128;
|
||||
canonicalizef128;
|
||||
cargf128;
|
||||
casinf128;
|
||||
casinhf128;
|
||||
catanf128;
|
||||
catanhf128;
|
||||
cbrtf128;
|
||||
ccosf128;
|
||||
ccoshf128;
|
||||
ceilf128;
|
||||
cexpf128;
|
||||
cimagf128;
|
||||
clog10f128;
|
||||
clogf128;
|
||||
conjf128;
|
||||
copysignf128;
|
||||
cosf128;
|
||||
coshf128;
|
||||
cpowf128;
|
||||
cprojf128;
|
||||
crealf128;
|
||||
csinf128;
|
||||
csinhf128;
|
||||
csqrtf128;
|
||||
ctanf128;
|
||||
ctanhf128;
|
||||
erfcf128;
|
||||
erff128;
|
||||
exp10f128;
|
||||
exp2f128;
|
||||
expf128;
|
||||
expm1f128;
|
||||
fabsf128;
|
||||
fdimf128;
|
||||
floorf128;
|
||||
fmaf128;
|
||||
fmaxf128;
|
||||
fmaxmagf128;
|
||||
fminf128;
|
||||
fminmagf128;
|
||||
fmodf128;
|
||||
frexpf128;
|
||||
fromfpf128;
|
||||
fromfpxf128;
|
||||
getpayloadf128;
|
||||
hypotf128;
|
||||
ilogbf128;
|
||||
j0f128;
|
||||
j1f128;
|
||||
jnf128;
|
||||
ldexpf128;
|
||||
lgammaf128;
|
||||
lgammaf128_r;
|
||||
llogbf128;
|
||||
llrintf128;
|
||||
llroundf128;
|
||||
log10f128;
|
||||
log1pf128;
|
||||
log2f128;
|
||||
logbf128;
|
||||
logf128;
|
||||
lrintf128;
|
||||
lroundf128;
|
||||
modff128;
|
||||
nanf128;
|
||||
nearbyintf128;
|
||||
nextafterf128;
|
||||
nextdownf128;
|
||||
nextupf128;
|
||||
powf128;
|
||||
remainderf128;
|
||||
remquof128;
|
||||
rintf128;
|
||||
roundevenf128;
|
||||
roundf128;
|
||||
scalblnf128;
|
||||
scalbnf128;
|
||||
setpayloadf128;
|
||||
setpayloadsigf128;
|
||||
sincosf128;
|
||||
sinf128;
|
||||
sinhf128;
|
||||
sqrtf128;
|
||||
tanf128;
|
||||
tanhf128;
|
||||
tgammaf128;
|
||||
totalorderf128;
|
||||
totalordermagf128;
|
||||
truncf128;
|
||||
ufromfpf128;
|
||||
ufromfpxf128;
|
||||
y0f128;
|
||||
y1f128;
|
||||
ynf128;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user