Print this page
5262 libm needs to be carefully unifdef'd
5268 libm doesn't need to hide symbols which are already local
Reviewed by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com>
Reviewed by: Gordon Ross <gwr@nexenta.com>
Approved by: Gordon Ross <gwr@nexenta.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/C/libm_protos.h
          +++ new/usr/src/lib/libm/common/C/libm_protos.h
↓ open down ↓ 21 lines elided ↑ open up ↑
  22   22   * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  23   23   */
  24   24  /*
  25   25   * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  26   26   * Use is subject to license terms.
  27   27   */
  28   28  
  29   29  #ifndef _C_LIBM_PROTOS_H
  30   30  #define _C_LIBM_PROTOS_H
  31   31  
  32      -#ifdef LIBMOPT_BUILD
  33      -#define _TBL_cos        __libmopt_TBL_cos
  34      -#define _TBL_exp2_512   __libmopt_TBL_exp2_512
  35      -#define _TBL_ipio2_inf  __libmopt_TBL_ipio2_inf
  36      -#define _TBL_jlog_n1    __libmopt_TBL_jlog_n1
  37      -#define _TBL_jlog_n2    __libmopt_TBL_jlog_n2
  38      -#define _TBL_jlog_p1    __libmopt_TBL_jlog_p1
  39      -#define _TBL_jlog_p2    __libmopt_TBL_jlog_p2
  40      -#define _TBL_log10      __libmopt_TBL_log10
  41      -#define _TBL_log2_14    __libmopt_TBL_log2_14
  42      -#define _TBL_log2_9     __libmopt_TBL_log2_9
  43      -#define _TBL_sin        __libmopt_TBL_sin
  44      -#define _TBL_sincosx    __libmopt_TBL_sincosx
  45      -#define _TBL_xexp       __libmopt_TBL_xexp
  46      -#define _TBL_xlog       __libmopt_TBL_xlog
  47      -#define __k_cos_        __libmopt__k_cos_
  48      -#define __k_sin_        __libmopt__k_sin_
  49      -#define __k_sincos_     __libmopt__k_sincos_
  50      -#define __reduction     __libmopt__reduction
  51      -#define __rem_pio2      __libmopt__rem_pio2
  52      -#define __rem_pio2m     __libmopt__rem_pio2m
  53      -#else   /* defined(LIBMOPT_BUILD) */
  54      -#ifdef LIBM_BUILD
  55      -#define _SVID_libm_err  __libm_SVID_libm_err    /* not used by -lsunmath */
  56      -#define _TBL_atan       __libm_TBL_atan
  57      -#define _TBL_atan1      __libm_TBL_atan1
  58      -#define _TBL_atan_hi    __libm_TBL_atan_hi      /* not used by -lsunmath */
  59      -#define _TBL_atan_lo    __libm_TBL_atan_lo      /* not used by -lsunmath */
  60      -#define _TBL_exp2_hi    __libm_TBL_exp2_hi      /* not used by -lsunmath */
  61      -#define _TBL_exp2_lo    __libm_TBL_exp2_lo      /* not used by -lsunmath */
  62      -#define _TBL_ipio2_inf  __libm_TBL_ipio2_inf
  63      -#define _TBL_log        __libm_TBL_log
  64      -#define _TBL_log2_hi    __libm_TBL_log2_hi      /* not used by -lsunmath */
  65      -#define _TBL_log2_lo    __libm_TBL_log2_lo      /* not used by -lsunmath */
  66      -#define _TBL_log_hi     __libm_TBL_log_hi       /* not used by -lsunmath */
  67      -#define _TBL_log_lo     __libm_TBL_log_lo       /* not used by -lsunmath */
  68      -#define _TBL_sincos     __libm_TBL_sincos
  69      -#define _TBL_sincosx    __libm_TBL_sincosx
  70      -#define _TBL_tan_hi     __libm_TBL_tan_hi       /* not used by -lsunmath */
  71      -#define _TBL_tan_lo     __libm_TBL_tan_lo       /* not used by -lsunmath */
  72      -#define __k_cexp        __libm__k_cexp          /* C99 libm */
  73      -#define __k_cexpl       __libm__k_cexpl         /* C99 libm */
  74      -#define __k_clog_r      __libm__k_clog_r        /* C99 libm */
  75      -#define __k_clog_rl     __libm__k_clog_rl       /* C99 libm */
  76      -#define __k_atan2       __libm__k_atan2         /* C99 libm */
  77      -#define __k_atan2l      __libm__k_atan2l        /* C99 libm */
  78      -#define __k_cos         __libm__k_cos
  79      -#define __k_lgamma      __libm__k_lgamma
  80      -#define __k_sin         __libm__k_sin
  81      -#define __k_sincos      __libm__k_sincos
  82      -#define __k_tan         __libm__k_tan
  83      -#define __reduction     __libm__reduction       /* i386 only */
       32 +/*
       33 + * Many symbols used to be namespaced with __libm to prevent collisions.  All
       34 + * but these two were otherwise scoped local and directly bound, so that
       35 + * collision could not occur.
       36 + *
       37 + * For reasons unknown, these two are global (but private).
       38 + */
  84   39  #define __rem_pio2      __libm__rem_pio2
  85   40  #define __rem_pio2m     __libm__rem_pio2m
  86      -#define __k_cosf        __libm__k_cosf          /* C99 libm */
  87      -#define __k_cosl        __libm__k_cosl          /* C99 libm */
  88      -#define __k_lgammal     __libm__k_lgammal       /* C99 libm */
  89      -#define __k_sincosf     __libm__k_sincosf       /* C99 libm */
  90      -#define __k_sincosl     __libm__k_sincosl       /* C99 libm */
  91      -#define __k_sinf        __libm__k_sinf          /* C99 libm */
  92      -#define __k_sinl        __libm__k_sinl          /* C99 libm */
  93      -#define __k_tanf        __libm__k_tanf          /* C99 libm */
  94      -#define __k_tanl        __libm__k_tanl          /* C99 libm */
  95      -#define __poly_libmq    __libm__poly_libmq      /* C99 libm */
  96      -#define __rem_pio2l     __libm__rem_pio2l       /* C99 libm */
  97      -#define _TBL_atanl_hi   __libm_TBL_atanl_hi     /* C99 libm */
  98      -#define _TBL_atanl_lo   __libm_TBL_atanl_lo     /* C99 libm */
  99      -#define _TBL_cosl_hi    __libm_TBL_cosl_hi      /* C99 libm */
 100      -#define _TBL_cosl_lo    __libm_TBL_cosl_lo      /* C99 libm */
 101      -#define _TBL_expl_hi    __libm_TBL_expl_hi      /* C99 libm */
 102      -#define _TBL_expl_lo    __libm_TBL_expl_lo      /* C99 libm */
 103      -#define _TBL_expm1l     __libm_TBL_expm1l       /* C99 libm */
 104      -#define _TBL_expm1lx    __libm_TBL_expm1lx      /* C99 libm */
 105      -#define _TBL_ipio2l_inf __libm_TBL_ipio2l_inf   /* C99 libm */
 106      -#define _TBL_logl_hi    __libm_TBL_logl_hi      /* C99 libm */
 107      -#define _TBL_logl_lo    __libm_TBL_logl_lo      /* C99 libm */
 108      -#define _TBL_r_atan_hi  __libm_TBL_r_atan_hi    /* C99 libm */
 109      -#define _TBL_r_atan_lo  __libm_TBL_r_atan_lo    /* C99 libm */
 110      -#define _TBL_sinl_hi    __libm_TBL_sinl_hi      /* C99 libm */
 111      -#define _TBL_sinl_lo    __libm_TBL_sinl_lo      /* C99 libm */
 112      -#define _TBL_tanl_hi    __libm_TBL_tanl_hi      /* C99 libm */
 113      -#define _TBL_tanl_lo    __libm_TBL_tanl_lo      /* C99 libm */
 114      -#endif  /* defined(LIBM_BUILD) */
 115      -#endif  /* defined(LIBMOPT_BUILD) */
 116   41  
 117   42  #ifndef _ASM
 118   43  #ifdef __STDC__
 119   44  #define __P(p)  p
 120   45  #else
 121   46  #define __P(p)  ()
 122   47  #endif
 123   48  
 124   49  #include <sys/ieeefp.h>
 125   50  
↓ open down ↓ 93 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX