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