# # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # Copyright 2011 Nexenta Systems, Inc. All rights reserved. # # Copyright 2006 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # Interface definition for libm.so.2 # # For information regarding the establishment of versioned definitions see: # The Linker and Libraries Manual (version 2.5 or greater) # This is part of the Developers Guide in the Answerbook. Specifically refer # to Chapter 2 under section "Defining Additional Symbols" through section # "Reducing Symbol Scope", and Chapter 5 "Versioning". # # For specific rules for the modification (evolution) of these version # definitions see: # psarc_1995_14: Integration of Scoped Libraries # (/shared/sac/PSARC/1995/014) # Policy for Shared Library Version Names and Interface Definitions # (/shared/ON/general_docs/scoping-rules.ps) # # MAPFILE HEADER START # # WARNING: STOP NOW. DO NOT MODIFY THIS FILE. # Object versioning must comply with the rules detailed in # # usr/src/lib/README.mapfiles # # You should not be making modifications here until you've read the most current # copy of that file. If you need help, contact a gatekeeper for guidance. # # MAPFILE HEADER END # $mapfile_version 2 $if _ELF32 $add lf64 $endif $if _sparc && _ELF32 $add sparc32 $endif $if _sparc && _ELF64 $add sparcv9 $endif $if _x86 && _ELF32 $add i386 $endif $if _x86 && _ELF64 $add amd64 $endif SYMBOL_VERSION SUNW_1.3 { global: __isnanf; #LSARC/2003/658 __isnanl; #LSARC/2003/658 _isnan { FLAGS = NODYNSORT; }; #LSARC/2003/658 _isnand { FLAGS = NODYNSORT; }; #LSARC/2003/658 _isnanf { FLAGS = NODYNSORT; }; #LSARC/2003/658 _logb { FLAGS = NODYNSORT; }; #LSARC/2003/658 _modf { FLAGS = NODYNSORT; }; #LSARC/2003/658 _modff { FLAGS = NODYNSORT; }; #LSARC/2003/658 _nextafter { FLAGS = NODYNSORT; }; #LSARC/2003/658 _scalb { FLAGS = NODYNSORT; }; #LSARC/2003/658 isnand { FLAGS = NODYNSORT; }; #LSARC/2003/658 isnanf; #LSARC/2003/658 isnanl; #LSARC/2003/658 } SUNW_1.2; SYMBOL_VERSION SUNW_1.2 { global: __acoshf; __acoshl; __asinhf; __asinhl; __atanhf; __atanhl; __cabs; __cabsf; __cabsl; __cacos; __cacosf; __cacosh; __cacoshf; __cacoshl; __cacosl; __carg; __cargf; __cargl; __casin; __casinf; __casinh; __casinhf; __casinhl; __casinl; __catan; __catanf; __catanh; __catanhf; __catanhl; __catanl; __cbrtf; __cbrtl; __ccos; __ccosf; __ccosh; __ccoshf; __ccoshl; __ccosl; __cexp; __cexpf; __cexpl; __cimag; __cimagf; __cimagl; __clog; __clogf; __clogl; __conj; __conjf; __conjl; __copysignf; __copysignl; __cpow; __cpowf; __cpowl; __cproj; __cprojf; __cprojl; __creal; __crealf; __creall; __csin; __csinf; __csinh; __csinhf; __csinhl; __csinl; __csqrt; __csqrtf; __csqrtl; __ctan; __ctanf; __ctanh; __ctanhf; __ctanhl; __ctanl; __erfcf; __erfcl; __erff; __erfl; __exp2; __exp2f; __exp2l; __expm1f; __expm1l; __fdim; __fdimf; __fdiml; __feclearexcept; __fegetenv; __fegetexceptflag; $if _x86 __fegetprec; #LSARC/1996/175 $endif __fegetround; __feholdexcept; __fenv_dfl_env { ASSERT = { TYPE = OBJECT; SIZE = addrsize[25]; }; }; #LSARC/1996/175 __feraiseexcept; __fesetenv; __fesetexceptflag; $if _x86 __fesetprec; #LSARC/1996/175 $endif __fesetround; __fetestexcept; __feupdateenv; __fex_get_handling; #LSARC/1996/175 __fex_get_log; #LSARC/1996/175 __fex_get_log_depth; #LSARC/1996/175 __fex_getexcepthandler; #LSARC/1996/175 __fex_log_entry; #LSARC/1996/175 __fex_merge_flags; #LSARC/1996/175 __fex_set_handling; #LSARC/1996/175 __fex_set_log; #LSARC/1996/175 __fex_set_log_depth; #LSARC/1996/175 __fex_setexcepthandler; #LSARC/1996/175 __fma; __fmaf; __fmal; __fmax; __fmaxf; __fmaxl; __fmin; __fminf; __fminl; __frexp; __gammaf; #LSARC/2003/279 __gammaf_r; #LSARC/2003/279 __gammal; #LSARC/2003/279 __gammal_r; #LSARC/2003/279 __hypotf; __hypotl; __ilogbf; __ilogbl; __j0f; #LSARC/2003/279 __j0l; #LSARC/2003/279 __j1f; #LSARC/2003/279 __j1l; #LSARC/2003/279 __jnf; #LSARC/2003/279 __jnl; #LSARC/2003/279 __ldexp; __lgammaf; __lgammaf_r; #LSARC/2003/279 __lgammal; __lgammal_r; #LSARC/2003/279 $if amd64 || sparcv9 __llrint { FLAGS = NODYNSORT; }; __llrintf { FLAGS = NODYNSORT; }; __llrintl { FLAGS = NODYNSORT; }; __llround { FLAGS = NODYNSORT; }; __llroundf { FLAGS = NODYNSORT; }; __llroundl { FLAGS = NODYNSORT; }; $else __llrint; __llrintf; __llrintl; __llround; __llroundf; __llroundl; $endif __log1pf; __log1pl; __log2; __log2f; __log2l; __logbf; __logbl; $if amd64 || sparcv9 __lrint { FLAGS = NODYNSORT; }; __lrintf { FLAGS = NODYNSORT; }; __lrintl { FLAGS = NODYNSORT; }; __lround { FLAGS = NODYNSORT; }; __lroundf { FLAGS = NODYNSORT; }; __lroundl { FLAGS = NODYNSORT; }; $else __lrint; __lrintf; __lrintl; __lround; __lroundf; __lroundl; $endif __modf; __nan; __nanf; __nanl; __nearbyint; __nearbyintf; __nearbyintl; __nextafterf; __nextafterl; __nexttoward; __nexttowardf; __nexttowardl; __remainderf; __remainderl; __remquo; __remquof; __remquol; __rintf; __rintl; __round; __roundf; __roundl; __scalbf; #LSARC/2003/279 __scalbl; #LSARC/2003/279 __scalbln; __scalblnf; __scalblnl; __scalbnf; __scalbnl; __signgamf { ASSERT = { BINDING = WEAK; ALIAS = signgamf; }; }; #LSARC/2003/279 __signgaml { ASSERT = { BINDING = WEAK; ALIAS = signgaml; }; }; #LSARC/2003/279 __significandf; #LSARC/2003/279 __significandl; #LSARC/2003/279 __sincos; #LSARC/2003/279 __sincosf; #LSARC/2003/279 __sincosl; #LSARC/2003/279 __tgamma; __tgammaf; __tgammal; __trunc; __truncf; __truncl; __xpg6 { FLAGS = NODIRECT; ASSERT = { TYPE = OBJECT; SIZE = 4; }; }; #private contract with libc group __y0f; #LSARC/2003/279 __y0l; #LSARC/2003/279 __y1f; #LSARC/2003/279 __y1l; #LSARC/2003/279 __ynf; #LSARC/2003/279 __ynl; #LSARC/2003/279 acosf; acoshf; acoshl; acosl; asinf; asinhf; asinhl; asinl; atan2f; atan2l; atanf; atanhf; atanhl; atanl; cabs; cabsf; cabsl; cacos; cacosf; cacosh; cacoshf; cacoshl; cacosl; carg; cargf; cargl; casin; casinf; casinh; casinhf; casinhl; casinl; catan; catanf; catanh; catanhf; catanhl; catanl; cbrtf; cbrtl; ccos; ccosf; ccosh; ccoshf; ccoshl; ccosl; ceilf; ceill; cexp; cexpf; cexpl; cimag; cimagf; cimagl; clog; clogf; clogl; conj; conjf; conjl; copysignf; copysignl; cosf; coshf; coshl; cosl; cpow; cpowf; cpowl; cproj; cprojf; cprojl; creal; crealf; creall; csin; csinf; csinh; csinhf; csinhl; csinl; csqrt; csqrtf; csqrtl; ctan; ctanf; ctanh; ctanhf; ctanhl; ctanl; erfcf; erfcl; erff; erfl; exp2; exp2f; exp2l; expf; expl; expm1f; expm1l; fabsf; fabsl; fdim; fdimf; fdiml; feclearexcept; fegetenv; fegetexceptflag; $if _x86 fegetprec; #LSARC/1996/175 $endif fegetround; feholdexcept; feraiseexcept; fesetenv; fesetexceptflag; $if _x86 fesetprec; #LSARC/1996/175 $endif fesetround; fetestexcept; feupdateenv; fex_get_handling; #LSARC/1996/175 fex_get_log; #LSARC/1996/175 fex_get_log_depth; #LSARC/1996/175 fex_getexcepthandler; #LSARC/1996/175 fex_log_entry; #LSARC/1996/175 fex_merge_flags; #LSARC/1996/175 fex_set_handling; #LSARC/1996/175 fex_set_log; #LSARC/1996/175 fex_set_log_depth; #LSARC/1996/175 fex_setexcepthandler; #LSARC/1996/175 floorf; floorl; fma; fmaf; fmal; fmax; fmaxf; fmaxl; fmin; fminf; fminl; fmodf; fmodl; frexp; frexpf; frexpl; gammaf; #LSARC/2003/279 gammaf_r; #LSARC/2003/279 gammal; #LSARC/2003/279 gammal_r; #LSARC/2003/279 hypotf; hypotl; ilogbf; ilogbl; j0f; #LSARC/2003/279 j0l; #LSARC/2003/279 j1f; #LSARC/2003/279 j1l; #LSARC/2003/279 jnf; #LSARC/2003/279 jnl; #LSARC/2003/279 ldexp; ldexpf; ldexpl; lgammaf; lgammaf_r; #LSARC/2003/279 lgammal; lgammal_r; #LSARC/2003/279 $if amd64 || sparcv9 llrint { FLAGS = NODYNSORT; }; llrintf { FLAGS = NODYNSORT; }; llrintl { FLAGS = NODYNSORT; }; llround { FLAGS = NODYNSORT; }; llroundf { FLAGS = NODYNSORT; }; llroundl { FLAGS = NODYNSORT; }; $else llrint; llrintf; llrintl; llround; llroundf; llroundl; $endif log10f; log10l; log1pf; log1pl; log2; log2f; log2l; logbf; logbl; logf; logl; lrint; lrintf; lrintl; lround; lroundf; lroundl; modf; modff; modfl; nan; nanf; nanl; nearbyint; nearbyintf; nearbyintl; nextafterf; nextafterl; nexttoward; nexttowardf; nexttowardl; powf; powl; remainderf; remainderl; remquo; remquof; remquol; rintf; rintl; round; roundf; roundl; scalbf; #LSARC/2003/279 scalbl; #LSARC/2003/279 scalbln; scalblnf; scalblnl; scalbnf; scalbnl; signgamf { ASSERT = { TYPE = OBJECT; SIZE = 4; }; }; #LSARC/2003/279 signgaml { ASSERT = { TYPE = OBJECT; SIZE = 4; }; }; #LSARC/2003/279 significandf; #LSARC/2003/279 significandl; #LSARC/2003/279 sincos; #LSARC/2003/279 sincosf; #LSARC/2003/279 sincosl; #LSARC/2003/279 sinf; sinhf; sinhl; sinl; sqrtf; sqrtl; tanf; tanhf; tanhl; tanl; tgamma; tgammaf; tgammal; trunc; truncf; truncl; y0f; #LSARC/2003/279 y0l; #LSARC/2003/279 y1f; #LSARC/2003/279 y1l; #LSARC/2003/279 ynf; #LSARC/2003/279 ynl; #LSARC/2003/279 } SUNW_1.1.1; SYMBOL_VERSION SUNW_1.1.1 { global: __acosf; __acosl; __asinf; __asinl; __atan2f; __atan2l; __atanf; __atanl; __ceilf; __ceill; __cosf; __coshf; __coshl; __cosl; __expf; __expl; __fabsf; __fabsl; __floorf; __floorl; __fmodf; __fmodl; __frexpf; __frexpl; __ldexpf; __ldexpl; __log10f; __log10l; __logf; __logl; __modff; __modfl; __powf; __powl; __sinf; __sinhf; __sinhl; __sinl; __sqrtf; __sqrtl; __tanf; __tanhf; __tanhl; __tanl; } SUNW_1.1; SYMBOL_VERSION SUNW_1.1 { global: __acos; __acosh; __asin; __asinh; __atan; __atan2; __atanh; __cbrt; __ceil; __copysign; __cos; __cosh; __erf; __erfc; __exp; __expm1; __fabs; __floor; __fmod; __gamma; __gamma_r; __hypot; __ilogb; __isnan; __j0; __j1; __jn; __lgamma; __lgamma_r; __log; __log10; __log1p; __logb; __nextafter; __pow; __remainder; __rint; __scalb; __scalbn; __signgam { ASSERT = { BINDING = WEAK; ALIAS = signgam; }; }; __significand; __sin; __sinh; __sqrt; __tan; __tanh; __y0; __y1; __yn; acos; acosh; asin; asinh; atan; atan2; atanh; cbrt; ceil; copysign; cos; cosh; erf; erfc; exp; expm1; fabs; floor; fmod; gamma; gamma_r; hypot; ilogb; isnan; j0; j1; jn; lgamma; lgamma_r; log; log10; log1p; logb; matherr { FLAGS = NODIRECT; }; nextafter; pow; remainder; rint; scalb; scalbn; signgam { ASSERT = { TYPE = OBJECT; SIZE = 4; }; }; significand; sin; sinh; sqrt; tan; tanh; y0; y1; yn; }; $if amd64 || sparcv9 SYMBOL_VERSION SUNWprivate_1.2 { $else SYMBOL_VERSION SUNWprivate_1.3 { $endif global: # -lmtsk __libm_mt_fex_sync { ASSERT = { TYPE = OBJECT; SIZE = addrsize; }; }; __mt_fex_sync { ASSERT = { TYPE = OBJECT; SIZE = addrsize }; }; $if amd64 || sparcv9 } SUNWprivate_1.1; $else } SUNWprivate_1.2; SYMBOL_VERSION SUNWprivate_1.2 { global: __libm_errno; # SC3.0.1 -lmopt } SUNWprivate_1.1; $endif SYMBOL_VERSION SUNWprivate_1.1 { global: _lib_version { ASSERT = { TYPE = OBJECT; SIZE = 4 }; }; __libm__rem_pio2; __libm__rem_pio2m; # anything else is local local: # For symbols with multiple names, move the less preferred # names out of .SUNW_dynsymsort feclearexcept96 { FLAGS = NODYNSORT }; feraiseexcept96 { FLAGS = NODYNSORT }; fetestexcept96 { FLAGS = NODYNSORT }; fegetexceptflag96 { FLAGS = NODYNSORT }; fesetexceptflag96 { FLAGS = NODYNSORT }; feupdateenv96 { FLAGS = NODYNSORT }; fegetenv96 { FLAGS = NODYNSORT }; fesetenv96 { FLAGS = NODYNSORT }; fegetround96 { FLAGS = NODYNSORT }; *; # symbols not mentioned in this file are scoped out };