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