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