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