1 #
2 # CDDL HEADER START
3 #
4 # The contents of this file are subject to the terms of the
5 # Common Development and Distribution License (the "License").
6 # You may not use this file except in compliance with the License.
7 #
8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 # or http://www.opensolaris.org/os/licensing.
10 # See the License for the specific language governing permissions
11 # and limitations under the License.
12 #
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 #
19 # CDDL HEADER END
20 #
21 # Copyright 2011 Nexenta Systems, Inc. All rights reserved.
22 #
23 # Copyright 2006 Sun Microsystems, Inc. All rights reserved.
24 # Use is subject to license terms.
25 #
26 # Interface definition for libm.so.2
27 #
28 # For information regarding the establishment of versioned definitions see:
29 # The Linker and Libraries Manual (version 2.5 or greater)
30 # This is part of the Developers Guide in the Answerbook. Specifically refer
31 # to Chapter 2 under section "Defining Additional Symbols" through section
32 # "Reducing Symbol Scope", and Chapter 5 "Versioning".
33 #
34 # For specific rules for the modification (evolution) of these version
35 # definitions see:
36 # psarc_1995_14: Integration of Scoped Libraries
37 # (/shared/sac/PSARC/1995/014)
38 # Policy for Shared Library Version Names and Interface Definitions
39 # (/shared/ON/general_docs/scoping-rules.ps)
40
41 $mapfile_version 2
42
43 $if _ELF32
44 $add lf64
45 $endif
46 $if _sparc && _ELF32
47 $add sparc32
48 $endif
49 $if _sparc && _ELF64
50 $add sparcv9
51 $endif
52 $if _x86 && _ELF32
53 $add i386
54 $endif
55 $if _x86 && _ELF64
56 $add amd64
57 $endif
58
59 SYMBOL_VERSION SUNW_1.3 {
60 global:
61 __isnanf; #LSARC/2003/658
62 __isnanl; #LSARC/2003/658
63 _isnan { FLAGS = NODYNSORT }; #LSARC/2003/658
64 _isnand { FLAGS = NODYNSORT }; #LSARC/2003/658
65 _isnanf { FLAGS = NODYNSORT }; #LSARC/2003/658
66 _logb { FLAGS = NODYNSORT }; #LSARC/2003/658
67 _modf { FLAGS = NODYNSORT }; #LSARC/2003/658
68 _modff { FLAGS = NODYNSORT }; #LSARC/2003/658
69 _nextafter { FLAGS = NODYNSORT }; #LSARC/2003/658
70 _scalb { FLAGS = NODYNSORT }; #LSARC/2003/658
71 isnand { FLAGS = NODYNSORT }; #LSARC/2003/658
72 isnanf; #LSARC/2003/658
73 isnanl; #LSARC/2003/658
74 } SUNW_1.2;
75
76 SYMBOL_VERSION SUNW_1.2 {
77 global:
78 __acoshf;
79 __acoshl;
80 __asinhf;
81 __asinhl;
82 __atanhf;
83 __atanhl;
84 __cabs;
85 __cabsf;
86 __cabsl;
87 __cacos;
88 __cacosf;
89 __cacosh;
90 __cacoshf;
91 __cacoshl;
92 __cacosl;
93 __carg;
94 __cargf;
95 __cargl;
96 __casin;
97 __casinf;
98 __casinh;
99 __casinhf;
100 __casinhl;
101 __casinl;
102 __catan;
103 __catanf;
104 __catanh;
105 __catanhf;
106 __catanhl;
107 __catanl;
108 __cbrtf;
109 __cbrtl;
110 __ccos;
111 __ccosf;
112 __ccosh;
113 __ccoshf;
114 __ccoshl;
115 __ccosl;
116 __cexp;
117 __cexpf;
118 __cexpl;
119 __cimag;
120 __cimagf;
121 __cimagl;
122 __clog;
123 __clogf;
124 __clogl;
125 __conj;
126 __conjf;
127 __conjl;
128 __copysignf;
129 __copysignl;
130 __cpow;
131 __cpowf;
132 __cpowl;
133 __cproj;
134 __cprojf;
135 __cprojl;
136 __creal;
137 __crealf;
138 __creall;
139 __csin;
140 __csinf;
141 __csinh;
142 __csinhf;
143 __csinhl;
144 __csinl;
145 __csqrt;
146 __csqrtf;
147 __csqrtl;
148 __ctan;
149 __ctanf;
150 __ctanh;
151 __ctanhf;
152 __ctanhl;
153 __ctanl;
154 __erfcf;
155 __erfcl;
156 __erff;
157 __erfl;
158 __exp2;
159 __exp2f;
160 __exp2l;
161 __expm1f;
162 __expm1l;
163 __fdim;
164 __fdimf;
165 __fdiml;
166 __feclearexcept;
167 __fegetenv;
168 __fegetexceptflag;
169 $if _x86
170 __fegetprec; #LSARC/1996/175
171 $endif
172 __fegetround;
173 __feholdexcept;
174 __fenv_dfl_env; #LSARC/1996/175
175 __feraiseexcept;
176 __fesetenv;
177 __fesetexceptflag;
178 $if _x86
179 __fesetprec; #LSARC/1996/175
180 $endif
181 __fesetround;
182 __fetestexcept;
183 __feupdateenv;
184 __fex_get_handling; #LSARC/1996/175
185 __fex_get_log; #LSARC/1996/175
186 __fex_get_log_depth; #LSARC/1996/175
187 __fex_getexcepthandler; #LSARC/1996/175
188 __fex_log_entry; #LSARC/1996/175
189 __fex_merge_flags; #LSARC/1996/175
190 __fex_set_handling; #LSARC/1996/175
191 __fex_set_log; #LSARC/1996/175
192 __fex_set_log_depth; #LSARC/1996/175
193 __fex_setexcepthandler; #LSARC/1996/175
194 __fma;
195 __fmaf;
196 __fmal;
197 __fmax;
198 __fmaxf;
199 __fmaxl;
200 __fmin;
201 __fminf;
202 __fminl;
203 __frexp;
204 __gammaf; #LSARC/2003/279
205 __gammaf_r; #LSARC/2003/279
206 __gammal; #LSARC/2003/279
207 __gammal_r; #LSARC/2003/279
208 __hypotf;
209 __hypotl;
210 __ilogbf;
211 __ilogbl;
212 __j0f; #LSARC/2003/279
213 __j0l; #LSARC/2003/279
214 __j1f; #LSARC/2003/279
215 __j1l; #LSARC/2003/279
216 __jnf; #LSARC/2003/279
217 __jnl; #LSARC/2003/279
218 __ldexp;
219 __lgammaf;
220 __lgammaf_r; #LSARC/2003/279
221 __lgammal;
222 __lgammal_r; #LSARC/2003/279
223 __llrint;
224 __llrintf;
225 __llrintl;
226 __llround;
227 __llroundf;
228 __llroundl;
229 __log1pf;
230 __log1pl;
231 __log2;
232 __log2f;
233 __log2l;
234 __logbf;
235 __logbl;
236 $if amd64 || sparcv9
237 __lrint { FLAGS = NODYNSORT };
238 __lrintf { FLAGS = NODYNSORT };
239 __lrintl { FLAGS = NODYNSORT };
240 __lround { FLAGS = NODYNSORT };
241 __lroundf { FLAGS = NODYNSORT };
242 __lroundl { FLAGS = NODYNSORT };
243 $else
244 __lrint;
245 __lrintf;
246 __lrintl;
247 __lround;
248 __lroundf;
249 __lroundl;
250 $endif
251 __modf;
252 __nan;
253 __nanf;
254 __nanl;
255 __nearbyint;
256 __nearbyintf;
257 __nearbyintl;
258 __nextafterf;
259 __nextafterl;
260 __nexttoward;
261 __nexttowardf;
262 __nexttowardl;
263 __remainderf;
264 __remainderl;
265 __remquo;
266 __remquof;
267 __remquol;
268 __rintf;
269 __rintl;
270 __round;
271 __roundf;
272 __roundl;
273 __scalbf; #LSARC/2003/279
274 __scalbl; #LSARC/2003/279
275 __scalbln;
276 __scalblnf;
277 __scalblnl;
278 __scalbnf;
279 __scalbnl;
280 __signgamf; #LSARC/2003/279
281 __signgaml; #LSARC/2003/279
282 __significandf; #LSARC/2003/279
283 __significandl; #LSARC/2003/279
284 __sincos; #LSARC/2003/279
285 __sincosf; #LSARC/2003/279
286 __sincosl; #LSARC/2003/279
287 __tgamma;
288 __tgammaf;
289 __tgammal;
290 __trunc;
291 __truncf;
292 __truncl;
293 __xpg6 { FLAGS = NODIRECT }; #private contract with libc group
294 __y0f; #LSARC/2003/279
295 __y0l; #LSARC/2003/279
296 __y1f; #LSARC/2003/279
297 __y1l; #LSARC/2003/279
298 __ynf; #LSARC/2003/279
299 __ynl; #LSARC/2003/279
300 acosf;
301 acoshf;
302 acoshl;
303 acosl;
304 asinf;
305 asinhf;
306 asinhl;
307 asinl;
308 atan2f;
309 atan2l;
310 atanf;
311 atanhf;
312 atanhl;
313 atanl;
314 cabs;
315 cabsf;
316 cabsl;
317 cacos;
318 cacosf;
319 cacosh;
320 cacoshf;
321 cacoshl;
322 cacosl;
323 carg;
324 cargf;
325 cargl;
326 casin;
327 casinf;
328 casinh;
329 casinhf;
330 casinhl;
331 casinl;
332 catan;
333 catanf;
334 catanh;
335 catanhf;
336 catanhl;
337 catanl;
338 cbrtf;
339 cbrtl;
340 ccos;
341 ccosf;
342 ccosh;
343 ccoshf;
344 ccoshl;
345 ccosl;
346 ceilf;
347 ceill;
348 cexp;
349 cexpf;
350 cexpl;
351 cimag;
352 cimagf;
353 cimagl;
354 clog;
355 clogf;
356 clogl;
357 conj;
358 conjf;
359 conjl;
360 copysignf;
361 copysignl;
362 cosf;
363 coshf;
364 coshl;
365 cosl;
366 cpow;
367 cpowf;
368 cpowl;
369 cproj;
370 cprojf;
371 cprojl;
372 creal;
373 crealf;
374 creall;
375 csin;
376 csinf;
377 csinh;
378 csinhf;
379 csinhl;
380 csinl;
381 csqrt;
382 csqrtf;
383 csqrtl;
384 ctan;
385 ctanf;
386 ctanh;
387 ctanhf;
388 ctanhl;
389 ctanl;
390 erfcf;
391 erfcl;
392 erff;
393 erfl;
394 exp2;
395 exp2f;
396 exp2l;
397 expf;
398 expl;
399 expm1f;
400 expm1l;
401 fabsf;
402 fabsl;
403 fdim;
404 fdimf;
405 fdiml;
406 feclearexcept;
407 fegetenv;
408 fegetexceptflag;
409 $if _x86
410 fegetprec; #LSARC/1996/175
411 $endif
412 fegetround;
413 feholdexcept;
414 feraiseexcept;
415 fesetenv;
416 fesetexceptflag;
417 $if _x86
418 fesetprec; #LSARC/1996/175
419 $endif
420 fesetround;
421 fetestexcept;
422 feupdateenv;
423 fex_get_handling; #LSARC/1996/175
424 fex_get_log; #LSARC/1996/175
425 fex_get_log_depth; #LSARC/1996/175
426 fex_getexcepthandler; #LSARC/1996/175
427 fex_log_entry; #LSARC/1996/175
428 fex_merge_flags; #LSARC/1996/175
429 fex_set_handling; #LSARC/1996/175
430 fex_set_log; #LSARC/1996/175
431 fex_set_log_depth; #LSARC/1996/175
432 fex_setexcepthandler; #LSARC/1996/175
433 floorf;
434 floorl;
435 fma;
436 fmaf;
437 fmal;
438 fmax;
439 fmaxf;
440 fmaxl;
441 fmin;
442 fminf;
443 fminl;
444 fmodf;
445 fmodl;
446 frexp;
447 frexpf;
448 frexpl;
449 gammaf; #LSARC/2003/279
450 gammaf_r; #LSARC/2003/279
451 gammal; #LSARC/2003/279
452 gammal_r; #LSARC/2003/279
453 hypotf;
454 hypotl;
455 ilogbf;
456 ilogbl;
457 j0f; #LSARC/2003/279
458 j0l; #LSARC/2003/279
459 j1f; #LSARC/2003/279
460 j1l; #LSARC/2003/279
461 jnf; #LSARC/2003/279
462 jnl; #LSARC/2003/279
463 ldexp;
464 ldexpf;
465 ldexpl;
466 lgammaf;
467 lgammaf_r; #LSARC/2003/279
468 lgammal;
469 lgammal_r; #LSARC/2003/279
470 $if amd64 || sparcv9
471 llrint { FLAGS = NODYNSORT };
472 llrintf { FLAGS = NODYNSORT };
473 llrintl { FLAGS = NODYNSORT };
474 llround { FLAGS = NODYNSORT };
475 llroundf { FLAGS = NODYNSORT };
476 llroundl { FLAGS = NODYNSORT };
477 $else
478 llrint;
479 llrintf;
480 llrintl;
481 llround;
482 llroundf;
483 llroundl;
484 $endif
485 log10f;
486 log10l;
487 log1pf;
488 log1pl;
489 log2;
490 log2f;
491 log2l;
492 logbf;
493 logbl;
494 logf;
495 logl;
496 lrint;
497 lrintf;
498 lrintl;
499 lround;
500 lroundf;
501 lroundl;
502 modf;
503 modff;
504 modfl;
505 nan;
506 nanf;
507 nanl;
508 nearbyint;
509 nearbyintf;
510 nearbyintl;
511 nextafterf;
512 nextafterl;
513 nexttoward;
514 nexttowardf;
515 nexttowardl;
516 powf;
517 powl;
518 remainderf;
519 remainderl;
520 remquo;
521 remquof;
522 remquol;
523 rintf;
524 rintl;
525 round;
526 roundf;
527 roundl;
528 scalbf; #LSARC/2003/279
529 scalbl; #LSARC/2003/279
530 scalbln;
531 scalblnf;
532 scalblnl;
533 scalbnf;
534 scalbnl;
535 signgamf; #LSARC/2003/279
536 signgaml; #LSARC/2003/279
537 significandf; #LSARC/2003/279
538 significandl; #LSARC/2003/279
539 sincos; #LSARC/2003/279
540 sincosf; #LSARC/2003/279
541 sincosl; #LSARC/2003/279
542 sinf;
543 sinhf;
544 sinhl;
545 sinl;
546 sqrtf;
547 sqrtl;
548 tanf;
549 tanhf;
550 tanhl;
551 tanl;
552 tgamma;
553 tgammaf;
554 tgammal;
555 trunc;
556 truncf;
557 truncl;
558 y0f; #LSARC/2003/279
559 y0l; #LSARC/2003/279
560 y1f; #LSARC/2003/279
561 y1l; #LSARC/2003/279
562 ynf; #LSARC/2003/279
563 ynl; #LSARC/2003/279
564 } SUNW_1.1.1;
565
566 SYMBOL_VERSION SUNW_1.1.1 {
567 global:
568 __acosf;
569 __acosl;
570 __asinf;
571 __asinl;
572 __atan2f;
573 __atan2l;
574 __atanf;
575 __atanl;
576 __ceilf;
577 __ceill;
578 __cosf;
579 __coshf;
580 __coshl;
581 __cosl;
582 __expf;
583 __expl;
584 __fabsf;
585 __fabsl;
586 __floorf;
587 __floorl;
588 __fmodf;
589 __fmodl;
590 __frexpf;
591 __frexpl;
592 __ldexpf;
593 __ldexpl;
594 __log10f;
595 __log10l;
596 __logf;
597 __logl;
598 __modff;
599 __modfl;
600 __powf;
601 __powl;
602 __sinf;
603 __sinhf;
604 __sinhl;
605 __sinl;
606 __sqrtf;
607 __sqrtl;
608 __tanf;
609 __tanhf;
610 __tanhl;
611 __tanl;
612 } SUNW_1.1;
613
614 SYMBOL_VERSION SUNW_1.1 {
615 global:
616 __acos;
617 __acosh;
618 __asin;
619 __asinh;
620 __atan;
621 __atan2;
622 __atanh;
623 __cbrt;
624 __ceil;
625 __copysign;
626 __cos;
627 __cosh;
628 __erf;
629 __erfc;
630 __exp;
631 __expm1;
632 __fabs;
633 __floor;
634 __fmod;
635 __gamma;
636 __gamma_r;
637 __hypot;
638 __ilogb;
639 __isnan;
640 __j0;
641 __j1;
642 __jn;
643 __lgamma;
644 __lgamma_r;
645 __log;
646 __log10;
647 __log1p;
648 __logb;
649 __nextafter;
650 __pow;
651 __remainder;
652 __rint;
653 __scalb;
654 __scalbn;
655 __signgam;
656 __significand;
657 __sin;
658 __sinh;
659 __sqrt;
660 __tan;
661 __tanh;
662 __y0;
663 __y1;
664 __yn;
665 acos;
666 acosh;
667 asin;
668 asinh;
669 atan;
670 atan2;
671 atanh;
672 cbrt;
673 ceil;
674 copysign;
675 cos;
676 cosh;
677 erf;
678 erfc;
679 exp;
680 expm1;
681 fabs;
682 floor;
683 fmod;
684 gamma;
685 gamma_r;
686 hypot;
687 ilogb;
688 isnan;
689 j0;
690 j1;
691 jn;
692 lgamma;
693 lgamma_r;
694 log;
695 log10;
696 log1p;
697 logb;
698 matherr;
699 nextafter;
700 pow;
701 remainder;
702 rint;
703 scalb;
704 scalbn;
705 signgam;
706 significand;
707 sin;
708 sinh;
709 sqrt;
710 tan;
711 tanh;
712 y0;
713 y1;
714 yn;
715 };
716
717 $if amd64 || sparcv9
718 SYMBOL_VERSION SUNWprivate_1.2 {
719 $else
720 SYMBOL_VERSION SUNWprivate_1.3 {
721 $endif
722 global:
723 __libm_mt_fex_sync; # -lmtsk
724 __mt_fex_sync; # -lmtsk
725 $if amd64 || sparcv9
726 } SUNWprivate_1.1;
727 $else
728 } SUNWprivate_1.2;
729
730 SYMBOL_VERSION SUNWprivate_1.2 {
731 global:
732 __libm_errno; # SC3.0.1 -lmopt
733 } SUNWprivate_1.1;
734 $endif
735
736 SYMBOL_VERSION SUNWprivate_1.1 {
737 global:
738 _lib_version;
739 __libm__rem_pio2;
740 __libm__rem_pio2m;
741 # anything else is local
742 local:
743 # For symbols with multiple names, move the less preferred
744 # names out of .SUNW_dynsymsort
745 feclearexcept96 { FLAGS = NODYNSORT };
746 feraiseexcept96 { FLAGS = NODYNSORT };
747 fetestexcept96 { FLAGS = NODYNSORT };
748 fegetexceptflag96 { FLAGS = NODYNSORT };
749 fesetexceptflag96 { FLAGS = NODYNSORT };
750 feupdateenv96 { FLAGS = NODYNSORT };
751 fegetenv96 { FLAGS = NODYNSORT };
752 fesetenv96 { FLAGS = NODYNSORT };
753 fegetround96 { FLAGS = NODYNSORT };
754 *; # symbols not mentioned in this file are scoped out
755 };