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