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