[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

cpml shared library symbol version map



[ There's no Compaq contact address in the README, so hopefully one of the
  usual suspects will forward this as appropriate.  ]

Attached is an ELF version map to use cpml with glibc 2.1.  This would
be used with the archive like so:

  ld -shared --whole-archive libcpml.a --no-whole-archive -lc -o libcpml.so \
	--version-script cpml.map 

Symbols that appear in glibc 2.1 are given the same version tag so that
this can usefully drop in.  Symbols specific to cpml (mostly /^[Fr]_/)
are given their own version tag; future additional symbols would be given
a derived version tag (as is done for GLIBC_2.1 from GLIBC_2.0).  Symbols
matching /^_/ are not exported.

In theory, the not-exported functions could be subject to link-time gp 
optimizations, but the object code isn't in a supported form for that.
I'd like to discuss this with someone in Compaq sometime...


r~
GLIBC_2.0 {
  global:
    # libc functions
    isinf; isinff; isinfl;
    isnan; isnanf; isnanl;

    # libm functions
    acos; acosf; acosl;
    acosh; acoshf; acoshl;
    asin; asinf; asinl;
    asinh; asinhf; asinhl;
    atan2; atan2f; atan2l;
    atan; atanf; atanl;
    atanh; atanhf; atanhl;
    cbrt; cbrtf; cbrtl;
    ceil; ceilf; ceill;
    copysign; copysignf; copysignl;
    cos; cosf; cosl;
    coshf; cosh; coshl;
    drem; dremf; dreml;
    erf; erff; erfl;
    erfc; erfcf; erfcl;
    exp; expf; expl;
    expm1; expm1f; expm1l;
    fabs; fabsf; fabsl;
    finite; finitef; finitel;
    floor; floorf; floorl;
    fmod; fmodf; fmodl;
    frexp; frexpf; frexpl;
    gamma; gammaf; gammal;
    gamma_r; gammaf_r; gammal_r;
    hypot; hypotf; hypotl;
    ilogb; ilogbf; ilogbl;
    j0; j0f; j0l;
    j1; j1f; j1l;
    jn; jnf; jnl;
    ldexp; ldexpf; ldexpl;
    lgamma; lgammaf; lgammal;
    lgamma_r; lgammaf_r; lgammal_r;
    log10; log10f; log10l;
    log1p; log1pf; log1pl;
    log; logf; logl;
    logb; logbf; logbl;
    matherr;
    modf; modff; modfl;
    nextafter; nextafterf; nextafterl;
    pow; powf; powl;
    remainder; remainderf; remainderl;
    rint; rintf; rintl;
    scalb; scalbf; scalbl;
    scalbn; scalbnf; scalbnl;
    significand; significandf; significandl;
    sin; sinf; sinl;
    sinh; sinhf; sinhl;
    sqrt; sqrtf; sqrtl;
    tan; tanf; tanl;
    tanh; tanhf; tanhl;
    y0; y0f; y0l;
    y1; y1f; y1l;
    yn; ynf; ynl;

    # libm global variables
    signgam;

  local:
    *;
};

GLIBC_2.1 {
  global:
    # libm functions
    exp2; exp2f; exp2l;
    exp10; exp10f; exp10l;
    fdim; fdimf; fdiml;
    fma; fmaf; fmal;
    fmax; fmaxf; fmaxl;
    fmin; fminf; fminl;
    log2; log2f; log2l;
    nan; nanf; nanl;
    nearbyint; nearbyintf; nearbyintl;
    nexttoward; nexttowardf; nexttowardl;
    pow10; pow10f; pow10l;
    remquo; remquof; remquol;
    lrint; lrintf; lrintl;
    llrint; llrintf; llrintl;
    round; roundf; roundl;
    lround; lroundf; lroundl;
    llround; llroundf; llroundl;
    scalbln; scalblnf; scalblnl;
    sincos; sincosf; sincosl;
    trunc; truncf; truncl;
    tgamma; tgammaf; tgammal;

    # libm complex functions
    cabs; cabsf; cabsl;
    cacos; cacosf; cacosl;
    cacosh; cacoshf; cacoshl;
    carg; cargf; cargl;
    casin; casinf; casinl;
    casinh; casinhf; casinhl;
    catan; catanf; catanl;
    catanh; catanhf; catanhl;
    ccos; ccosf; ccosl;
    ccosh; ccoshf; ccoshl;
    cexp; cexpf; cexpl;
    cimag; cimagf; cimagl;
    clog; clogf; clogl;
    clog10; clog10f; clog10l;
    conj; conjf; conjl;
    cpow; cpowf; cpowl;
    cproj; cprojf; cprojl;
    creal; crealf; creall;
    csin; csinf; csinl;
    csinh; csinhf; csinhl;
    csqrt; csqrtf; csqrtl;
    ctan; ctanf; ctanl;
    ctanh; ctanhf; ctanhl;
} GLIBC_2.0;

CPML_0.1 {
  global:
    # fast alternates
    F_acos; F_acosf;
    F_asin; F_asinf;
    F_atan; F_atanf;
    F_atan2; F_atan2f;
    F_cos; F_cosf;
    F_cosd; F_cosdf;
    F_exp; F_expf;
    F_hypot; F_hypotf;
    F_log; F_logf;
    F_log10; F_log10f;
    F_pow; F_powf;
    F_sin; F_sinf;
    F_sincos; F_sincosf;
    F_sincosd; F_sincosdf;
    F_sind; F_sindf;
    F_sqrt; F_sqrtf;
    F_tan; F_tanf;
  
    # by-reference alternates
    r_acos; r_acosf; r_acosl;
    r_acosd; r_acosdf; r_acosdl;
    r_asin; r_asinf; r_asinl;
    r_asind; r_asindf; r_asindl;
    r_atan; r_atanf; r_atanl;
    r_atan2; r_atan2f; r_atan2l;
    r_atand; r_atandf; r_atandl;
    r_atand2; r_atand2f; r_atand2l;
    r_atanh; r_atanhf; r_atanhl;
    r_cabs; r_cabsf;
    r_ccos; r_ccosf;
    r_ceil; r_ceilf; r_ceill;
    r_cexp; r_cexpf;
    r_clog; r_clogf;
    r_cmplx; r_cmplxf;
    r_conjg; r_conjgf;
    r_copysign; r_copysignf; r_copysignl;
    r_cos; r_cosf; r_cosl;
    r_cosd; r_cosdf; r_cosdl;
    r_cosh; r_coshf; r_coshl;
    r_cot; r_cotf; r_cotl;
    r_cotd; r_cotdf; r_cotdl;
    r_csin; r_csinf;
    r_csqrt; r_csqrtf;
    r_dim; r_dimf; r_diml;
    r_exp; r_expf; r_expl;
    r_fabs; r_fabsf; r_fabsl;
    r_finite; r_finitef; r_finitel;
    r_floor; r_floorf; r_floorl;
    r_fmod; r_fmodf; r_fmodl;
    r_fp_class; r_fp_classf; r_fp_classl;
    r_imag; r_imagf;
    r_isnan; r_isnanf; r_isnanl;
    r_log; r_logf; r_logl;
    r_log10; r_log10f; r_log10l;
    r_log2; r_log2f; r_log2l;
    r_nextafter; r_nextafterf; r_nextafterl;
    r_nint; r_nintf; r_nintl;
    r_prod; r_prodf; r_prodl;
    r_real; r_realf;
    r_rint; r_rintf; r_rintl;
    r_sign; r_signf; r_signl;
    r_sin; r_sinf; r_sinl;
    r_sind; r_sindf; r_sindl;
    r_sinh; r_sinhf; r_sinhl;
    r_snglt;
    r_sqrt; r_sqrtf; r_sqrtl;
    r_tan; r_tanf; r_tanl;
    r_tand; r_tandf; r_tandl;
    r_tanh; r_tanhf; r_tanhl;
    r_tdble;
    r_trunc; r_truncf; r_truncl;
    r_unordered; r_unorderedf; r_unorderedl;

    r_iabs; r_jabs; r_kabs;
    r_iand; r_jand; r_kand;
    r_idim; r_jdim; r_kdim;
    r_ieor; r_jeor; r_keor;
    r_iisfix; r_jisfix; r_kisfix;
    r_imod; r_jmod; r_kmod;
    r_inot; r_jnot; r_knot;
    r_ior; r_jor; r_kor;
    r_irotate; r_jrotate; r_krotate;
    r_ishift; r_jshift; r_kshift;
    r_isign; r_jsign; r_ksign;
    r_iumod; r_jumod; r_kumod; r_lumod;
    r_iisint; r_iitint; r_iixint;
    r_jisint; r_jitint; r_jixint;
    r_kisint; r_kitint; r_kixint;
    r_inint; r_inintf; r_inintl;
    r_jnint; r_jnintf; r_jnintl;
    r_knint; r_knintf; r_knintl;
    r_sfloti; r_sflotj; r_sflotk;
    r_tfloti; r_tflotj; r_tflotk;
    r_xfloti; r_xflotj; r_xflotk;

    # complex functions.
    cdiv; cdivf; cdivl;
    cmul; cmulf; cmull;
    cpowi; cpowif;
  
    # normal functions.
    acosd; acosdf; acosdl; 
    asind; asindf; asindl;
    atand; atandf; atandl;
    atand2; atand2f; atand2l;
    cosd; cosdf; cosdl;
    cot; cotf; cotl;
    cotd; cotdf; cotdl;
    fp_class; fp_classf; fp_classl;
    nearest; nearestf; nearestl;
    nextafterx; nextafterxf; nextafterxl;
    nint; nintf; nintl;
    powi; powif; powil; powii;
    sincosd; sincosdf; sincosdl;
    sind; sindf; sindl;
    sinhcosh; sinhcoshf; sinhcoshl;
    tand; tandf; tandl;
    unordered; unorderedf; unorderedl;
  
    # global variables
    signgamf; signgaml;
  
    # ??? Should these be exported at all?
    complex_jacket_s; complex_jacket_t;
    cvt_ftof;
};

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index] []