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