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 };