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