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 #
  22 # Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
  23 #
  24 # Copyright 2010 Nexenta Systems, Inc.  All rights reserved.
  25 # Use is subject to license terms.
  26 #
  27 # Copyright (c) 2012 by Delphix. All rights reserved.
  28 # Copyright (c) 2015, Joyent, Inc.  All rights reserved.
  29 # Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved.
  30 # Copyright (c) 2013 Gary Mills
  31 # Copyright 2014 Garrett D'Amore <garrett@damore.org>
  32 
  33 #
  34 # MAPFILE HEADER START
  35 #
  36 # WARNING:  STOP NOW.  DO NOT MODIFY THIS FILE.
  37 # Object versioning must comply with the rules detailed in
  38 #
  39 #       usr/src/lib/README.mapfiles
  40 #
  41 # You should not be making modifications here until you've read the most current
  42 # copy of that file. If you need help, contact a gatekeeper for guidance.
  43 #
  44 # MAPFILE HEADER END
  45 #
  46 
  47 $mapfile_version 2
  48 
  49 #
  50 # All function names added to this or any other libc mapfile
  51 # must be placed under the 'protected:' designation.
  52 # The 'global:' designation is used *only* for data
  53 # items and for the members of the malloc() family.
  54 #
  55 
  56 #
  57 # README README README README README README: how to update this file
  58 #   1) each version of Solaris/OpenSolaris gets a version number.
  59 #      (Actually since Solaris is actually a series of OpenSolaris releases
  60 #       we'll just use OpenSolaris for this exercise.)
  61 #       OpenSolaris 2008.11 gets 1.23
  62 #       OpenSolaris 2009.04 gets 1.24
  63 #       etc.
  64 #   2) each project integration uses a unique version number.
  65 #       PSARC/2008/123 gets 1.24.1
  66 #       PSARC/2008/456 gets 1.24.2
  67 #       etc.
  68 #
  69 
  70 
  71 # Mnemonic conditional input identifiers:
  72 #
  73 # - amd64, i386, sparc32, sparcv9: Correspond to ISA subdirectories used to
  74 #       hold per-platform code. Note however that we use 'sparc32' instead of
  75 #       'sparc'. Since '_sparc' is predefined to apply to, all sparc platforms,
  76 #       naming the 32-bit version 'sparc' would be too likely to cause errors.
  77 #
  78 # -     lf64: Defined on platforms that offer the 32-bit largefile APIs
  79 #
  80 $if _ELF32
  81 $add lf64
  82 $endif
  83 $if _sparc && _ELF32
  84 $add sparc32
  85 $endif
  86 $if _sparc && _ELF64
  87 $add sparcv9
  88 $endif
  89 $if _x86 && _ELF32
  90 $add i386
  91 $endif
  92 $if _x86 && _ELF64
  93 $add amd64
  94 $endif
  95 
  96 SYMBOL_VERSION ILLUMOS_0.19 {   # flock
  97     protected:
  98         flock;
  99 } ILLUMOS_0.18;
 100 
 101 SYMBOL_VERSION ILLUMOS_0.18 {   # signalfd
 102     protected:
 103         signalfd;
 104 } ILLUMOS_0.17;
 105 
 106 SYMBOL_VERSION ILLUMOS_0.17 {   # glob(3C) LFS
 107 $if lf64
 108     protected:
 109         _glob_ext64;
 110         _globfree_ext64;
 111 $endif
 112 } ILLUMOS_0.16;
 113 
 114 SYMBOL_VERSION ILLUMOS_0.16 {   # timerfd
 115     protected:
 116         timerfd_create;
 117         timerfd_gettime;
 118         timerfd_settime;
 119 } ILLUMOS_0.15;
 120 
 121 SYMBOL_VERSION ILLUMOS_0.15 {   # epoll(3C)
 122     protected:
 123         epoll_create;
 124         epoll_create1;
 125         epoll_ctl;
 126         epoll_wait;
 127         epoll_pwait;
 128 } ILLUMOS_0.14;
 129 
 130 SYMBOL_VERSION ILLUMOS_0.14 {   # strerror_l
 131     protected:
 132         strerror_l;
 133 } ILLUMOS_0.13;
 134 
 135 SYMBOL_VERSION ILLUMOS_0.13 {   # eventfd
 136     protected:
 137         eventfd;
 138         eventfd_read;
 139         eventfd_write;
 140 } ILLUMOS_0.12;
 141 
 142 SYMBOL_VERSION ILLUMOS_0.12 {   # arc4random and friends
 143     protected:
 144         arc4random;
 145         arc4random_buf;
 146         arc4random_uniform;
 147         explicit_bzero;
 148         getentropy;
 149 } ILLUMOS_0.11;
 150 
 151 SYMBOL_VERSION ILLUMOS_0.11 {   # Illumos additions
 152     protected:
 153         iswxdigit_l;
 154         isxdigit_l;
 155 } ILLUMOS_0.10;
 156 
 157 SYMBOL_VERSION ILLUMOS_0.10 {   # Illumos additions
 158     protected:
 159         preadv;
 160         pwritev;
 161 
 162 $if lf64
 163         preadv64;
 164         pwritev64;
 165 $endif
 166 } ILLUMOS_0.9;
 167 
 168 SYMBOL_VERSION ILLUMOS_0.9 {
 169     protected:
 170         wcsnrtombs;
 171         wcsnrtombs_l;
 172 } ILLUMOS_0.8;
 173 
 174 SYMBOL_VERSION ILLUMOS_0.8 {    # POSIX 2008 newlocale and friends
 175     protected:
 176         __global_locale;
 177         __mb_cur_max;
 178         __mb_cur_max_l;
 179         btowc_l;
 180         duplocale;
 181         fgetwc_l;
 182         freelocale;
 183         getwc_l;
 184         isalnum_l;
 185         isalpha_l;
 186         isblank_l;
 187         iscntrl_l;
 188         isdigit_l;
 189         isgraph_l;
 190         islower_l;
 191         isprint_l;
 192         ispunct_l;
 193         isspace_l;
 194         isupper_l;
 195         iswideogram;
 196         iswideogram_l;
 197         iswnumber;
 198         iswnumber_l;
 199         iswhexnumber;
 200         iswhexnumber_l;
 201         iswphonogram;
 202         iswphonogram_l;
 203         iswspecial;
 204         iswspecial_l;
 205         iswalnum_l;
 206         iswalpha_l;
 207         iswblank_l;
 208         iswcntrl_l;
 209         iswctype_l;
 210         iswdigit_l;
 211         iswgraph_l;
 212         iswlower_l;
 213         iswprint_l;
 214         iswpunct_l;
 215         iswspace_l;
 216         iswupper_l;
 217         mblen_l;
 218         mbrlen_l;
 219         mbsinit_l;
 220         mbsnrtowcs;
 221         mbsnrtowcs_l;
 222         mbsrtowcs_l;
 223         mbstowcs_l;
 224         mbtowc_l;
 225         newlocale;
 226         nl_langinfo_l;
 227         strcasecmp_l;
 228         strcasestr_l;
 229         strcoll_l;
 230         strfmon_l;
 231         strftime_l;
 232         strncasecmp_l;
 233         strptime_l;
 234         strxfrm_l;
 235         tolower_l;
 236         toupper_l;
 237         towlower_l;
 238         towupper_l;
 239         towctrans_l;
 240         uselocale;
 241         wcrtomb_l;
 242         wcscasecmp_l;
 243         wcscoll_l;
 244         wcsncasecmp_l;
 245         wcsrtombs_l;
 246         wcstombs_l;
 247         wcswidth_l;
 248         wcsxfrm_l;
 249         wctob_l;
 250         wctomb_l;
 251         wctrans_l;
 252         wctype_l;
 253         wcwidth_l;
 254 } ILLUMOS_0.7;
 255 
 256 SYMBOL_VERSION ILLUMOS_0.7 {    # Illumos additions
 257     protected:
 258         _glob_ext;
 259         _globfree_ext;
 260 } ILLUMOS_0.6;
 261 
 262 SYMBOL_VERSION ILLUMOS_0.6 {    # Illumos additions
 263     protected:
 264         getloginx;
 265         getloginx_r;
 266         __posix_getloginx_r;
 267 } ILLUMOS_0.5;
 268 
 269 SYMBOL_VERSION ILLUMOS_0.5 {    # common C++ ABI exit handlers
 270     protected:
 271         __cxa_atexit;
 272         __cxa_finalize;
 273 } ILLUMOS_0.4;
 274 
 275 SYMBOL_VERSION ILLUMOS_0.4 {    # Illumos additions
 276     protected:
 277         pipe2;
 278         dup3;
 279         mkostemp;
 280         mkostemps;
 281 
 282 $if lf64
 283         mkostemp64;
 284         mkostemps64;
 285 $endif
 286 } ILLUMOS_0.3;
 287 
 288 SYMBOL_VERSION ILLUMOS_0.3 {    # Illumos additions
 289     protected:
 290         assfail3;
 291 } ILLUMOS_0.2;
 292 
 293 SYMBOL_VERSION ILLUMOS_0.2 {    # Illumos additions
 294     protected:
 295         posix_spawn_pipe_np;
 296 } ILLUMOS_0.1;
 297 
 298 SYMBOL_VERSION ILLUMOS_0.1 {    # Illumos additions
 299     protected:
 300         timegm;
 301 } SUNW_1.23;
 302 
 303 SYMBOL_VERSION SUNW_1.23 {      # SunOS 5.11 (Solaris 11)
 304     global:
 305         _nl_domain_bindings;
 306         _nl_msg_cat_cntr;
 307 
 308 $if _ELF32
 309         dl_iterate_phdr { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
 310 $elif sparcv9
 311         dl_iterate_phdr { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
 312 $elif amd64
 313         dl_iterate_phdr { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
 314 $else
 315 $error unknown platform
 316 $endif
 317 
 318     protected:
 319 
 320 $if sparc32
 321         __align_cpy_1;
 322 $endif
 323 
 324         addrtosymstr;
 325         aio_cancel;
 326         aiocancel;
 327         aio_error;
 328         aio_fsync;
 329         aio_read;
 330         aioread;
 331         aio_return;
 332         aio_suspend;
 333         aiowait;
 334         aio_waitn;
 335         aio_write;
 336         aiowrite;
 337         asprintf;
 338         assfail;
 339         backtrace;
 340         backtrace_symbols;
 341         backtrace_symbols_fd;
 342         canonicalize_file_name;
 343         clearenv;
 344         clock_getres;
 345         clock_gettime;
 346         clock_nanosleep;
 347         clock_settime;
 348         daemon;
 349         dirfd;
 350         door_bind;
 351         door_call;
 352         door_create;
 353         door_cred;
 354         door_getparam;
 355         door_info;
 356         door_return;
 357         door_revoke;
 358         door_server_create;
 359         door_setparam;
 360         door_ucred;
 361         door_unbind;
 362         door_xcreate;
 363         err;
 364         errx;
 365         faccessat;
 366         fchmodat;
 367         fcloseall;
 368         fdatasync;
 369         ffsl;
 370         ffsll;
 371         fgetattr;
 372         fls;
 373         flsl;
 374         flsll;
 375         forkallx;
 376         forkx;
 377         fsetattr;
 378         getattrat;
 379         getdelim;
 380         getline;
 381         get_nprocs;
 382         get_nprocs_conf;
 383         getprogname;
 384         htonl;
 385         htonll;
 386         htons;
 387         linkat;
 388         lio_listio;
 389         memmem;
 390         mkdirat;
 391         mkdtemp;
 392         mkfifoat;
 393         mknodat;
 394         mkstemps;
 395         mmapobj;
 396         mq_close;
 397         mq_getattr;
 398         mq_notify;
 399         mq_open;
 400         mq_receive;
 401         mq_reltimedreceive_np;
 402         mq_reltimedsend_np;
 403         mq_send;
 404         mq_setattr;
 405         mq_timedreceive;
 406         mq_timedsend;
 407         mq_unlink;
 408         nanosleep;
 409         ntohl;
 410         ntohll;
 411         ntohs;
 412         posix_fadvise;
 413         posix_fallocate;
 414         posix_madvise;
 415         posix_memalign;
 416         posix_spawn_file_actions_addclosefrom_np;
 417         posix_spawnattr_getsigignore_np;
 418         posix_spawnattr_setsigignore_np;
 419         ppoll;
 420         priv_basicset;
 421         pthread_key_create_once_np;
 422         pthread_mutexattr_getrobust;
 423         pthread_mutexattr_setrobust;
 424         pthread_mutex_consistent;
 425         readlinkat;
 426         sched_getparam;
 427         sched_get_priority_max;
 428         sched_get_priority_min;
 429         sched_getscheduler;
 430         sched_rr_get_interval;
 431         sched_setparam;
 432         sched_setscheduler;
 433         sched_yield;
 434         sem_close;
 435         sem_destroy;
 436         sem_getvalue;
 437         sem_init;
 438         sem_open;
 439         sem_post;
 440         sem_reltimedwait_np;
 441         sem_timedwait;
 442         sem_trywait;
 443         sem_unlink;
 444         sem_wait;
 445         setattrat;
 446         setprogname;
 447         _sharefs;
 448         shm_open;
 449         shm_unlink;
 450         sigqueue;
 451         sigtimedwait;
 452         sigwaitinfo;
 453         smt_pause;
 454         stpcpy;
 455         stpncpy;
 456         strcasestr;
 457         strchrnul;
 458         strndup;
 459         strnlen;
 460         strnstr;
 461         strsep;
 462         symlinkat;
 463         thr_keycreate_once;
 464         timer_create;
 465         timer_delete;
 466         timer_getoverrun;
 467         timer_gettime;
 468         timer_settime;
 469         u8_strcmp;
 470         u8_validate;
 471         uconv_u16tou32;
 472         uconv_u16tou8;
 473         uconv_u32tou16;
 474         uconv_u32tou8;
 475         uconv_u8tou16;
 476         uconv_u8tou32;
 477         vasprintf;
 478         verr;
 479         verrx;
 480         vforkx;
 481         vwarn;
 482         vwarnx;
 483         warn;
 484         warnx;
 485         wcpcpy;
 486         wcpncpy;
 487         wcscasecmp;
 488         wcsdup;
 489         wcsncasecmp;
 490         wcsnlen;
 491 
 492 $if lf64
 493         aio_cancel64;
 494         aio_error64;
 495         aio_fsync64;
 496         aio_read64;
 497         aioread64;
 498         aio_return64;
 499         aio_suspend64;
 500         aio_waitn64;
 501         aio_write64;
 502         aiowrite64;
 503         lio_listio64;
 504         mkstemps64;
 505         posix_fadvise64;
 506         posix_fallocate64;
 507 $endif
 508 } SUNW_1.22.6;
 509 
 510 SYMBOL_VERSION SUNW_1.22.6 {    # s10u9 - SunOS 5.10 (Solaris 10) patch additions
 511     protected:
 512         futimens;
 513         utimensat;
 514 } SUNW_1.22.5;
 515 
 516 SYMBOL_VERSION SUNW_1.22.5 {    # s10u8 - SunOS 5.10 (Solaris 10) patch additions
 517     protected:
 518         getpagesizes2;
 519 } SUNW_1.22.4;
 520 
 521 SYMBOL_VERSION SUNW_1.22.4 {    # s10u7 - SunOS 5.10 (Solaris 10) patch additions
 522     protected:
 523         SUNW_1.22.4;
 524 } SUNW_1.22.3;
 525 
 526 SYMBOL_VERSION SUNW_1.22.3 {    # SunOS 5.10 (Solaris 10) patch additions
 527     protected:
 528         mutex_consistent;
 529         u8_textprep_str;
 530         uucopy;
 531         uucopystr;
 532 } SUNW_1.22.2;
 533 
 534 SYMBOL_VERSION SUNW_1.22.2 {    # SunOS 5.10 (Solaris 10) patch additions
 535     protected:
 536         is_system_labeled;
 537         ucred_getlabel;
 538         _ucred_getlabel;
 539 } SUNW_1.22.1;
 540 
 541 SYMBOL_VERSION SUNW_1.22.1 {    # SunOS 5.10 (Solaris 10) patch additions
 542     protected:
 543         atomic_add_8;
 544         atomic_add_8_nv;
 545         atomic_add_char         { FLAGS = NODYNSORT };
 546         atomic_add_char_nv      { FLAGS = NODYNSORT };
 547         atomic_add_int          { FLAGS = NODYNSORT };
 548         atomic_add_int_nv       { FLAGS = NODYNSORT };
 549         atomic_add_ptr          { FLAGS = NODYNSORT };
 550         atomic_add_ptr_nv       { FLAGS = NODYNSORT };
 551         atomic_add_short        { FLAGS = NODYNSORT };
 552         atomic_add_short_nv     { FLAGS = NODYNSORT };
 553         atomic_and_16;
 554         atomic_and_16_nv;
 555         atomic_and_32_nv;
 556         atomic_and_64;
 557         atomic_and_64_nv;
 558         atomic_and_8;
 559         atomic_and_8_nv;
 560         atomic_and_uchar        { FLAGS = NODYNSORT };
 561         atomic_and_uchar_nv     { FLAGS = NODYNSORT };
 562         atomic_and_uint_nv      { FLAGS = NODYNSORT };
 563         atomic_and_ulong        { FLAGS = NODYNSORT };
 564         atomic_and_ulong_nv     { FLAGS = NODYNSORT };
 565         atomic_and_ushort       { FLAGS = NODYNSORT };
 566         atomic_and_ushort_nv    { FLAGS = NODYNSORT };
 567         atomic_cas_16;
 568         atomic_cas_32;
 569         atomic_cas_64;
 570         atomic_cas_8;
 571         atomic_cas_ptr          { FLAGS = NODYNSORT };
 572         atomic_cas_uchar        { FLAGS = NODYNSORT };
 573         atomic_cas_uint         { FLAGS = NODYNSORT };
 574         atomic_cas_ulong        { FLAGS = NODYNSORT };
 575         atomic_cas_ushort       { FLAGS = NODYNSORT };
 576         atomic_clear_long_excl  { FLAGS = NODYNSORT };
 577         atomic_dec_16;
 578         atomic_dec_16_nv;
 579         atomic_dec_32;
 580         atomic_dec_32_nv;
 581         atomic_dec_64;
 582         atomic_dec_64_nv;
 583         atomic_dec_8;
 584         atomic_dec_8_nv;
 585         atomic_dec_uchar        { FLAGS = NODYNSORT };
 586         atomic_dec_uchar_nv     { FLAGS = NODYNSORT };
 587         atomic_dec_uint         { FLAGS = NODYNSORT };
 588         atomic_dec_uint_nv      { FLAGS = NODYNSORT };
 589         atomic_dec_ulong        { FLAGS = NODYNSORT };
 590         atomic_dec_ulong_nv     { FLAGS = NODYNSORT };
 591         atomic_dec_ushort       { FLAGS = NODYNSORT };
 592         atomic_dec_ushort_nv    { FLAGS = NODYNSORT };
 593         atomic_inc_16;
 594         atomic_inc_16_nv;
 595         atomic_inc_32;
 596         atomic_inc_32_nv;
 597         atomic_inc_64;
 598         atomic_inc_64_nv;
 599         atomic_inc_8;
 600         atomic_inc_8_nv;
 601         atomic_inc_uchar        { FLAGS = NODYNSORT };
 602         atomic_inc_uchar_nv     { FLAGS = NODYNSORT };
 603         atomic_inc_uint         { FLAGS = NODYNSORT };
 604         atomic_inc_uint_nv      { FLAGS = NODYNSORT };
 605         atomic_inc_ulong        { FLAGS = NODYNSORT };
 606         atomic_inc_ulong_nv     { FLAGS = NODYNSORT };
 607         atomic_inc_ushort       { FLAGS = NODYNSORT };
 608         atomic_inc_ushort_nv    { FLAGS = NODYNSORT };
 609         atomic_or_16;
 610         atomic_or_16_nv;
 611         atomic_or_32_nv;
 612         atomic_or_64;
 613         atomic_or_64_nv;
 614         atomic_or_8;
 615         atomic_or_8_nv;
 616         atomic_or_uchar         { FLAGS = NODYNSORT };
 617         atomic_or_uchar_nv      { FLAGS = NODYNSORT };
 618         atomic_or_uint_nv       { FLAGS = NODYNSORT };
 619         atomic_or_ulong         { FLAGS = NODYNSORT };
 620         atomic_or_ulong_nv      { FLAGS = NODYNSORT };
 621         atomic_or_ushort        { FLAGS = NODYNSORT };
 622         atomic_or_ushort_nv     { FLAGS = NODYNSORT };
 623         atomic_set_long_excl    { FLAGS = NODYNSORT };
 624         atomic_swap_16;
 625         atomic_swap_32;
 626         atomic_swap_64;
 627         atomic_swap_8;
 628         atomic_swap_ptr         { FLAGS = NODYNSORT };
 629         atomic_swap_uchar       { FLAGS = NODYNSORT };
 630         atomic_swap_uint        { FLAGS = NODYNSORT };
 631         atomic_swap_ulong       { FLAGS = NODYNSORT };
 632         atomic_swap_ushort      { FLAGS = NODYNSORT };
 633         membar_consumer;
 634         membar_enter;
 635         membar_exit;
 636         membar_producer;
 637 
 638 $if _ELF32
 639         enable_extended_FILE_stdio;
 640 $endif
 641 
 642 $if i386
 643         # Note: atomic_[and,dec,inc,or]_64_nv are also defined above. Here,
 644         # we add the NODYNSORT attribute to them. On this platform, they are
 645         # aliases for the non-_nv versions. If that is changed, these lines
 646         # should be removed.
 647         atomic_and_64_nv        { FLAGS = NODYNSORT };
 648         atomic_dec_64_nv        { FLAGS = NODYNSORT };
 649         atomic_inc_64_nv        { FLAGS = NODYNSORT };
 650         atomic_or_64_nv         { FLAGS = NODYNSORT };
 651 $endif
 652 $if _sparc
 653         # Note: atomic_OP_WIDTH_nv symbols are also defined above. Here,
 654         # we add the NODYNSORT attribute to them. On this platform, they are
 655         # aliases for the non-_nv versions. If that is changed, these lines
 656         # should be removed.
 657         atomic_add_8_nv         { FLAGS = NODYNSORT };
 658         atomic_and_8_nv         { FLAGS = NODYNSORT };
 659         atomic_and_16_nv        { FLAGS = NODYNSORT };
 660         atomic_and_32_nv        { FLAGS = NODYNSORT };
 661         atomic_and_64_nv        { FLAGS = NODYNSORT };
 662         atomic_dec_8_nv         { FLAGS = NODYNSORT };
 663         atomic_dec_16_nv        { FLAGS = NODYNSORT };
 664         atomic_dec_32_nv        { FLAGS = NODYNSORT };
 665         atomic_dec_64_nv        { FLAGS = NODYNSORT };
 666         atomic_inc_8_nv         { FLAGS = NODYNSORT };
 667         atomic_inc_16_nv        { FLAGS = NODYNSORT };
 668         atomic_inc_32_nv        { FLAGS = NODYNSORT };
 669         atomic_inc_64_nv        { FLAGS = NODYNSORT };
 670         atomic_or_8_nv          { FLAGS = NODYNSORT };
 671         atomic_or_16_nv         { FLAGS = NODYNSORT };
 672         atomic_or_32_nv         { FLAGS = NODYNSORT };
 673         atomic_or_64_nv         { FLAGS = NODYNSORT };
 674 $endif
 675 } SUNW_1.22;
 676 
 677 SYMBOL_VERSION SUNW_1.22 {      # SunOS 5.10 (Solaris 10)
 678     global:
 679 $if _ELF32
 680         dladdr          { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
 681         dladdr1         { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
 682         dlclose         { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
 683         dldump          { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
 684         dlerror         { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
 685         dlinfo          { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
 686         dlmopen         { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
 687         dlopen          { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
 688         dlsym           { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
 689 $elif sparcv9
 690         dladdr          { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
 691         dladdr1         { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
 692         dlclose         { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
 693         dldump          { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
 694         dlerror         { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
 695         dlinfo          { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
 696         dlmopen         { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
 697         dlopen          { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
 698         dlsym           { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
 699 $elif amd64
 700         dladdr          { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
 701         dladdr1         { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
 702         dlamd64getunwind { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
 703         dlclose         { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
 704         dldump          { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
 705         dlerror         { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
 706         dlinfo          { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
 707         dlmopen         { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
 708         dlopen          { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
 709         dlsym           { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
 710 $else
 711 $error unknown platform
 712 $endif
 713 
 714     protected:
 715         alphasort;
 716         _alphasort;
 717         atomic_add_16;
 718         atomic_add_16_nv;
 719         atomic_add_32;
 720         atomic_add_32_nv;
 721         atomic_add_64;
 722         atomic_add_64_nv;
 723         atomic_add_long         { FLAGS = NODYNSORT };
 724         atomic_add_long_nv      { FLAGS = NODYNSORT };
 725         atomic_and_32;
 726         atomic_and_uint         { FLAGS = NODYNSORT };
 727         atomic_or_32;
 728         atomic_or_uint          { FLAGS = NODYNSORT };
 729         _Exit;
 730         getisax;
 731         _getisax;
 732         getopt_clip;
 733         _getopt_clip;
 734         getopt_long;
 735         _getopt_long;
 736         getopt_long_only;
 737         _getopt_long_only;
 738         getpeerucred;
 739         _getpeerucred;
 740         getpflags;
 741         _getpflags;
 742         getppriv;
 743         _getppriv;
 744         getprivimplinfo;
 745         _getprivimplinfo;
 746         getzoneid;
 747         getzoneidbyname;
 748         getzonenamebyid;
 749         imaxabs;
 750         imaxdiv;
 751         isblank;
 752         iswblank;
 753         port_alert;
 754         port_associate;
 755         port_create;
 756         port_dissociate;
 757         port_get;
 758         port_getn;
 759         port_send;
 760         port_sendn;
 761         posix_openpt;
 762         posix_spawn;
 763         posix_spawnattr_destroy;
 764         posix_spawnattr_getflags;
 765         posix_spawnattr_getpgroup;
 766         posix_spawnattr_getschedparam;
 767         posix_spawnattr_getschedpolicy;
 768         posix_spawnattr_getsigdefault;
 769         posix_spawnattr_getsigmask;
 770         posix_spawnattr_init;
 771         posix_spawnattr_setflags;
 772         posix_spawnattr_setpgroup;
 773         posix_spawnattr_setschedparam;
 774         posix_spawnattr_setschedpolicy;
 775         posix_spawnattr_setsigdefault;
 776         posix_spawnattr_setsigmask;
 777         posix_spawn_file_actions_addclose;
 778         posix_spawn_file_actions_adddup2;
 779         posix_spawn_file_actions_addopen;
 780         posix_spawn_file_actions_destroy;
 781         posix_spawn_file_actions_init;
 782         posix_spawnp;
 783         priv_addset;
 784         _priv_addset;
 785         priv_allocset;
 786         _priv_allocset;
 787         priv_copyset;
 788         _priv_copyset;
 789         priv_delset;
 790         _priv_delset;
 791         priv_emptyset;
 792         _priv_emptyset;
 793         priv_fillset;
 794         _priv_fillset;
 795         __priv_free_info;
 796         priv_freeset;
 797         _priv_freeset;
 798         priv_getbyname;
 799         _priv_getbyname;
 800         __priv_getbyname;
 801         priv_getbynum;
 802         _priv_getbynum;
 803         __priv_getbynum;
 804         __priv_getdata;
 805         priv_getsetbyname;
 806         _priv_getsetbyname;
 807         __priv_getsetbyname;
 808         priv_getsetbynum;
 809         _priv_getsetbynum;
 810         __priv_getsetbynum;
 811         priv_gettext;
 812         _priv_gettext;
 813         priv_ineffect;
 814         _priv_ineffect;
 815         priv_intersect;
 816         _priv_intersect;
 817         priv_inverse;
 818         _priv_inverse;
 819         priv_isemptyset;
 820         _priv_isemptyset;
 821         priv_isequalset;
 822         _priv_isequalset;
 823         priv_isfullset;
 824         _priv_isfullset;
 825         priv_ismember;
 826         _priv_ismember;
 827         priv_issubset;
 828         _priv_issubset;
 829         __priv_parse_info;
 830         priv_set;
 831         _priv_set;
 832         priv_set_to_str;
 833         _priv_set_to_str;
 834         __priv_set_to_str;
 835         priv_str_to_set;
 836         _priv_str_to_set;
 837         priv_union;
 838         _priv_union;
 839         pselect;
 840         pthread_attr_getstack;
 841         pthread_attr_setstack;
 842         pthread_barrierattr_destroy;
 843         pthread_barrierattr_getpshared;
 844         pthread_barrierattr_init;
 845         pthread_barrierattr_setpshared;
 846         pthread_barrier_destroy;
 847         pthread_barrier_init;
 848         pthread_barrier_wait;
 849         pthread_condattr_getclock;
 850         pthread_condattr_setclock;
 851         pthread_mutexattr_getrobust_np  { FLAGS = NODYNSORT };
 852         pthread_mutexattr_setrobust_np  { FLAGS = NODYNSORT };
 853         pthread_mutex_consistent_np     { FLAGS = NODYNSORT };
 854         pthread_mutex_reltimedlock_np;
 855         pthread_mutex_timedlock;
 856         pthread_rwlock_reltimedrdlock_np;
 857         pthread_rwlock_reltimedwrlock_np;
 858         pthread_rwlock_timedrdlock;
 859         pthread_rwlock_timedwrlock;
 860         pthread_setschedprio;
 861         pthread_spin_destroy;
 862         pthread_spin_init;
 863         pthread_spin_lock;
 864         pthread_spin_trylock;
 865         pthread_spin_unlock;
 866         rctlblk_set_recipient_pid;
 867         scandir;
 868         _scandir;
 869         schedctl_exit;
 870         schedctl_init;
 871         schedctl_lookup;
 872         sema_reltimedwait;
 873         sema_timedwait;
 874         setenv;
 875         setpflags;
 876         _setpflags;
 877         setppriv;
 878         _setppriv;
 879         strerror_r;
 880         strtof;
 881         strtoimax;
 882         strtold;
 883         strtoumax;
 884         ucred_free;
 885         _ucred_free;
 886         ucred_get;
 887         _ucred_get;
 888         ucred_getegid;
 889         _ucred_getegid;
 890         ucred_geteuid;
 891         _ucred_geteuid;
 892         ucred_getgroups;
 893         _ucred_getgroups;
 894         ucred_getpflags;
 895         _ucred_getpflags;
 896         ucred_getpid;
 897         _ucred_getpid;
 898         ucred_getprivset;
 899         _ucred_getprivset;
 900         ucred_getprojid;
 901         _ucred_getprojid;
 902         ucred_getrgid;
 903         _ucred_getrgid;
 904         ucred_getruid;
 905         _ucred_getruid;
 906         ucred_getsgid;
 907         _ucred_getsgid;
 908         ucred_getsuid;
 909         _ucred_getsuid;
 910         ucred_getzoneid;
 911         _ucred_getzoneid;
 912         ucred_size;
 913         _ucred_size;
 914         unsetenv;
 915         wcstof;
 916         wcstoimax;
 917         wcstold;
 918         wcstoll;
 919         wcstoull;
 920         wcstoumax;
 921 
 922 $if lf64
 923         alphasort64;
 924         _alphasort64;
 925         pselect_large_fdset;
 926         scandir64;
 927         _scandir64;
 928 $endif
 929 
 930 $if _ELF64
 931         walkcontext;
 932 $endif
 933 
 934 $if _sparc
 935         # Note: atomic_add_[16,32,64]_nv are also defined above. Here, we add
 936         # the NODYNSORT attribute to them. On this platform, they are aliases
 937         # for the non-_nv versions. If that is changed, these lines should be
 938         # removed.
 939         atomic_add_16_nv        { FLAGS = NODYNSORT };
 940         atomic_add_32_nv        { FLAGS = NODYNSORT };
 941         atomic_add_64_nv        { FLAGS = NODYNSORT };
 942 $endif
 943 
 944 $if i386
 945         # Note: atomic_add_64_nv is also defined above. Here, we add the
 946         # NODYNSORT attribute to it. On this platform, it is an aliases for
 947         # atomic_add_64. If that is changed, this line should be removed.
 948         atomic_add_64_nv        { FLAGS = NODYNSORT };
 949 $endif
 950 
 951 $if amd64
 952         # Exception unwind APIs required by the amd64 ABI
 953         _SUNW_Unwind_DeleteException;
 954         _SUNW_Unwind_ForcedUnwind;
 955         _SUNW_Unwind_GetCFA;
 956         _SUNW_Unwind_GetGR;
 957         _SUNW_Unwind_GetIP;
 958         _SUNW_Unwind_GetLanguageSpecificData;
 959         _SUNW_Unwind_GetRegionStart;
 960         _SUNW_Unwind_RaiseException;
 961         _SUNW_Unwind_Resume;
 962         _SUNW_Unwind_SetGR;
 963         _SUNW_Unwind_SetIP;
 964         _UA_CLEANUP_PHASE;
 965         _UA_FORCE_UNWIND;
 966         _UA_HANDLER_FRAME;
 967         _UA_SEARCH_PHASE;
 968         _Unwind_DeleteException;
 969         _Unwind_ForcedUnwind;
 970         _Unwind_GetCFA;
 971         _Unwind_GetGR;
 972         _Unwind_GetIP;
 973         _Unwind_GetLanguageSpecificData;
 974         _Unwind_GetRegionStart;
 975         _Unwind_RaiseException;
 976         _Unwind_Resume;
 977         _Unwind_SetGR;
 978         _Unwind_SetIP;
 979 $endif
 980 } SUNW_1.21.3;
 981 
 982 SYMBOL_VERSION SUNW_1.21.3 {    # SunOS 5.9 (Solaris 9) patch additions
 983     protected:
 984         forkall;
 985 } SUNW_1.21.2;
 986 
 987 SYMBOL_VERSION SUNW_1.21.2 {    # SunOS 5.9 (Solaris 9) patch additions
 988     protected:
 989         getustack;
 990         _getustack;
 991         setustack;
 992         _setustack;
 993         stack_getbounds;
 994         _stack_getbounds;
 995         _stack_grow;
 996         stack_inbounds;
 997         _stack_inbounds;
 998         stack_setbounds;
 999         _stack_setbounds;
1000         stack_violation;
1001         _stack_violation;
1002 
1003 $if _sparc
1004         __makecontext_v2;
1005         ___makecontext_v2;
1006 $endif
1007 } SUNW_1.21.1;
1008 
1009 SYMBOL_VERSION SUNW_1.21.1 {    # SunOS 5.9 (Solaris 9) patch additions
1010     protected:
1011         crypt_gensalt;
1012 } SUNW_1.21;
1013 
1014 SYMBOL_VERSION SUNW_1.21 {      # SunOS 5.9 (Solaris 9)
1015     protected:
1016         attropen;
1017         _attropen;
1018         bind_textdomain_codeset;
1019         closefrom;
1020         _closefrom;
1021         cond_reltimedwait;
1022         dcngettext;
1023         dngettext;
1024         fchownat;
1025         _fchownat;
1026         fdopendir;
1027         _fdopendir;
1028         fdwalk;
1029         _fdwalk;
1030         fstatat;
1031         _fstatat;
1032         futimesat;
1033         _futimesat;
1034         getcpuid;
1035         _getcpuid;
1036         gethomelgroup;
1037         _gethomelgroup          { FLAGS = NODYNSORT };
1038         getpagesizes;
1039         getrctl;
1040         _getrctl;
1041         issetugid;
1042         _issetugid;
1043         _lwp_cond_reltimedwait;
1044         meminfo;
1045         _meminfo;
1046         ngettext;
1047         openat;
1048         _openat;
1049         printstack;
1050         priocntl;
1051         priocntlset;
1052         pset_getattr;
1053         pset_getloadavg;
1054         pset_list;
1055         pset_setattr;
1056         pthread_cond_reltimedwait_np;
1057         rctlblk_get_enforced_value;
1058         rctlblk_get_firing_time;
1059         rctlblk_get_global_action;
1060         rctlblk_get_global_flags;
1061         rctlblk_get_local_action;
1062         rctlblk_get_local_flags;
1063         rctlblk_get_privilege;
1064         rctlblk_get_recipient_pid;
1065         rctlblk_get_value;
1066         rctlblk_set_local_action;
1067         rctlblk_set_local_flags;
1068         rctlblk_set_privilege;
1069         rctlblk_set_value;
1070         rctlblk_size;
1071         rctl_walk;
1072         renameat;
1073         setrctl;
1074         _setrctl;
1075         unlinkat;
1076         _unlinkat;
1077         vfscanf;
1078         _vfscanf;
1079         vfwscanf;
1080         vscanf;
1081         _vscanf;
1082         vsscanf;
1083         _vsscanf;
1084         vswscanf;
1085         vwscanf;
1086 
1087 $if _ELF32
1088         walkcontext;
1089 $endif
1090 
1091 $if lf64
1092         attropen64;
1093         _attropen64;
1094         fstatat64;
1095         _fstatat64;
1096         openat64;
1097         _openat64;
1098 $endif
1099 } SUNW_1.20.4;
1100 
1101 SYMBOL_VERSION SUNW_1.20.4 {    # SunOS 5.8 (Solaris 8) patch additions
1102     protected:
1103         semtimedop;
1104         _semtimedop;
1105 } SUNW_1.20.1;
1106 
1107 SYMBOL_VERSION SUNW_1.20.1 {    # SunOS 5.8 (Solaris 8) patch additions
1108     protected:
1109         getacct;
1110         _getacct;
1111         getprojid;
1112         _getprojid;
1113         gettaskid;
1114         _gettaskid;
1115         msgids;
1116         _msgids;
1117         msgsnap;
1118         _msgsnap;
1119         putacct;
1120         _putacct;
1121         semids;
1122         _semids;
1123         settaskid;
1124         _settaskid;
1125         shmids;
1126         _shmids;
1127         wracct;
1128         _wracct;
1129 } SUNW_1.20;
1130 
1131 SYMBOL_VERSION SUNW_1.20 {      # SunOS 5.8 (Solaris 8)
1132     protected:
1133         getextmntent;
1134         resetmnttab;
1135 } SUNW_1.19;
1136 
1137 SYMBOL_VERSION SUNW_1.19 {
1138     protected:
1139         strlcat;
1140         strlcpy;
1141         umount2;
1142         _umount2;
1143 } SUNW_1.18.1;
1144 
1145 SYMBOL_VERSION SUNW_1.18.1 {
1146     protected:
1147         __fsetlocking;
1148 } SUNW_1.18;
1149 
1150 SYMBOL_VERSION SUNW_1.18 {      # SunOS 5.7 (Solaris 7)
1151     protected:
1152         btowc;
1153         __fbufsize;
1154         __flbf;
1155         _flushlbf;
1156         __fpending;
1157         __fpurge;
1158         __freadable;
1159         __freading;
1160         fwide;
1161         fwprintf;
1162         __fwritable;
1163         __fwriting;
1164         fwscanf;
1165         getloadavg;
1166         isaexec;
1167         mbrlen;
1168         mbrtowc;
1169         mbsinit;
1170         mbsrtowcs;
1171         pcsample;
1172         pthread_attr_getguardsize;
1173         pthread_attr_setguardsize;
1174         pthread_getconcurrency;
1175         pthread_mutexattr_gettype;
1176         pthread_mutexattr_settype;
1177         pthread_rwlockattr_destroy;
1178         pthread_rwlockattr_getpshared;
1179         pthread_rwlockattr_init;
1180         pthread_rwlockattr_setpshared;
1181         pthread_rwlock_destroy;
1182         pthread_rwlock_init;
1183         pthread_rwlock_rdlock;
1184         pthread_rwlock_tryrdlock;
1185         pthread_rwlock_trywrlock;
1186         pthread_rwlock_unlock;
1187         pthread_rwlock_wrlock;
1188         pthread_setconcurrency;
1189         swprintf;
1190         swscanf;
1191         __sysconf_xpg5;
1192         vfwprintf;
1193         vswprintf;
1194         vwprintf;
1195         wcrtomb;
1196         wcsrtombs;
1197         wcsstr;
1198         wctob;
1199         wmemchr;
1200         wmemcmp;
1201         wmemcpy;
1202         wmemmove;
1203         wmemset;
1204         wprintf;
1205         wscanf;
1206 
1207 $if _ELF32
1208         select_large_fdset;
1209 $endif
1210 } SUNW_1.17;
1211 
1212 # The empty versions SUNW_1.2 through SUNW_1.17 must be preserved because
1213 # applications built on Solaris 2.6 Beta (when they did contain symbols)
1214 # may depend on them.  All symbol content for SunOS 5.6 is now in SUNW_1.1
1215 
1216 SYMBOL_VERSION SUNW_1.17 {
1217     protected:
1218         SUNW_1.17;
1219 } SUNW_1.16;
1220 
1221 SYMBOL_VERSION SUNW_1.16 {
1222     protected:
1223         SUNW_1.16;
1224 } SUNW_1.15;
1225 
1226 SYMBOL_VERSION SUNW_1.15 {
1227     protected:
1228         SUNW_1.15;
1229 } SUNW_1.14;
1230 
1231 SYMBOL_VERSION SUNW_1.14 {
1232     protected:
1233         SUNW_1.14;
1234 } SUNW_1.13;
1235 
1236 SYMBOL_VERSION SUNW_1.13 {
1237     protected:
1238         SUNW_1.13;
1239 } SUNW_1.12;
1240 
1241 SYMBOL_VERSION SUNW_1.12 {
1242     protected:
1243         SUNW_1.12;
1244 } SUNW_1.11;
1245 
1246 SYMBOL_VERSION SUNW_1.11 {
1247     protected:
1248         SUNW_1.11;
1249 } SUNW_1.10;
1250 
1251 SYMBOL_VERSION SUNW_1.10 {
1252     protected:
1253         SUNW_1.10;
1254 } SUNW_1.9;
1255 
1256 SYMBOL_VERSION SUNW_1.9 {
1257     protected:
1258         SUNW_1.9;
1259 } SUNW_1.8;
1260 
1261 SYMBOL_VERSION SUNW_1.8 {
1262     protected:
1263         SUNW_1.8;
1264 } SUNW_1.7;
1265 
1266 SYMBOL_VERSION SUNW_1.7 {
1267     protected:
1268         SUNW_1.7;
1269 } SUNW_1.6;
1270 
1271 SYMBOL_VERSION SUNW_1.6 {
1272     protected:
1273         SUNW_1.6;
1274 } SUNW_1.5;
1275 
1276 SYMBOL_VERSION SUNW_1.5 {
1277     protected:
1278         SUNW_1.5;
1279 } SUNW_1.4;
1280 
1281 SYMBOL_VERSION SUNW_1.4 {
1282     protected:
1283         SUNW_1.4;
1284 } SUNW_1.3;
1285 
1286 SYMBOL_VERSION SUNW_1.3 {
1287     protected:
1288         SUNW_1.3;
1289 } SUNW_1.2;
1290 
1291 SYMBOL_VERSION SUNW_1.2 {
1292     protected:
1293         SUNW_1.2;
1294 } SUNW_1.1;
1295 
1296 SYMBOL_VERSION SUNW_1.1 {       # SunOS 5.6 (Solaris 2.6)
1297     global:
1298         __loc1;
1299     protected:
1300         basename;
1301         bindtextdomain;
1302         bsd_signal;
1303         dbm_clearerr;
1304         dbm_error;
1305         dcgettext;
1306         dgettext;
1307         directio;
1308         dirname;
1309         endusershell;
1310         _exithandle;
1311         fgetwc;
1312         fgetws;
1313         fpgetround;
1314         fpsetround;
1315         fputwc;
1316         fputws;
1317         fseeko;
1318         ftello;
1319         ftrylockfile;
1320         getexecname;
1321         _getexecname;
1322         getpassphrase;
1323         gettext;
1324         getusershell;
1325         getwc;
1326         getwchar;
1327         getws;
1328         isenglish;
1329         isideogram;
1330         isnumber;
1331         isphonogram;
1332         isspecial;
1333         iswalnum;
1334         iswalpha;
1335         iswcntrl;
1336         iswctype;
1337         iswdigit;
1338         iswgraph;
1339         iswlower;
1340         iswprint;
1341         iswpunct;
1342         iswspace;
1343         iswupper;
1344         iswxdigit;
1345         ____loc1;
1346         _longjmp;
1347         _lwp_sema_trywait;
1348         ntp_adjtime;
1349         _ntp_adjtime;
1350         ntp_gettime;
1351         _ntp_gettime;
1352         __posix_asctime_r;
1353         __posix_ctime_r;
1354         __posix_getgrgid_r;
1355         __posix_getgrnam_r;
1356         __posix_getlogin_r;
1357         __posix_getpwnam_r;
1358         __posix_getpwuid_r;
1359         __posix_sigwait;
1360         __posix_ttyname_r;
1361         pset_assign;
1362         pset_bind;
1363         pset_create;
1364         pset_destroy;
1365         pset_info;
1366         pthread_atfork;
1367         pthread_attr_destroy;
1368         pthread_attr_getdetachstate;
1369         pthread_attr_getinheritsched;
1370         pthread_attr_getschedparam;
1371         pthread_attr_getschedpolicy;
1372         pthread_attr_getscope;
1373         pthread_attr_getstackaddr;
1374         pthread_attr_getstacksize;
1375         pthread_attr_init;
1376         pthread_attr_setdetachstate;
1377         pthread_attr_setinheritsched;
1378         pthread_attr_setschedparam;
1379         pthread_attr_setschedpolicy;
1380         pthread_attr_setscope;
1381         pthread_attr_setstackaddr;
1382         pthread_attr_setstacksize;
1383         pthread_cancel;
1384         __pthread_cleanup_pop;
1385         __pthread_cleanup_push;
1386         pthread_create;
1387         pthread_detach;
1388         pthread_equal;
1389         pthread_exit;
1390         pthread_getschedparam;
1391         pthread_getspecific;
1392         pthread_join;
1393         pthread_key_create;
1394         pthread_key_delete;
1395         pthread_kill;
1396         pthread_once;
1397         pthread_self;
1398         pthread_setcancelstate;
1399         pthread_setcanceltype;
1400         pthread_setschedparam;
1401         pthread_setspecific;
1402         pthread_sigmask;
1403         pthread_testcancel;
1404         putwc;
1405         putwchar;
1406         putws;
1407         regcmp;
1408         regex;
1409         resolvepath;
1410         _resolvepath;
1411         rwlock_destroy          { FLAGS = NODYNSORT };
1412         _rwlock_destroy         { FLAGS = NODYNSORT };
1413         sema_destroy;
1414         _sema_destroy;
1415         _setjmp;
1416         setusershell;
1417         siginterrupt;
1418         sigstack;
1419         snprintf;
1420         strtows;
1421         sync_instruction_memory;
1422         textdomain;
1423         thr_main;
1424         towctrans;
1425         towlower;
1426         towupper;
1427         ungetwc;
1428         vsnprintf;
1429         watoll;
1430         wcscat;
1431         wcschr;
1432         wcscmp;
1433         wcscoll;
1434         wcscpy;
1435         wcscspn;
1436         wcsftime;
1437         wcslen;
1438         wcsncat;
1439         wcsncmp;
1440         wcsncpy;
1441         wcspbrk;
1442         wcsrchr;
1443         wcsspn;
1444         wcstod;
1445         wcstok;
1446         wcstol;
1447         wcstoul;
1448         wcswcs;
1449         wcswidth;
1450         wcsxfrm;
1451         wctrans;
1452         wctype;
1453         wcwidth;
1454         wscasecmp;
1455         wscat;
1456         wschr;
1457         wscmp;
1458         wscol;
1459         wscoll;
1460         wscpy;
1461         wscspn;
1462         wsdup;
1463         wslen;
1464         wsncasecmp;
1465         wsncat;
1466         wsncmp;
1467         wsncpy;
1468         wspbrk;
1469         wsprintf;
1470         wsrchr;
1471         wsscanf;
1472         wsspn;
1473         wstod;
1474         wstok;
1475         wstol;
1476         wstoll;
1477         wstostr;
1478         wsxfrm;
1479         __xpg4_putmsg;
1480         __xpg4_putpmsg;
1481 
1482 $if lf64
1483         creat64;
1484         _creat64;
1485         fgetpos64;
1486         fopen64;
1487         freopen64;
1488         fseeko64;
1489         fsetpos64;
1490         fstat64;
1491         _fstat64;
1492         fstatvfs64;
1493         _fstatvfs64;
1494         ftello64;
1495         ftruncate64;
1496         _ftruncate64;
1497         ftw64;
1498         _ftw64;
1499         getdents64;
1500         _getdents64;
1501         getrlimit64;
1502         _getrlimit64;
1503         lockf64;
1504         _lockf64;
1505         lseek64;
1506         _lseek64;
1507         lstat64;
1508         _lstat64;
1509         mkstemp64;
1510         _mkstemp64;
1511         mmap64;
1512         _mmap64;
1513         nftw64;
1514         _nftw64;
1515         open64;
1516         _open64;
1517         __posix_readdir_r;
1518         pread64;
1519         _pread64;
1520         pwrite64;
1521         _pwrite64;
1522         readdir64;
1523         _readdir64;
1524         readdir64_r;
1525         _readdir64_r;
1526         setrlimit64;
1527         _setrlimit64;
1528         s_fcntl;
1529         _s_fcntl                { FLAGS = NODYNSORT };
1530         s_ioctl;
1531         stat64;
1532         _stat64;
1533         statvfs64;
1534         _statvfs64;
1535         tell64;
1536         _tell64;
1537         tmpfile64;
1538         truncate64;
1539         _truncate64;
1540         _xftw64;
1541 $endif
1542 
1543 $if _sparc
1544         __flt_rounds;
1545 $endif
1546 } SUNW_0.9;
1547 
1548 SYMBOL_VERSION SUNW_0.9 {       # SunOS 5.5 (Solaris 2.5)
1549     protected:
1550         acl;
1551         bcmp;
1552         bcopy;
1553         bzero;
1554         facl;
1555         ftime;
1556         getdtablesize;
1557         gethostid;
1558         gethostname;
1559         getpagesize;
1560         getpriority;
1561         getrusage;
1562         getwd;
1563         index;
1564         initstate;
1565         killpg;
1566         _nsc_trydoorcall;
1567         pthread_condattr_destroy;
1568         pthread_condattr_getpshared;
1569         pthread_condattr_init;
1570         pthread_condattr_setpshared;
1571         pthread_cond_broadcast;
1572         pthread_cond_destroy;
1573         pthread_cond_init;
1574         pthread_cond_signal;
1575         pthread_cond_timedwait;
1576         pthread_cond_wait;
1577         pthread_mutexattr_destroy;
1578         pthread_mutexattr_getprioceiling;
1579         pthread_mutexattr_getprotocol;
1580         pthread_mutexattr_getpshared;
1581         pthread_mutexattr_init;
1582         pthread_mutexattr_setprioceiling;
1583         pthread_mutexattr_setprotocol;
1584         pthread_mutexattr_setpshared;
1585         pthread_mutex_destroy;
1586         pthread_mutex_getprioceiling;
1587         pthread_mutex_init;
1588         pthread_mutex_lock;
1589         pthread_mutex_setprioceiling;
1590         pthread_mutex_trylock;
1591         pthread_mutex_unlock;
1592         random;
1593         reboot;
1594         re_comp;
1595         re_exec;
1596         rindex;
1597         setbuffer;
1598         sethostname;
1599         setlinebuf;
1600         setpriority;
1601         setregid;
1602         setreuid;
1603         setstate;
1604         srandom;
1605         thr_min_stack;
1606         thr_stksegment;
1607         ualarm;
1608         usleep;
1609         wait3;
1610         wait4;
1611 } SUNW_0.8;
1612 
1613 SYMBOL_VERSION SUNW_0.8 {       # SunOS 5.4 (Solaris 2.4)
1614     global:
1615         __xpg4                  { FLAGS = NODIRECT };
1616     protected:
1617         addsev;
1618         cond_broadcast          { FLAGS = NODYNSORT };
1619         cond_destroy            { FLAGS = NODYNSORT };
1620         cond_init;
1621         cond_signal             { FLAGS = NODYNSORT };
1622         cond_timedwait;
1623         cond_wait;
1624         confstr;
1625         fnmatch;
1626         _getdate_err_addr;
1627         glob;
1628         globfree;
1629         iconv;
1630         iconv_close;
1631         iconv_open;
1632         lfmt;
1633         mutex_destroy           { FLAGS = NODYNSORT };
1634         mutex_init;
1635         mutex_lock              { FLAGS = NODYNSORT };
1636         mutex_trylock           { FLAGS = NODYNSORT };
1637         mutex_unlock            { FLAGS = NODYNSORT };
1638         pfmt;
1639         regcomp;
1640         regerror;
1641         regexec;
1642         regfree;
1643         rwlock_init;
1644         rw_rdlock               { FLAGS = NODYNSORT };
1645         rw_read_held;
1646         rw_tryrdlock            { FLAGS = NODYNSORT };
1647         rw_trywrlock            { FLAGS = NODYNSORT };
1648         rw_unlock               { FLAGS = NODYNSORT };
1649         rw_write_held;
1650         rw_wrlock               { FLAGS = NODYNSORT };
1651         sema_held;
1652         sema_init;
1653         sema_post;
1654         sema_trywait;
1655         sema_wait;
1656         setcat;
1657         sigfpe;
1658         strfmon;
1659         strptime;
1660         thr_continue;
1661         thr_create;
1662         thr_exit;
1663         thr_getconcurrency;
1664         thr_getprio;
1665         thr_getspecific;
1666         thr_join;
1667         thr_keycreate;
1668         thr_kill;
1669         thr_self                { FLAGS = NODYNSORT };
1670         thr_setconcurrency;
1671         thr_setprio;
1672         thr_setspecific;
1673         thr_sigsetmask;
1674         thr_suspend;
1675         thr_yield;
1676         vlfmt;
1677         vpfmt;
1678         wordexp;
1679         wordfree;
1680 } SUNW_0.7;
1681 
1682 SYMBOL_VERSION SUNW_0.7 {       # SunOS 5.3 (Solaris 2.3)
1683     global:
1684         altzone;
1685         _ctype;
1686         isnanf                  { TYPE = FUNCTION; FILTER = libm.so.2 };
1687         lone;
1688         lten;
1689         lzero;
1690         memalign                { FLAGS = NODIRECT };
1691         modff                   { TYPE = FUNCTION; FILTER = libm.so.2 };
1692         nss_default_finders;
1693         _sibuf;
1694         _sobuf;
1695         _sys_buslist;
1696         _sys_cldlist;
1697         _sys_fpelist;
1698         _sys_illlist;
1699         _sys_segvlist;
1700         _sys_siginfolistp;
1701         _sys_siglist;
1702         _sys_siglistn;
1703         _sys_siglistp;
1704         _sys_traplist;
1705         valloc                  { FLAGS = NODIRECT };
1706 
1707 $if _ELF32
1708         _bufendtab;
1709         _lastbuf;
1710         sys_errlist;
1711         sys_nerr;
1712         _sys_nsig;
1713 $endif
1714 
1715     protected:
1716         a64l;
1717         adjtime;
1718         ascftime;
1719         _assert;
1720         atoll;
1721         brk;
1722         __builtin_alloca;
1723         cftime;
1724         closelog;
1725         csetcol;
1726         csetlen;
1727         ctermid_r;
1728         dbm_close;
1729         dbm_delete;
1730         dbm_fetch;
1731         dbm_firstkey;
1732         dbm_nextkey;
1733         dbm_open;
1734         dbm_store;
1735         decimal_to_double;
1736         decimal_to_extended;
1737         decimal_to_quadruple;
1738         decimal_to_single;
1739         double_to_decimal;
1740         drand48;
1741         econvert;
1742         ecvt;
1743         endnetgrent;
1744         endspent;
1745         endutent;
1746         endutxent;
1747         erand48;
1748         euccol;
1749         euclen;
1750         eucscol;
1751         extended_to_decimal;
1752         fchroot;
1753         fconvert;
1754         fcvt;
1755         ffs;
1756         fgetspent;
1757         fgetspent_r;
1758         _filbuf;
1759         file_to_decimal;
1760         finite;
1761         _flsbuf;
1762         fork1                   { FLAGS = NODYNSORT };
1763         fpclass;
1764         fpgetmask;
1765         fpgetsticky;
1766         fpsetmask;
1767         fpsetsticky;
1768         fstatfs;
1769         ftruncate;
1770         ftw;
1771         func_to_decimal;
1772         gconvert;
1773         gcvt;
1774         getdents;
1775         gethrtime;
1776         gethrvtime;
1777         getmntany;
1778         getmntent;
1779         getnetgrent;
1780         getnetgrent_r;
1781         getpw;
1782         getspent;
1783         getspent_r;
1784         getspnam;
1785         getspnam_r;
1786         getutent;
1787         getutid;
1788         getutline;
1789         getutmp;
1790         getutmpx;
1791         getutxent;
1792         getutxid;
1793         getutxline;
1794         getvfsany;
1795         getvfsent;
1796         getvfsfile;
1797         getvfsspec;
1798         getwidth;
1799         gsignal;
1800         hasmntopt;
1801         innetgr;
1802         insque;
1803         _insque;
1804         jrand48;
1805         l64a;
1806         ladd;
1807         lckpwdf;
1808         lcong48;
1809         ldivide;
1810         lexp10;
1811         llabs;
1812         lldiv;
1813         llog10;
1814         llseek;
1815         lltostr;
1816         lmul;
1817         lrand48;
1818         lshiftl;
1819         lsub;
1820         _lwp_cond_broadcast;
1821         _lwp_cond_signal;
1822         _lwp_cond_timedwait;
1823         _lwp_cond_wait;
1824         _lwp_continue;
1825         _lwp_info;
1826         _lwp_kill;
1827         _lwp_mutex_lock;
1828         _lwp_mutex_trylock;
1829         _lwp_mutex_unlock;
1830         _lwp_self;
1831         _lwp_sema_init;
1832         _lwp_sema_post;
1833         _lwp_sema_wait;
1834         _lwp_suspend;
1835         madvise;
1836         __major;
1837         __makedev;
1838         mincore;
1839         __minor;
1840         mkstemp;
1841         _mkstemp;
1842         mlockall;
1843         mrand48;
1844         munlockall;
1845         _mutex_held             { FLAGS = NODYNSORT };
1846         _mutex_lock             { FLAGS = NODYNSORT };
1847         nrand48;
1848         _nss_netdb_aliases;
1849         _nss_XbyY_buf_alloc;
1850         _nss_XbyY_buf_free;
1851         __nsw_extended_action;
1852         __nsw_freeconfig;
1853         __nsw_getconfig;
1854         openlog;
1855         plock;
1856         p_online;
1857         pread;
1858         __priocntl;
1859         __priocntlset;
1860         processor_bind;
1861         processor_info;
1862         psiginfo;
1863         psignal;
1864         putpwent;
1865         putspent;
1866         pututline;
1867         pututxline;
1868         pwrite;
1869         qeconvert;
1870         qecvt;
1871         qfconvert;
1872         qfcvt;
1873         qgconvert;
1874         qgcvt;
1875         quadruple_to_decimal;
1876         realpath;
1877         remque;
1878         _remque;
1879         _rw_read_held;
1880         _rw_write_held;
1881         seconvert;
1882         seed48;
1883         select;
1884         _sema_held;
1885         setegid;
1886         seteuid;
1887         setlogmask;
1888         setnetgrent;
1889         setspent;
1890         settimeofday;
1891         setutent;
1892         setutxent;
1893         sfconvert;
1894         sgconvert;
1895         sig2str;
1896         sigwait;
1897         single_to_decimal;
1898         srand48;
1899         ssignal;
1900         statfs;
1901         str2sig;
1902         strcasecmp;
1903         string_to_decimal;
1904         strncasecmp;
1905         strsignal;
1906         strtoll;
1907         strtoull;
1908         swapctl;
1909         _syscall;
1910         sysfs;
1911         syslog;
1912         _syslog;
1913         tmpnam_r;
1914         truncate;
1915         ttyslot;
1916         uadmin;
1917         ulckpwdf;
1918         ulltostr;
1919         unordered;
1920         updwtmp;
1921         updwtmpx;
1922         ustat;
1923         utimes;
1924         utmpname;
1925         utmpxname;
1926         vfork;
1927         vhangup;
1928         vsyslog;
1929         yield;
1930 
1931 $if i386
1932         # Note: _syscall is also defined above. Here, we add the NODYNSORT
1933         # attribute to it. On this platform, it is an alias to syscall.
1934         # If that is changed, this lines should be removed.
1935         _syscall                { FLAGS = NODYNSORT };
1936 $endif
1937 
1938 # The 32-bit sparc ABI requires SISCD_2.3. On other platforms, those symbols
1939 # go directly into SUNW_0.7.
1940 $if sparc32
1941 } SISCD_2.3;
1942 
1943 SYMBOL_VERSION SISCD_2.3 {
1944 $endif
1945 
1946     global:
1947         errno                   { FLAGS = NODIRECT };
1948         _iob;
1949 
1950     protected:
1951         addseverity;
1952         _addseverity;
1953         asctime_r;
1954         crypt;
1955         _crypt;
1956         ctime_r;
1957         encrypt;
1958         _encrypt;
1959         endgrent;
1960         endpwent;
1961         ___errno;
1962         fgetgrent;
1963         fgetgrent_r;
1964         fgetpwent;
1965         fgetpwent_r;
1966         flockfile;
1967         funlockfile;
1968         getchar_unlocked;
1969         getc_unlocked;
1970         getgrent;
1971         getgrent_r;
1972         getgrgid_r;
1973         getgrnam_r;
1974         getitimer;
1975         _getitimer;
1976         getlogin_r;
1977         getpwent;
1978         getpwent_r;
1979         getpwnam_r;
1980         getpwuid_r;
1981         gettimeofday;
1982         _gettimeofday;
1983         gmtime_r;
1984         localtime_r;
1985         putchar_unlocked;
1986         putc_unlocked;
1987         rand_r;
1988         readdir_r;
1989         setgrent;
1990         setitimer;
1991         _setitimer;
1992         setkey;
1993         _setkey;
1994         setpwent;
1995         strtok_r;
1996         sysinfo;
1997         _sysinfo;
1998         ttyname_r;
1999 
2000 $if _ELF32
2001         __div64;
2002         __mul64;
2003         __rem64;
2004         __udiv64;
2005         __urem64;
2006 $endif
2007 
2008 $if sparc32
2009         __dtoll;
2010         __dtoull;
2011         __ftoll;
2012         __ftoull;
2013         _Q_lltoq;
2014         _Q_qtoll;
2015         _Q_qtoull;
2016         _Q_ulltoq;
2017         sbrk;
2018         _sbrk;
2019         __umul64                { FLAGS = NODYNSORT };  # Same address as __mul64
2020 $endif
2021 
2022 # On 32-bit platforms, the following symbols go into SYSVABI_1.3, but on
2023 # other platforms they go directly into the current version (which will be
2024 # either SUNW_0.7, or SISCD_2.3, depending on the similar issue described above.
2025 $if _ELF32
2026 } SYSVABI_1.3;
2027 
2028 SYMBOL_VERSION SYSVABI_1.3 {
2029 $endif
2030 
2031     global:
2032         _altzone;
2033         calloc                  { FLAGS = NODIRECT };
2034         __ctype;
2035         daylight;
2036         _daylight;
2037         environ                 { FLAGS = NODIRECT };
2038         _environ                { FLAGS = NODIRECT };
2039         free                    { FLAGS = NODIRECT };
2040         frexp                   { TYPE = FUNCTION; FILTER = libm.so.2 };
2041         getdate_err;
2042         _getdate_err;
2043         getenv;
2044         __huge_val;
2045         __iob;
2046         isnan                   { TYPE = FUNCTION; FILTER = libm.so.2 };
2047         _isnan                  { TYPE = FUNCTION; FILTER = libm.so.2 };
2048         isnand                  { TYPE = FUNCTION; FILTER = libm.so.2 };
2049         _isnand                 { TYPE = FUNCTION; FILTER = libm.so.2 };
2050         ldexp                   { TYPE = FUNCTION; FILTER = libm.so.2 };
2051         logb                    { TYPE = FUNCTION; FILTER = libm.so.2 };
2052         malloc                  { FLAGS = NODIRECT };
2053         memcmp;
2054         memcpy;
2055         memmove;
2056         memset;
2057         modf                    { TYPE = FUNCTION; FILTER = libm.so.2 };
2058         _modf                   { TYPE = FUNCTION; FILTER = libm.so.2 };
2059         nextafter               { TYPE = FUNCTION; FILTER = libm.so.2 };
2060         _nextafter              { TYPE = FUNCTION; FILTER = libm.so.2 };
2061         _numeric;
2062         optarg;
2063         opterr;
2064         optind;
2065         optopt;
2066         realloc                 { FLAGS = NODIRECT };
2067         scalb                   { TYPE = FUNCTION; FILTER = libm.so.2 };
2068         _scalb                  { TYPE = FUNCTION; FILTER = libm.so.2 };
2069         timezone;
2070         _timezone;
2071         tzname;
2072         _tzname;
2073 $if i386
2074         _fp_hw;
2075 $endif
2076 
2077     protected:
2078         abort;
2079         abs;
2080         access;
2081         _access;
2082         acct;
2083         _acct;
2084         alarm;
2085         _alarm;
2086         asctime;
2087         __assert;
2088         atexit;
2089         atof;
2090         atoi;
2091         atol;
2092         bsearch;
2093         catclose;
2094         _catclose;
2095         catgets;
2096         _catgets;
2097         catopen;
2098         _catopen;
2099         cfgetispeed;
2100         _cfgetispeed;
2101         cfgetospeed;
2102         _cfgetospeed;
2103         cfsetispeed;
2104         _cfsetispeed;
2105         cfsetospeed;
2106         _cfsetospeed;
2107         chdir;
2108         _chdir;
2109         chmod;
2110         _chmod;
2111         chown;
2112         _chown;
2113         chroot;
2114         _chroot;
2115         _cleanup;
2116         clearerr;
2117         clock;
2118         _close;
2119         close;
2120         closedir;
2121         _closedir;
2122         creat;
2123         _creat;
2124         ctermid;
2125         ctime;
2126         cuserid;
2127         _cuserid;
2128         difftime;
2129         div;
2130         dup;
2131         _dup;
2132         dup2;
2133         _dup2;
2134         execl;
2135         _execl;
2136         execle;
2137         _execle;
2138         execlp;
2139         _execlp;
2140         execv;
2141         _execv;
2142         execve;
2143         _execve;
2144         execvp;
2145         _execvp;
2146         exit;
2147         _exit;
2148         fattach;
2149         _fattach;
2150         fchdir;
2151         _fchdir;
2152         fchmod;
2153         _fchmod;
2154         fchown;
2155         _fchown;
2156         fclose;
2157         fcntl;
2158         _fcntl;
2159         fdetach;
2160         _fdetach;
2161         fdopen;
2162         _fdopen;
2163         feof;
2164         ferror;
2165         fflush;
2166         fgetc;
2167         fgetpos;
2168         fgets;
2169         __filbuf;
2170         fileno;
2171         _fileno;
2172         __flsbuf;
2173         fmtmsg;
2174         _fmtmsg;
2175         fopen;
2176         _fork;
2177         fork;
2178         fpathconf;
2179         _fpathconf;
2180         fprintf;
2181         fputc;
2182         fputs;
2183         fread;
2184         freopen;
2185         fscanf;
2186         fseek;
2187         fsetpos;
2188         fstat;
2189         _fstat;
2190         fstatvfs;
2191         _fstatvfs;
2192         fsync;
2193         _fsync;
2194         ftell;
2195         ftok;
2196         _ftok;
2197         fwrite;
2198         getc;
2199         getchar;
2200         getcontext;
2201         _getcontext;
2202         getcwd;
2203         _getcwd;
2204         getdate;
2205         _getdate;
2206         getegid;
2207         _getegid;
2208         geteuid;
2209         _geteuid;
2210         getgid;
2211         _getgid;
2212         getgrgid;
2213         getgrnam;
2214         getgroups;
2215         _getgroups;
2216         getlogin;
2217         getmsg;
2218         _getmsg;
2219         getopt;
2220         _getopt;
2221         getpass;
2222         _getpass;
2223         getpgid;
2224         _getpgid;
2225         getpgrp;
2226         _getpgrp;
2227         getpid;
2228         _getpid;
2229         getpmsg;
2230         _getpmsg;
2231         getppid;
2232         _getppid;
2233         getpwnam;
2234         getpwuid;
2235         getrlimit;
2236         _getrlimit;
2237         gets;
2238         getsid;
2239         _getsid;
2240         getsubopt;
2241         _getsubopt;
2242         gettxt;
2243         _gettxt;
2244         getuid;
2245         _getuid;
2246         getw;
2247         _getw;
2248         gmtime;
2249         grantpt;
2250         _grantpt;
2251         hcreate;
2252         _hcreate;
2253         hdestroy;
2254         _hdestroy;
2255         hsearch;
2256         _hsearch;
2257         initgroups;
2258         _initgroups;
2259         ioctl;
2260         _ioctl;
2261         isalnum;
2262         isalpha;
2263         isascii;
2264         _isascii;
2265         isastream;
2266         _isastream;
2267         isatty;
2268         _isatty;
2269         iscntrl;
2270         isdigit;
2271         isgraph;
2272         islower;
2273         isprint;
2274         ispunct;
2275         isspace;
2276         isupper;
2277         isxdigit;
2278         kill;
2279         _kill;
2280         labs;
2281         lchown;
2282         _lchown;
2283         ldiv;
2284         lfind;
2285         _lfind;
2286         link;
2287         _link;
2288         localeconv;
2289         localtime;
2290         lockf;
2291         _lockf;
2292         longjmp;
2293         lsearch;
2294         _lsearch;
2295         lseek;
2296         _lseek;
2297         lstat;
2298         _lstat;
2299         makecontext;
2300         _makecontext;
2301         mblen;
2302         mbstowcs;
2303         mbtowc;
2304         memccpy;
2305         _memccpy;
2306         memchr;
2307         memcntl;
2308         _memcntl;
2309         mkdir;
2310         _mkdir;
2311         mkfifo;
2312         _mkfifo;
2313         mknod;
2314         _mknod;
2315         mktemp;
2316         _mktemp;
2317         mktime;
2318         mlock;
2319         _mlock;
2320         mmap;
2321         _mmap;
2322         monitor;
2323         _monitor;
2324         mount;
2325         _mount;
2326         mprotect;
2327         _mprotect;
2328         msgctl;
2329         _msgctl;
2330         msgget;
2331         _msgget;
2332         msgrcv;
2333         _msgrcv;
2334         msgsnd;
2335         _msgsnd;
2336         msync;
2337         _msync;
2338         munlock;
2339         _munlock;
2340         munmap;
2341         _munmap;
2342         nftw;
2343         _nftw;
2344         nice;
2345         _nice;
2346         nl_langinfo;
2347         _nl_langinfo;
2348         open;
2349         _open;
2350         opendir;
2351         _opendir;
2352         pathconf;
2353         _pathconf;
2354         pause;
2355         _pause;
2356         pclose;
2357         _pclose;
2358         perror;
2359         pipe;
2360         _pipe;
2361         poll;
2362         _poll;
2363         popen;
2364         _popen;
2365         printf;
2366         profil;
2367         _profil;
2368         ptsname;
2369         _ptsname;
2370         putc;
2371         putchar;
2372         putenv;
2373         _putenv;
2374         putmsg;
2375         _putmsg;
2376         putpmsg;
2377         _putpmsg;
2378         puts;
2379         putw;
2380         _putw;
2381         qsort;
2382         raise;
2383         rand;
2384         read;
2385         _read;
2386         readdir;
2387         _readdir;
2388         readlink;
2389         _readlink;
2390         readv;
2391         _readv;
2392         remove;
2393         rename;
2394         _rename;
2395         rewind;
2396         rewinddir;
2397         _rewinddir;
2398         rmdir;
2399         _rmdir;
2400         scanf;
2401         seekdir;
2402         _seekdir;
2403         semctl;
2404         _semctl;
2405         semget;
2406         _semget;
2407         semop;
2408         _semop;
2409         setbuf;
2410         setcontext;
2411         _setcontext             { FLAGS = NODYNSORT };
2412         setgid;
2413         _setgid;
2414         setgroups;
2415         _setgroups;
2416         setjmp;
2417         setlabel;
2418         setlocale;
2419         setpgid;
2420         _setpgid;
2421         setpgrp;
2422         _setpgrp;
2423         setrlimit;
2424         _setrlimit;
2425         setsid;
2426         _setsid;
2427         setuid;
2428         _setuid;
2429         setvbuf;
2430         shmat;
2431         _shmat;
2432         shmctl;
2433         _shmctl;
2434         shmdt;
2435         _shmdt;
2436         shmget;
2437         _shmget;
2438         sigaction;
2439         _sigaction              { FLAGS = NODYNSORT };
2440         sigaddset;
2441         _sigaddset;
2442         sigaltstack;
2443         _sigaltstack;
2444         sigdelset;
2445         _sigdelset;
2446         sigemptyset;
2447         _sigemptyset;
2448         sigfillset;
2449         _sigfillset;
2450         sighold;
2451         _sighold;
2452         sigignore;
2453         _sigignore;
2454         sigismember;
2455         _sigismember;
2456         siglongjmp;
2457         _siglongjmp;
2458         signal;
2459         sigpause;
2460         _sigpause;
2461         sigpending;
2462         _sigpending;
2463         sigprocmask;
2464         _sigprocmask;
2465         sigrelse;
2466         _sigrelse;
2467         sigsend;
2468         _sigsend;
2469         sigsendset;
2470         _sigsendset;
2471         sigset;
2472         _sigset;
2473         sigsetjmp;
2474         _sigsetjmp              { FLAGS = NODYNSORT };
2475         sigsuspend;
2476         _sigsuspend;
2477         sleep;
2478         _sleep;
2479         sprintf;
2480         srand;
2481         sscanf;
2482         stat;
2483         _stat;
2484         statvfs;
2485         _statvfs;
2486         stime;
2487         _stime;
2488         strcat;
2489         strchr;
2490         strcmp;
2491         strcoll;
2492         strcpy;
2493         strcspn;
2494         strdup;
2495         _strdup;
2496         strerror;
2497         strftime;
2498         strlen;
2499         strncat;
2500         strncmp;
2501         strncpy;
2502         strpbrk;
2503         strrchr;
2504         strspn;
2505         strstr;
2506         strtod;
2507         strtok;
2508         strtol;
2509         strtoul;
2510         strxfrm;
2511         swab;
2512         _swab;
2513         swapcontext;
2514         _swapcontext;
2515         symlink;
2516         _symlink;
2517         sync;
2518         _sync;
2519         sysconf;
2520         _sysconf;
2521         system;
2522         tcdrain;
2523         _tcdrain;
2524         tcflow;
2525         _tcflow;
2526         tcflush;
2527         _tcflush;
2528         tcgetattr;
2529         _tcgetattr;
2530         tcgetpgrp;
2531         _tcgetpgrp;
2532         tcgetsid;
2533         _tcgetsid;
2534         tcsendbreak;
2535         _tcsendbreak;
2536         tcsetattr;
2537         _tcsetattr;
2538         tcsetpgrp;
2539         _tcsetpgrp;
2540         tdelete;
2541         _tdelete;
2542         tell;
2543         _tell;
2544         telldir;
2545         _telldir;
2546         tempnam;
2547         _tempnam;
2548         tfind;
2549         _tfind;
2550         time;
2551         _time;
2552         times;
2553         _times;
2554         tmpfile;
2555         tmpnam;
2556         toascii;
2557         _toascii;
2558         tolower;
2559         _tolower;
2560         toupper;
2561         _toupper;
2562         tsearch;
2563         _tsearch;
2564         ttyname;
2565         twalk;
2566         _twalk;
2567         tzset;
2568         _tzset;
2569         ulimit;
2570         _ulimit;
2571         umask;
2572         _umask;
2573         umount;
2574         _umount;
2575         uname;
2576         _uname;
2577         ungetc;
2578         unlink;
2579         _unlink;
2580         unlockpt;
2581         _unlockpt;
2582         utime;
2583         _utime;
2584         vfprintf;
2585         vprintf;
2586         vsprintf;
2587         wait;
2588         _wait;
2589         waitid;
2590         _waitid;
2591         waitpid;
2592         _waitpid;
2593         wcstombs;
2594         wctomb;
2595         write;
2596         _write;
2597         writev;
2598         _writev;
2599         _xftw;
2600 
2601 $if _ELF32
2602         ptrace;
2603         _ptrace;
2604 $endif
2605 
2606 $if i386
2607         _fxstat;
2608         _lxstat;
2609         nuname;
2610         _nuname;
2611         _xmknod;
2612         _xstat;
2613 $endif
2614 
2615 $if !sparc32
2616         sbrk;
2617 $endif
2618 
2619 $if _sparc
2620         __dtou;
2621         __ftou;
2622 $endif
2623 
2624 $if sparc32
2625         .div;
2626         .mul;
2627         .rem;
2628         .stret1;
2629         .stret2;
2630         .stret4;
2631         # .stret4 and .stret8 are the same thing
2632         .stret8                 { FLAGS = NODYNSORT };
2633         .udiv;
2634         .umul;
2635         .urem;
2636         _Q_add;
2637         _Q_cmp;
2638         _Q_cmpe;
2639         _Q_div;
2640         _Q_dtoq;
2641         _Q_feq;
2642         _Q_fge;
2643         _Q_fgt;
2644         _Q_fle;
2645         _Q_flt;
2646         _Q_fne;
2647         _Q_itoq;
2648         _Q_mul;
2649         _Q_neg;
2650         _Q_qtod;
2651         _Q_qtoi;
2652         _Q_qtos;
2653         _Q_qtou;
2654         _Q_sqrt;
2655         _Q_stoq;
2656         _Q_sub;
2657         _Q_utoq;
2658 $endif
2659 
2660 $if sparcv9
2661         # __align_cpy_1 is an alias for memcpy. Filter it out of
2662         # the .SUNW_dynsymsort section
2663         __align_cpy_1           { FLAGS = NODYNSORT };
2664         __align_cpy_16;
2665         __align_cpy_2;
2666         __align_cpy_4;
2667         # __align_cpy_8 is same as __align_cpy_16
2668         __align_cpy_8           { FLAGS = NODYNSORT };
2669         __dtoul;
2670         __ftoul;
2671         _Qp_add;
2672         _Qp_cmp;
2673         _Qp_cmpe;
2674         _Qp_div;
2675         _Qp_dtoq;
2676         _Qp_feq;
2677         _Qp_fge;
2678         _Qp_fgt;
2679         _Qp_fle;
2680         _Qp_flt;
2681         _Qp_fne;
2682         _Qp_itoq;
2683         _Qp_mul;
2684         _Qp_neg;
2685         _Qp_qtod;
2686         _Qp_qtoi;
2687         _Qp_qtos;
2688         _Qp_qtoui;
2689         _Qp_qtoux;
2690         _Qp_qtox;
2691         _Qp_sqrt;
2692         _Qp_stoq;
2693         _Qp_sub;
2694         _Qp_uitoq;
2695         _Qp_uxtoq;
2696         _Qp_xtoq;
2697         __sparc_utrap_install;
2698 $endif
2699 
2700 # On amd64, we also have SYSVABI_1.3, but it contains a small subset of
2701 # the symbols put in that version on other platforms.
2702 $if amd64
2703 } SYSVABI_1.3;
2704 
2705 SYMBOL_VERSION SYSVABI_1.3 { 
2706 $endif
2707     global:
2708 $if !_sparc
2709         __flt_rounds;
2710 $endif
2711 
2712     protected:
2713         _ctermid;
2714         _getgrgid;
2715         _getgrnam;
2716         _getlogin;
2717         _getpwnam;
2718         _getpwuid;
2719         _ttyname;
2720 
2721 $if !sparc32
2722         _sbrk;
2723 $endif
2724 
2725 $if _x86
2726         _fpstart;
2727         __fpstart;
2728 $endif
2729 };
2730 
2731 
2732 
2733 # There should never be more than one SUNWprivate version.
2734 # Don't add any more.  Add new private symbols to SUNWprivate_1.1
2735 
2736 SYMBOL_VERSION SUNWprivate_1.1 {
2737     global:
2738         ___Argv                 { FLAGS = NODIRECT };
2739         cfree                   { FLAGS = NODIRECT };
2740         _cswidth;
2741         __ctype_mask;
2742         __environ_lock          { FLAGS = NODIRECT };
2743         __inf_read;
2744         __inf_written;
2745         __i_size;
2746         _isnanf                 { TYPE = FUNCTION; FILTER = libm.so.2 };
2747         __iswrune;
2748         __libc_threaded;
2749         _lib_version            { FLAGS = NODIRECT };
2750         _logb                   { TYPE = FUNCTION; FILTER = libm.so.2 };
2751         _lone                   { FLAGS = NODYNSORT };
2752         _lten                   { FLAGS = NODYNSORT };
2753         _lzero                  { FLAGS = NODYNSORT };
2754         __malloc_lock;
2755         _memcmp;
2756         _memcpy                 { FLAGS = NODYNSORT };
2757         _memmove;
2758         _memset;
2759         _modff                  { TYPE = FUNCTION; FILTER = libm.so.2 };
2760         __nan_read;
2761         __nan_written;
2762         __nextwctype;
2763         __nis_debug_bind;
2764         __nis_debug_calls;
2765         __nis_debug_file;
2766         __nis_debug_rpc;
2767         __nis_prefsrv;
2768         __nis_preftype;
2769         __nis_server;
2770         _nss_default_finders;
2771         __progname              { FLAGS = NODIRECT };
2772         _smbuf;
2773         _sp;
2774         __strdupa_str           { FLAGS = NODIRECT };
2775         __strdupa_len           { FLAGS = NODIRECT };
2776         _tdb_bootstrap;
2777         __threaded;
2778         thr_probe_getfunc_addr;
2779         __trans_lower;
2780         __trans_upper;
2781         _uberdata;
2782         __xpg6                  { FLAGS = NODIRECT };
2783 
2784 $if _ELF32
2785         _dladdr                 { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2786         _dladdr1                { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2787         _dlclose                { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2788         _dldump                 { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2789         _dlerror                { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2790         _dlinfo                 { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2791         _dlmopen                { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2792         _dlopen                 { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2793         _dlsym                  { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2794         _ld_libc                { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2795         _sys_errlist;
2796         _sys_errs;
2797         _sys_index;
2798         _sys_nerr               { FLAGS = NODYNSORT };
2799         _sys_num_err;
2800 $elif sparcv9
2801         _dladdr         { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2802         _dladdr1        { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2803         _dlclose        { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2804         _dldump         { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2805         _dlerror        { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2806         _dlinfo         { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2807         _dlmopen        { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2808         _dlopen         { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2809         _dlsym          { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2810         _ld_libc        { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2811 $elif amd64
2812         _dladdr         { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2813         _dladdr1        { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2814         _dlamd64getunwind { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2815         _dlclose        { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2816         _dldump         { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2817         _dlerror        { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2818         _dlinfo         { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2819         _dlmopen        { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2820         _dlopen         { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2821         _dlsym          { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2822         _ld_libc        { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2823 $else
2824 $error unknown platform
2825 $endif
2826 
2827 $if _sparc
2828         __lyday_to_month;
2829         __mon_lengths;
2830         __yday_to_month;
2831 $endif
2832 $if i386
2833         _sse_hw;
2834 $endif
2835 
2836     protected:
2837         acctctl;
2838         allocids;
2839         _assert_c99;
2840         __assert_c99;
2841         _assfail;
2842         attr_count;
2843         attr_to_data_type;
2844         attr_to_name;
2845         attr_to_option;
2846         attr_to_xattr_view;     
2847         _autofssys;
2848         _bufsync;
2849         _cladm;
2850         __class_quadruple;
2851         core_get_default_content;
2852         core_get_default_path;
2853         core_get_global_content;
2854         core_get_global_path;
2855         core_get_options;
2856         core_get_process_content;
2857         core_get_process_path;
2858         core_set_default_content;
2859         core_set_default_path;
2860         core_set_global_content;
2861         core_set_global_path;
2862         core_set_options;
2863         core_set_process_content;
2864         core_set_process_path;
2865         dbm_close_status;
2866         dbm_do_nextkey;
2867         dbm_setdefwrite;
2868         _D_cplx_div;
2869         _D_cplx_div_ix;
2870         _D_cplx_div_rx;
2871         _D_cplx_mul;
2872         defclose_r;
2873         defcntl;
2874         defcntl_r;
2875         defopen;
2876         defopen_r;
2877         defread;
2878         defread_r;
2879         _delete;
2880         _dgettext;
2881         _doprnt;
2882         _doscan;
2883         _errfp;
2884         _errxfp;
2885         exportfs;
2886         _F_cplx_div;
2887         _F_cplx_div_ix;
2888         _F_cplx_div_rx;
2889         _F_cplx_mul;
2890         __fgetwc_xpg5;
2891         __fgetws_xpg5;
2892         _findbuf;
2893         _findiop;
2894         __fini_daemon_priv;
2895         _finite;
2896         _fork1                  { FLAGS = NODYNSORT };
2897         _forkall                { FLAGS = NODYNSORT };
2898         _fpclass;
2899         _fpgetmask;
2900         _fpgetround;
2901         _fpgetsticky;
2902         _fprintf;
2903         _fpsetmask;
2904         _fpsetround;
2905         _fpsetsticky;
2906         __fputwc_xpg5;
2907         __fputws_xpg5;
2908         _ftw;
2909         _gcvt;
2910         _getarg;
2911         __getcontext;
2912         _getdents;
2913         _get_exit_frame_monitor;
2914         _getfp;
2915         _getgroupsbymember;
2916         _getlogin_r;
2917         getrandom;
2918         _getsp;
2919         __gettsp;
2920         getvmusage;
2921         __getwchar_xpg5;
2922         __getwc_xpg5;
2923         gtty;
2924         __idmap_flush_kcache;
2925         __idmap_reg;
2926         __idmap_unreg;
2927         __init_daemon_priv;
2928         __init_suid_priv;
2929         _insert;
2930         inst_sync;
2931         _iswctype;
2932         klpd_create;
2933         klpd_getpath;
2934         klpd_getport;
2935         klpd_getucred;
2936         klpd_register;
2937         klpd_register_id;
2938         klpd_unregister;
2939         klpd_unregister_id;
2940         _lgrp_home_fast         { FLAGS = NODYNSORT };
2941         _lgrpsys;
2942         _lltostr;
2943         _lock_clear;
2944         _lock_try;
2945         _ltzset;
2946         lwp_self;
2947         makeut;
2948         makeutx;
2949         _mbftowc;
2950         mcfiller;
2951         mntopt;
2952         modctl;
2953         modutx;
2954         msgctl64;
2955         __multi_innetgr;
2956         _mutex_destroy          { FLAGS = NODYNSORT };
2957         mutex_enter;
2958         mutex_exit;
2959         mutex_held;
2960         _mutex_init             { FLAGS = NODYNSORT };
2961         _mutex_unlock           { FLAGS = NODYNSORT };
2962         name_to_attr;
2963         nfs_getfh;
2964         nfssvc;
2965         _nfssys;
2966         __nis_get_environment;
2967         _nss_db_state_destr;
2968         nss_default_key2str;
2969         nss_delete;
2970         nss_endent;
2971         nss_getent;
2972         _nss_initf_group;
2973         _nss_initf_netgroup;
2974         _nss_initf_passwd;
2975         _nss_initf_shadow;
2976         nss_packed_arg_init;
2977         nss_packed_context_init;
2978         nss_packed_getkey;
2979         nss_packed_set_status;
2980         nss_search;
2981         nss_setent;
2982         _nss_XbyY_fgets;
2983         __nsw_extended_action_v1;
2984         __nsw_freeconfig_v1;
2985         __nsw_getconfig_v1;
2986         __nthreads;
2987         __openattrdirat;
2988         option_to_attr;
2989         __priv_bracket;
2990         __priv_relinquish;
2991         pset_assign_forced;
2992         pset_bind_lwp;
2993         _psignal;
2994         _pthread_setcleanupinit;
2995         __putwchar_xpg5;
2996         __putwc_xpg5;
2997         rctlctl;
2998         rctllist;
2999         _realbufend;
3000         _resume;
3001         _resume_ret;
3002         _rpcsys;
3003         _sbrk_grow_aligned;
3004         scrwidth;
3005         semctl64;
3006         _semctl64;
3007         set_setcontext_enforcement;
3008         _setbufend;
3009         __set_errno;
3010         setprojrctl;
3011         _setregid;
3012         _setreuid;
3013         setsigacthandler;
3014         shmctl64;
3015         _shmctl64;
3016         sigflag;
3017         _signal;
3018         _sigoff;
3019         _sigon;
3020         _so_accept;
3021         _so_bind;
3022         _sockconfig;
3023         _so_connect;
3024         _so_getpeername;
3025         _so_getsockname;
3026         _so_getsockopt;
3027         _so_listen;
3028         _so_recv;
3029         _so_recvfrom;
3030         _so_recvmsg;
3031         _so_send;
3032         _so_sendmsg;
3033         _so_sendto;
3034         _so_setsockopt;
3035         _so_shutdown;
3036         _so_socket;
3037         _so_socketpair;
3038         str2group;
3039         str2passwd;
3040         str2spwd;
3041         __strptime_dontzero;
3042         stty;
3043         syscall;
3044         _sysconfig;
3045         __systemcall;
3046         thr_continue_allmutators;
3047         _thr_continue_allmutators;
3048         thr_continue_mutator;
3049         _thr_continue_mutator;
3050         thr_getstate;
3051         _thr_getstate;
3052         thr_mutators_barrier;
3053         _thr_mutators_barrier;
3054         thr_probe_setup;
3055         _thr_schedctl;
3056         thr_setmutator;
3057         _thr_setmutator;
3058         thr_setstate;
3059         _thr_setstate;
3060         thr_sighndlrinfo;
3061         _thr_sighndlrinfo;
3062         _thr_slot_offset;
3063         thr_suspend_allmutators;
3064         _thr_suspend_allmutators;
3065         thr_suspend_mutator;
3066         _thr_suspend_mutator;
3067         thr_wait_mutator;
3068         _thr_wait_mutator;
3069         __tls_get_addr;
3070         _tmem_get_base;
3071         _tmem_get_nentries;
3072         _tmem_set_cleanup;
3073         tpool_create;
3074         tpool_dispatch;
3075         tpool_destroy;
3076         tpool_wait;
3077         tpool_suspend;
3078         tpool_suspended;
3079         tpool_resume;
3080         tpool_member;
3081         _ttyname_dev;
3082         _ucred_alloc;
3083         ucred_getamask;
3084         _ucred_getamask;
3085         ucred_getasid;
3086         _ucred_getasid;
3087         ucred_getatid;
3088         _ucred_getatid;
3089         ucred_getauid;
3090         _ucred_getauid;
3091         _ulltostr;
3092         _uncached_getgrgid_r;
3093         _uncached_getgrnam_r;
3094         _uncached_getpwnam_r;
3095         _uncached_getpwuid_r;
3096         __ungetwc_xpg5;
3097         _unordered;
3098         utssys;
3099         _verrfp;
3100         _verrxfp;
3101         _vwarnfp;
3102         _vwarnxfp;
3103         _warnfp;
3104         _warnxfp;
3105         __wcsftime_xpg5;
3106         __wcstok_xpg5;
3107         wdbindf;
3108         wdchkind;
3109         wddelim;
3110         _wrtchk;
3111         _xflsbuf;
3112         _xgetwidth;
3113         zone_add_datalink;
3114         zone_boot;
3115         zone_check_datalink;
3116         zone_create;
3117         zone_destroy;
3118         zone_enter;
3119         zone_getattr;
3120         zone_get_id;
3121         zone_list;
3122         zone_list_datalink;
3123         zonept;
3124         zone_remove_datalink;
3125         zone_setattr;
3126         zone_shutdown;
3127         zone_version;
3128 
3129 $if _ELF32
3130         __divdi3;
3131         _file_set;
3132         _fprintf_c89;
3133         _fscanf_c89;
3134         _fwprintf_c89;
3135         _fwscanf_c89;
3136         _imaxabs_c89;
3137         _imaxdiv_c89;
3138         __moddi3;
3139         _printf_c89;
3140         _scanf_c89;
3141         _snprintf_c89;
3142         _sprintf_c89;
3143         _sscanf_c89;
3144         _strtoimax_c89;
3145         _strtoumax_c89;
3146         _swprintf_c89;
3147         _swscanf_c89;
3148         __udivdi3;
3149         __umoddi3;
3150         _vfprintf_c89;
3151         _vfscanf_c89;
3152         _vfwprintf_c89;
3153         _vfwscanf_c89;
3154         _vprintf_c89;
3155         _vscanf_c89;
3156         _vsnprintf_c89;
3157         _vsprintf_c89;
3158         _vsscanf_c89;
3159         _vswprintf_c89;
3160         _vswscanf_c89;
3161         _vwprintf_c89;
3162         _vwscanf_c89;
3163         _wcstoimax_c89;
3164         _wcstoumax_c89;
3165         _wprintf_c89;
3166         _wscanf_c89;
3167 $endif
3168 
3169 $if _sparc
3170         _cerror;
3171         install_utrap;
3172         _install_utrap;
3173         nop;
3174         _Q_cplx_div;
3175         _Q_cplx_div_ix;
3176         _Q_cplx_div_rx;
3177         _Q_cplx_lr_div;
3178         _Q_cplx_lr_div_ix;
3179         _Q_cplx_lr_div_rx;
3180         _Q_cplx_lr_mul;
3181         _Q_cplx_mul;
3182         _QgetRD;
3183         _xregs_clrptr;
3184 $endif
3185 
3186 $if sparc32
3187         __ashldi3;
3188         __ashrdi3;
3189         _cerror64;
3190         __cmpdi2;
3191         __floatdidf;
3192         __floatdisf;
3193         __floatundidf;
3194         __floatundisf;
3195         __lshrdi3;
3196         __muldi3;
3197         __ucmpdi2;
3198 $endif
3199 
3200 $if _x86
3201         _D_cplx_lr_div;
3202         _D_cplx_lr_div_ix;
3203         _D_cplx_lr_div_rx;
3204         _F_cplx_lr_div;
3205         _F_cplx_lr_div_ix;
3206         _F_cplx_lr_div_rx;
3207         __fltrounds;
3208         sysi86;
3209         _sysi86;
3210         _X_cplx_div;
3211         _X_cplx_div_ix;
3212         _X_cplx_div_rx;
3213         _X_cplx_lr_div;
3214         _X_cplx_lr_div_ix;
3215         _X_cplx_lr_div_rx;
3216         _X_cplx_mul;
3217         __xgetRD;
3218         __xtol;
3219         __xtoll;
3220         __xtoul;
3221         __xtoull;
3222 $endif
3223 
3224 $if i386
3225         __divrem64;
3226         ___tls_get_addr;
3227         __udivrem64;
3228 $endif
3229 
3230 # The following functions should not be exported from libc,
3231 # but /lib/libm.so.2, some older versions of the Studio
3232 # compiler/debugger components, and some ancient programs
3233 # found in /usr/dist reference them.  When we no longer
3234 # care about these old and broken binary objects, these
3235 # symbols should be deleted.
3236         _brk                                    { FLAGS = NODYNSORT };
3237         _cond_broadcast                         { FLAGS = NODYNSORT };
3238         _cond_init                              { FLAGS = NODYNSORT };
3239         _cond_signal                            { FLAGS = NODYNSORT };
3240         _cond_wait                              { FLAGS = NODYNSORT };
3241         _ecvt                                   { FLAGS = NODYNSORT };
3242         _fcvt                                   { FLAGS = NODYNSORT };
3243         _getc_unlocked                          { FLAGS = NODYNSORT };
3244         _llseek                                 { FLAGS = NODYNSORT };
3245         _pthread_attr_getdetachstate            { FLAGS = NODYNSORT };
3246         _pthread_attr_getinheritsched           { FLAGS = NODYNSORT };
3247         _pthread_attr_getschedparam             { FLAGS = NODYNSORT };
3248         _pthread_attr_getschedpolicy            { FLAGS = NODYNSORT };
3249         _pthread_attr_getscope                  { FLAGS = NODYNSORT };
3250         _pthread_attr_getstackaddr              { FLAGS = NODYNSORT };
3251         _pthread_attr_getstacksize              { FLAGS = NODYNSORT };
3252         _pthread_attr_init                      { FLAGS = NODYNSORT };
3253         _pthread_condattr_getpshared            { FLAGS = NODYNSORT };
3254         _pthread_condattr_init                  { FLAGS = NODYNSORT };
3255         _pthread_cond_init                      { FLAGS = NODYNSORT };
3256         _pthread_create                         { FLAGS = NODYNSORT };
3257         _pthread_getschedparam                  { FLAGS = NODYNSORT };
3258         _pthread_join                           { FLAGS = NODYNSORT };
3259         _pthread_key_create                     { FLAGS = NODYNSORT };
3260         _pthread_mutexattr_getprioceiling       { FLAGS = NODYNSORT };
3261         _pthread_mutexattr_getprotocol          { FLAGS = NODYNSORT };
3262         _pthread_mutexattr_getpshared           { FLAGS = NODYNSORT };
3263         _pthread_mutexattr_init                 { FLAGS = NODYNSORT };
3264         _pthread_mutex_getprioceiling           { FLAGS = NODYNSORT };
3265         _pthread_mutex_init                     { FLAGS = NODYNSORT };
3266         _pthread_sigmask                        { FLAGS = NODYNSORT };
3267         _rwlock_init                            { FLAGS = NODYNSORT };
3268         _rw_rdlock                              { FLAGS = NODYNSORT };
3269         _rw_unlock                              { FLAGS = NODYNSORT };
3270         _rw_wrlock                              { FLAGS = NODYNSORT };
3271         _sbrk_unlocked                          { FLAGS = NODYNSORT };
3272         _select                                 { FLAGS = NODYNSORT };
3273         _sema_init                              { FLAGS = NODYNSORT };
3274         _sema_post                              { FLAGS = NODYNSORT };
3275         _sema_trywait                           { FLAGS = NODYNSORT };
3276         _sema_wait                              { FLAGS = NODYNSORT };
3277         _sysfs                                  { FLAGS = NODYNSORT };
3278         _thr_create                             { FLAGS = NODYNSORT };
3279         _thr_exit                               { FLAGS = NODYNSORT };
3280         _thr_getprio                            { FLAGS = NODYNSORT };
3281         _thr_getspecific                        { FLAGS = NODYNSORT };
3282         _thr_join                               { FLAGS = NODYNSORT };
3283         _thr_keycreate                          { FLAGS = NODYNSORT };
3284         _thr_kill                               { FLAGS = NODYNSORT };
3285         _thr_main                               { FLAGS = NODYNSORT };
3286         _thr_self                               { FLAGS = NODYNSORT };
3287         _thr_setspecific                        { FLAGS = NODYNSORT };
3288         _thr_sigsetmask                         { FLAGS = NODYNSORT };
3289         _thr_stksegment                         { FLAGS = NODYNSORT };
3290         _ungetc_unlocked                        { FLAGS = NODYNSORT };
3291 
3292     local:
3293         __imax_lldiv                            { FLAGS = NODYNSORT };
3294         _ti_thr_self                            { FLAGS = NODYNSORT };
3295         *;
3296 
3297 $if lf64
3298         _seekdir64              { FLAGS = NODYNSORT };
3299         _telldir64              { FLAGS = NODYNSORT };
3300 $endif
3301 
3302 $if _sparc
3303         __cerror                { FLAGS = NODYNSORT };
3304 $endif
3305 
3306 $if sparc32
3307         __cerror64              { FLAGS = NODYNSORT };
3308 $endif
3309 
3310 $if sparcv9
3311         __cleanup               { FLAGS = NODYNSORT };
3312 $endif
3313 
3314 $if i386
3315         _syscall6               { FLAGS = NODYNSORT };
3316         __systemcall6           { FLAGS = NODYNSORT };
3317 $endif
3318 
3319 $if amd64
3320         ___tls_get_addr         { FLAGS = NODYNSORT };
3321 $endif
3322 };