1%include <float128-abi.h>
2libc {
3  GLIBC_2.0 {
4    # functions used in inline functions or macros
5    __isnan; __isnanf; __isnanl; __finite; __finitef; __finitel;
6    __isinf; __isinff; __isinfl;
7
8    # global variables
9    __fpu_control;
10
11    # c*
12    copysign; copysignf; copysignl;
13
14    # f*
15    finite; finitef; finitel; frexp; frexpf; frexpl;
16
17    # i*
18    isinf; isinff; isinfl; isnan; isnanf; isnanl; ldexp; ldexpf; ldexpl;
19
20    # m*
21    modf; modff; modfl;
22
23    # s*
24    scalbn; scalbnf; scalbnl;
25  }
26  GLIBC_2.1 {
27    # functions used in inline functions or macros
28    __signbit; __signbitf; __signbitl;
29
30    # s*
31    scalbln; scalblnf; scalblnl;
32  }
33  GLIBC_2.20 {
34  }
35}
36
37libm {
38  GLIBC_2.0 {
39    # mathematical functions
40    acos; acosf; acosl;
41    acosh; acoshf; acoshl;
42    asin; asinf; asinl;
43    asinh; asinhf; asinhl;
44    atan2; atan2f; atan2l;
45    atan; atanf; atanl;
46    atanh; atanhf; atanhl;
47    cbrt; cbrtf; cbrtl;
48    ceil; ceilf; ceill;
49    copysign; copysignf; copysignl;
50    cos; cosf; cosl;
51    coshf; cosh; coshl;
52    drem; dremf; dreml;
53    erf; erff; erfl;
54    erfc; erfcf; erfcl;
55    exp; expf; expl;
56    expm1; expm1f; expm1l;
57    fabs; fabsf; fabsl;
58    finite; finitef; finitel;
59    floor; floorf; floorl;
60    fmod; fmodf; fmodl;
61    frexp; frexpf; frexpl;
62    gamma; gammaf; gammal;
63    gamma_r; gammaf_r; gammal_r;
64    hypot; hypotf; hypotl;
65    ilogb; ilogbf; ilogbl;
66    j0; j0f; j0l;
67    j1; j1f; j1l;
68    jn; jnf; jnl;
69    ldexp; ldexpf; ldexpl;
70    lgamma; lgammaf; lgammal;
71    lgamma_r; lgammaf_r; lgammal_r;
72    log10; log10f; log10l;
73    log1p; log1pf; log1pl;
74    log; logf; logl;
75    logb; logbf; logbl;
76    matherr;
77    modf; modff; modfl;
78    nextafter; nextafterf; nextafterl;
79    pow; powf; powl;
80    remainder; remainderf; remainderl;
81    rint; rintf; rintl;
82    scalb; scalbf; scalbl;
83    scalbn; scalbnf; scalbnl;
84    significand; significandf; significandl;
85    sin; sinf; sinl;
86    sinh; sinhf; sinhl;
87    sqrt; sqrtf; sqrtl;
88    tan; tanf; tanl;
89    tanh; tanhf; tanhl;
90    y0; y0f; y0l;
91    y1; y1f; y1l;
92    yn; ynf; ynl;
93
94
95    # global variables
96    _LIB_VERSION; signgam;
97  }
98  GLIBC_2.1 {
99    # mathematical functions
100    exp2; exp2f; # exp2l; -- bug omitted this until GLIBC_2.4 (below)
101    exp10; exp10f; exp10l;
102    fdim; fdimf; fdiml;
103    fma; fmaf; fmal;
104    fmax; fmaxf; fmaxl;
105    fmin; fminf; fminl;
106    log2; log2f; log2l;
107    nan; nanf; nanl;
108    nearbyint; nearbyintf; nearbyintl;
109    nexttoward; nexttowardf; nexttowardl;
110    pow10; pow10f; pow10l;
111    remquo; remquof; remquol;
112    lrint; lrintf; lrintl;
113    llrint; llrintf; llrintl;
114    round; roundf; roundl;
115    lround; lroundf; lroundl;
116    llround; llroundf; llroundl;
117    scalbln; scalblnf; scalblnl;
118    sincos; sincosf; sincosl;
119    trunc; truncf; truncl;
120    tgamma; tgammaf; tgammal;
121
122    # complex functions
123    cabs; cabsf; cabsl;
124    cacos; cacosf; cacosl;
125    cacosh; cacoshf; cacoshl;
126    carg; cargf; cargl;
127    casin; casinf; casinl;
128    casinh; casinhf; casinhl;
129    catan; catanf; catanl;
130    catanh; catanhf; catanhl;
131    ccos; ccosf; ccosl;
132    ccosh; ccoshf; ccoshl;
133    cexp; cexpf; cexpl;
134    cimag; cimagf; cimagl;
135    clog; clogf; clogl;
136    clog10; clog10f; clog10l;
137    __clog10; __clog10f; __clog10l;
138    conj; conjf; conjl;
139    cpow; cpowf; cpowl;
140    cproj; cprojf; cprojl;
141    creal; crealf; creall;
142    csin; csinf; csinl;
143    csinh; csinhf; csinhl;
144    csqrt; csqrtf; csqrtl;
145    ctan; ctanf; ctanl;
146    ctanh; ctanhf; ctanhl;
147
148    # fp environment functions
149    feclearexcept; fegetenv; fegetexceptflag;
150    fegetround; feholdexcept; feraiseexcept;
151    fesetenv; fesetexceptflag; fesetround;
152    fetestexcept; feupdateenv;
153
154    # functions used in inline functions or macros
155    __finite; __finitef; __finitel;
156    __fpclassify; __fpclassifyf; __fpclassifyl;
157    __signbit; __signbitf; __signbitl;
158  }
159  GLIBC_2.2 {
160    # fp environment functions changes from ISO C99 TR1
161    feclearexcept; fegetenv; fegetexceptflag; feraiseexcept;
162    fesetenv; fesetexceptflag; feupdateenv;
163
164    # fp environment function
165    feenableexcept; fedisableexcept; fegetexcept;
166  }
167  GLIBC_2.4 {
168    # A bug in sysdeps/generic/w_exp2.c kept this from appearing
169    # in GLIBC_2.1 as it should have on platforms using that
170    # implementation file.  On others, sysdeps/CPU/Versions now
171    # puts exp2l in GLIBC_2.1, which will override this entry.
172    exp2l;
173  }
174  GLIBC_2.15 {
175    # Optimized -ffinite-math-only entry points
176    __acos_finite; __acosf_finite; __acosl_finite;
177    __acosh_finite; __acoshf_finite; __acoshl_finite;
178    __asin_finite; __asinf_finite; __asinl_finite;
179    __atan2_finite; __atan2f_finite; __atan2l_finite;
180    __atanh_finite; __atanhf_finite; __atanhl_finite;
181    __cosh_finite; __coshf_finite; __coshl_finite;
182    __exp10_finite; __exp10f_finite; __exp10l_finite;
183    __exp2_finite; __exp2f_finite; __exp2l_finite;
184    __fmod_finite; __fmodf_finite; __fmodl_finite;
185    __hypot_finite; __hypotf_finite; __hypotl_finite;
186    __j0_finite; __j0f_finite; __j0l_finite;
187    __y0_finite; __y0f_finite; __y0l_finite;
188    __j1_finite; __j1f_finite; __j1l_finite;
189    __y1_finite; __y1f_finite; __y1l_finite;
190    __jn_finite; __jnf_finite; __jnl_finite;
191    __yn_finite; __ynf_finite; __ynl_finite;
192    __lgamma_r_finite; __lgammaf_r_finite; __lgammal_r_finite;
193    __log_finite; __logf_finite; __logl_finite;
194    __log10_finite; __log10f_finite; __log10l_finite;
195    __log2_finite; __log2f_finite; __log2l_finite;
196    __pow_finite; __powf_finite; __powl_finite;
197    __remainder_finite; __remainderf_finite; __remainderl_finite;
198    __scalb_finite; __scalbf_finite; __scalbl_finite;
199    __sinh_finite; __sinhf_finite; __sinhl_finite;
200    __sqrt_finite; __sqrtf_finite; __sqrtl_finite;
201    __gamma_r_finite; __gammaf_r_finite; __gammal_r_finite;
202    __exp_finite; __expf_finite; __expl_finite;
203  }
204  GLIBC_2.18 {
205    __issignaling; __issignalingf; __issignalingl;
206  }
207  GLIBC_2.23 {
208    # The __signgam name must be exported for the signgam weak alias
209    # to work.  New symbol versions of lgamma* that set __signgam are
210    # needed to preserve compatibility with old binaries that have a
211    # dynamic symbol for signgam but not __signgam.
212    lgamma; lgammaf; lgammal; __signgam;
213  }
214  GLIBC_2.24 {
215    nextup; nextupf; nextupl;
216    nextdown; nextdownf; nextdownl;
217  }
218  GLIBC_2.25 {
219    fesetexcept; fetestexceptflag; fegetmode; fesetmode;
220    __iscanonicall; __iseqsigf; __iseqsig; __iseqsigl;
221    totalorder; totalorderf; totalorderl;
222    totalordermag; totalordermagf; totalordermagl;
223    getpayload; getpayloadf; getpayloadl;
224    canonicalize; canonicalizef; canonicalizel;
225    setpayload; setpayloadf; setpayloadl;
226    setpayloadsig; setpayloadsigf; setpayloadsigl;
227    llogb; llogbf; llogbl;
228    fmaxmag; fmaxmagf; fmaxmagl; fminmag; fminmagf; fminmagl;
229    roundeven; roundevenf; roundevenl;
230    fromfp; fromfpf; fromfpl; ufromfp; ufromfpf; ufromfpl;
231    fromfpx; fromfpxf; fromfpxl; ufromfpx; ufromfpxf; ufromfpxl;
232  }
233%ifdef FLOAT128_VERSION
234  FLOAT128_VERSION {
235    acosf128;
236    acoshf128;
237    asinf128;
238    asinhf128;
239    atan2f128;
240    atanf128;
241    atanhf128;
242    cabsf128;
243    cacosf128;
244    cacoshf128;
245    canonicalizef128;
246    cargf128;
247    casinf128;
248    casinhf128;
249    catanf128;
250    catanhf128;
251    cbrtf128;
252    ccosf128;
253    ccoshf128;
254    ceilf128;
255    cexpf128;
256    cimagf128;
257    clog10f128;
258    clogf128;
259    conjf128;
260    copysignf128;
261    cosf128;
262    coshf128;
263    cpowf128;
264    cprojf128;
265    crealf128;
266    csinf128;
267    csinhf128;
268    csqrtf128;
269    ctanf128;
270    ctanhf128;
271    erfcf128;
272    erff128;
273    exp10f128;
274    exp2f128;
275    expf128;
276    expm1f128;
277    fabsf128;
278    fdimf128;
279    floorf128;
280    fmaf128;
281    fmaxf128;
282    fmaxmagf128;
283    fminf128;
284    fminmagf128;
285    fmodf128;
286    frexpf128;
287    fromfpf128;
288    fromfpxf128;
289    getpayloadf128;
290    hypotf128;
291    ilogbf128;
292    j0f128;
293    j1f128;
294    jnf128;
295    ldexpf128;
296    lgammaf128;
297    lgammaf128_r;
298    llogbf128;
299    llrintf128;
300    llroundf128;
301    log10f128;
302    log1pf128;
303    log2f128;
304    logbf128;
305    logf128;
306    lrintf128;
307    lroundf128;
308    modff128;
309    nanf128;
310    nearbyintf128;
311    nextafterf128;
312    nextdownf128;
313    nextupf128;
314    powf128;
315    remainderf128;
316    remquof128;
317    rintf128;
318    roundevenf128;
319    roundf128;
320    scalblnf128;
321    scalbnf128;
322    setpayloadf128;
323    setpayloadsigf128;
324    sincosf128;
325    sinf128;
326    sinhf128;
327    sqrtf128;
328    tanf128;
329    tanhf128;
330    tgammaf128;
331    totalorderf128;
332    totalordermagf128;
333    truncf128;
334    ufromfpf128;
335    ufromfpxf128;
336    y0f128;
337    y1f128;
338    ynf128;
339  }
340%endif
341  GLIBC_2.27 {
342    expf; exp2f; logf; log2f; powf;
343    # _Float64x functions, only present for some configurations.
344    acosf64x;
345    acoshf64x;
346    asinf64x;
347    asinhf64x;
348    atan2f64x;
349    atanf64x;
350    atanhf64x;
351    cabsf64x;
352    cacosf64x;
353    cacoshf64x;
354    canonicalizef64x;
355    cargf64x;
356    casinf64x;
357    casinhf64x;
358    catanf64x;
359    catanhf64x;
360    cbrtf64x;
361    ccosf64x;
362    ccoshf64x;
363    ceilf64x;
364    cexpf64x;
365    cimagf64x;
366    clog10f64x;
367    clogf64x;
368    conjf64x;
369    copysignf64x;
370    cosf64x;
371    coshf64x;
372    cpowf64x;
373    cprojf64x;
374    crealf64x;
375    csinf64x;
376    csinhf64x;
377    csqrtf64x;
378    ctanf64x;
379    ctanhf64x;
380    erfcf64x;
381    erff64x;
382    exp10f64x;
383    exp2f64x;
384    expf64x;
385    expm1f64x;
386    fabsf64x;
387    fdimf64x;
388    floorf64x;
389    fmaf64x;
390    fmaxf64x;
391    fmaxmagf64x;
392    fminf64x;
393    fminmagf64x;
394    fmodf64x;
395    frexpf64x;
396    fromfpf64x;
397    fromfpxf64x;
398    getpayloadf64x;
399    hypotf64x;
400    ilogbf64x;
401    j0f64x;
402    j1f64x;
403    jnf64x;
404    ldexpf64x;
405    lgammaf64x;
406    lgammaf64x_r;
407    llogbf64x;
408    llrintf64x;
409    llroundf64x;
410    log10f64x;
411    log1pf64x;
412    log2f64x;
413    logbf64x;
414    logf64x;
415    lrintf64x;
416    lroundf64x;
417    modff64x;
418    nanf64x;
419    nearbyintf64x;
420    nextafterf64x;
421    nextdownf64x;
422    nextupf64x;
423    powf64x;
424    remainderf64x;
425    remquof64x;
426    rintf64x;
427    roundevenf64x;
428    roundf64x;
429    scalblnf64x;
430    scalbnf64x;
431    setpayloadf64x;
432    setpayloadsigf64x;
433    sincosf64x;
434    sinf64x;
435    sinhf64x;
436    sqrtf64x;
437    tanf64x;
438    tanhf64x;
439    tgammaf64x;
440    totalorderf64x;
441    totalordermagf64x;
442    truncf64x;
443    ufromfpf64x;
444    ufromfpxf64x;
445    y0f64x;
446    y1f64x;
447    ynf64x;
448    # _Float32, _Float64 and _Float32x functions, for all configurations.
449    acosf32; acosf64; acosf32x;
450    acoshf32; acoshf64; acoshf32x;
451    asinf32; asinf64; asinf32x;
452    asinhf32; asinhf64; asinhf32x;
453    atan2f32; atan2f64; atan2f32x;
454    atanf32; atanf64; atanf32x;
455    atanhf32; atanhf64; atanhf32x;
456    cabsf32; cabsf64; cabsf32x;
457    cacosf32; cacosf64; cacosf32x;
458    cacoshf32; cacoshf64; cacoshf32x;
459    canonicalizef32; canonicalizef64; canonicalizef32x;
460    cargf32; cargf64; cargf32x;
461    casinf32; casinf64; casinf32x;
462    casinhf32; casinhf64; casinhf32x;
463    catanf32; catanf64; catanf32x;
464    catanhf32; catanhf64; catanhf32x;
465    cbrtf32; cbrtf64; cbrtf32x;
466    ccosf32; ccosf64; ccosf32x;
467    ccoshf32; ccoshf64; ccoshf32x;
468    ceilf32; ceilf64; ceilf32x;
469    cexpf32; cexpf64; cexpf32x;
470    cimagf32; cimagf64; cimagf32x;
471    clog10f32; clog10f64; clog10f32x;
472    clogf32; clogf64; clogf32x;
473    conjf32; conjf64; conjf32x;
474    copysignf32; copysignf64; copysignf32x;
475    cosf32; cosf64; cosf32x;
476    coshf32; coshf64; coshf32x;
477    cpowf32; cpowf64; cpowf32x;
478    cprojf32; cprojf64; cprojf32x;
479    crealf32; crealf64; crealf32x;
480    csinf32; csinf64; csinf32x;
481    csinhf32; csinhf64; csinhf32x;
482    csqrtf32; csqrtf64; csqrtf32x;
483    ctanf32; ctanf64; ctanf32x;
484    ctanhf32; ctanhf64; ctanhf32x;
485    erfcf32; erfcf64; erfcf32x;
486    erff32; erff64; erff32x;
487    exp10f32; exp10f64; exp10f32x;
488    exp2f32; exp2f64; exp2f32x;
489    expf32; expf64; expf32x;
490    expm1f32; expm1f64; expm1f32x;
491    fabsf32; fabsf64; fabsf32x;
492    fdimf32; fdimf64; fdimf32x;
493    floorf32; floorf64; floorf32x;
494    fmaf32; fmaf64; fmaf32x;
495    fmaxf32; fmaxf64; fmaxf32x;
496    fmaxmagf32; fmaxmagf64; fmaxmagf32x;
497    fminf32; fminf64; fminf32x;
498    fminmagf32; fminmagf64; fminmagf32x;
499    fmodf32; fmodf64; fmodf32x;
500    frexpf32; frexpf64; frexpf32x;
501    fromfpf32; fromfpf64; fromfpf32x;
502    fromfpxf32; fromfpxf64; fromfpxf32x;
503    getpayloadf32; getpayloadf64; getpayloadf32x;
504    hypotf32; hypotf64; hypotf32x;
505    ilogbf32; ilogbf64; ilogbf32x;
506    j0f32; j0f64; j0f32x;
507    j1f32; j1f64; j1f32x;
508    jnf32; jnf64; jnf32x;
509    ldexpf32; ldexpf64; ldexpf32x;
510    lgammaf32; lgammaf64; lgammaf32x;
511    lgammaf32_r; lgammaf64_r; lgammaf32x_r;
512    llogbf32; llogbf64; llogbf32x;
513    llrintf32; llrintf64; llrintf32x;
514    llroundf32; llroundf64; llroundf32x;
515    log10f32; log10f64; log10f32x;
516    log1pf32; log1pf64; log1pf32x;
517    log2f32; log2f64; log2f32x;
518    logbf32; logbf64; logbf32x;
519    logf32; logf64; logf32x;
520    lrintf32; lrintf64; lrintf32x;
521    lroundf32; lroundf64; lroundf32x;
522    modff32; modff64; modff32x;
523    nanf32; nanf64; nanf32x;
524    nearbyintf32; nearbyintf64; nearbyintf32x;
525    nextafterf32; nextafterf64; nextafterf32x;
526    nextdownf32; nextdownf64; nextdownf32x;
527    nextupf32; nextupf64; nextupf32x;
528    powf32; powf64; powf32x;
529    remainderf32; remainderf64; remainderf32x;
530    remquof32; remquof64; remquof32x;
531    rintf32; rintf64; rintf32x;
532    roundevenf32; roundevenf64; roundevenf32x;
533    roundf32; roundf64; roundf32x;
534    scalblnf32; scalblnf64; scalblnf32x;
535    scalbnf32; scalbnf64; scalbnf32x;
536    setpayloadf32; setpayloadf64; setpayloadf32x;
537    setpayloadsigf32; setpayloadsigf64; setpayloadsigf32x;
538    sincosf32; sincosf64; sincosf32x;
539    sinf32; sinf64; sinf32x;
540    sinhf32; sinhf64; sinhf32x;
541    sqrtf32; sqrtf64; sqrtf32x;
542    tanf32; tanf64; tanf32x;
543    tanhf32; tanhf64; tanhf32x;
544    tgammaf32; tgammaf64; tgammaf32x;
545    totalorderf32; totalorderf64; totalorderf32x;
546    totalordermagf32; totalordermagf64; totalordermagf32x;
547    truncf32; truncf64; truncf32x;
548    ufromfpf32; ufromfpf64; ufromfpf32x;
549    ufromfpxf32; ufromfpxf64; ufromfpxf32x;
550    y0f32; y0f64; y0f32x;
551    y1f32; y1f64; y1f32x;
552    ynf32; ynf64; ynf32x;
553  }
554  GLIBC_2.28 {
555    # Functions not involving _Float64x or _Float128, for all configurations.
556    fadd; faddl; daddl;
557    f32addf32x; f32addf64; f32xaddf64;
558    fdiv; fdivl; ddivl;
559    f32divf32x; f32divf64; f32xdivf64;
560    fmul; fmull; dmull;
561    f32mulf32x; f32mulf64; f32xmulf64;
562    fsub; fsubl; dsubl;
563    f32subf32x; f32subf64; f32xsubf64;
564    # Functions involving _Float64x or _Float128, for some configurations.
565    f32addf64x; f32addf128;
566    f32xaddf64x; f32xaddf128; f64addf64x; f64addf128;
567    f64xaddf128;
568    f32divf64x; f32divf128;
569    f32xdivf64x; f32xdivf128; f64divf64x; f64divf128;
570    f64xdivf128;
571    f32mulf64x; f32mulf128;
572    f32xmulf64x; f32xmulf128; f64mulf64x; f64mulf128;
573    f64xmulf128;
574    f32subf64x; f32subf128;
575    f32xsubf64x; f32xsubf128; f64subf64x; f64subf128;
576    f64xsubf128;
577  }
578  GLIBC_2.29 {
579    # No SVID compatible error handling.
580    exp; exp2; log; log2; pow;
581  }
582  GLIBC_2.31 {
583    # totalorder changed to take pointer arguments.
584    totalorder; totalorderf; totalorderl;
585    totalordermag; totalordermagf; totalordermagl;
586    totalorderf32; totalorderf64; totalorderf32x;
587    totalordermagf32; totalordermagf64; totalordermagf32x;
588    totalorderf64x;
589    totalordermagf64x;
590    totalorderf128;
591    totalordermagf128;
592  }
593  GLIBC_2.32 {
594    exp10f;
595  }
596  GLIBC_2.35 {
597    # Functions not involving _Float64x or _Float128, for all configurations.
598    ffma; ffmal; dfmal;
599    f32fmaf32x; f32fmaf64; f32xfmaf64;
600    fsqrt; fsqrtl; dsqrtl;
601    f32sqrtf32x; f32sqrtf64; f32xsqrtf64;
602    fmaximum; fmaximumf; fmaximuml; fmaximumf32; fmaximumf64; fmaximumf32x;
603    fmaximum_num; fmaximum_numf; fmaximum_numl;
604    fmaximum_numf32; fmaximum_numf64; fmaximum_numf32x;
605    fmaximum_mag; fmaximum_magf; fmaximum_magl;
606    fmaximum_magf32; fmaximum_magf64; fmaximum_magf32x;
607    fmaximum_mag_num; fmaximum_mag_numf; fmaximum_mag_numl;
608    fmaximum_mag_numf32; fmaximum_mag_numf64; fmaximum_mag_numf32x;
609    fminimum; fminimumf; fminimuml; fminimumf32; fminimumf64; fminimumf32x;
610    fminimum_num; fminimum_numf; fminimum_numl;
611    fminimum_numf32; fminimum_numf64; fminimum_numf32x;
612    fminimum_mag; fminimum_magf; fminimum_magl;
613    fminimum_magf32; fminimum_magf64; fminimum_magf32x;
614    fminimum_mag_num; fminimum_mag_numf; fminimum_mag_numl;
615    fminimum_mag_numf32; fminimum_mag_numf64; fminimum_mag_numf32x;
616    # Functions involving _Float64x or _Float128, for some configurations.
617    f32fmaf64x; f32fmaf128;
618    f32xfmaf64x; f32xfmaf128; f64fmaf64x; f64fmaf128;
619    f64xfmaf128;
620    f32sqrtf64x; f32sqrtf128;
621    f32xsqrtf64x; f32xsqrtf128; f64sqrtf64x; f64sqrtf128;
622    f64xsqrtf128;
623    fmaximumf64x; fmaximumf128;
624    fmaximum_numf64x; fmaximum_numf128;
625    fmaximum_magf64x; fmaximum_magf128;
626    fmaximum_mag_numf64x; fmaximum_mag_numf128;
627    fminimumf64x; fminimumf128;
628    fminimum_numf64x; fminimum_numf128;
629    fminimum_magf64x; fminimum_magf128;
630    fminimum_mag_numf64x; fminimum_mag_numf128;
631    # No SVID compatible error handling.
632    hypotf; hypot;
633  }
634}
635