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.
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.
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]
22 # Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
24 # Copyright 2010 Nexenta Systems, Inc. All rights reserved.
25 # Use is subject to license terms.
27 # Copyright (c) 2012 by Delphix. All rights reserved.
28 # Copyright 2016 Joyent, Inc.
29 # Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved.
30 # Copyright (c) 2013 Gary Mills
31 # Copyright 2014 Garrett D'Amore <garrett@damore.org>
34 # MAPFILE HEADER START
36 # WARNING: STOP NOW. DO NOT MODIFY THIS FILE.
37 # Object versioning must comply with the rules detailed in
39 # usr/src/lib/README.mapfiles
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.
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.
57 # README README README README README README: how to update this file
58 # 1) each version of Solaris/OpenSolaris gets a version number.
59 # (Actually since Solaris is actually a series of OpenSolaris releases
60 # we'll just use OpenSolaris for this exercise.)
61 # OpenSolaris 2008.11 gets 1.23
62 # OpenSolaris 2009.04 gets 1.24
64 # 2) each project integration uses a unique version number.
65 # PSARC/2008/123 gets 1.24.1
66 # PSARC/2008/456 gets 1.24.2
71 # Mnemonic conditional input identifiers:
73 # - amd64, i386, sparc32, sparcv9: Correspond to ISA subdirectories used to
74 # hold per-platform code. Note however that we use 'sparc32' instead of
75 # 'sparc'. Since '_sparc' is predefined to apply to, all sparc platforms,
76 # naming the 32-bit version 'sparc' would be too likely to cause errors.
78 # - lf64: Defined on platforms that offer the 32-bit largefile APIs
96 SYMBOL_VERSION ILLUMOS_0.22 { # endian(3C)
118 SYMBOL_VERSION ILLUMOS_0.21 {
123 SYMBOL_VERSION ILLUMOS_0.20 { # C11
156 SYMBOL_VERSION ILLUMOS_0.19 { # flock
161 SYMBOL_VERSION ILLUMOS_0.18 { # signalfd
166 SYMBOL_VERSION ILLUMOS_0.17 { # glob(3C) LFS
174 SYMBOL_VERSION ILLUMOS_0.16 { # timerfd
181 SYMBOL_VERSION ILLUMOS_0.15 { # epoll(3C)
190 SYMBOL_VERSION ILLUMOS_0.14 { # strerror_l
195 SYMBOL_VERSION ILLUMOS_0.13 { # eventfd
202 SYMBOL_VERSION ILLUMOS_0.12 { # arc4random and friends
211 SYMBOL_VERSION ILLUMOS_0.11 { # Illumos additions
217 SYMBOL_VERSION ILLUMOS_0.10 { # Illumos additions
228 SYMBOL_VERSION ILLUMOS_0.9 {
234 SYMBOL_VERSION ILLUMOS_0.8 { # POSIX 2008 newlocale and friends
316 SYMBOL_VERSION ILLUMOS_0.7 { # Illumos additions
322 SYMBOL_VERSION ILLUMOS_0.6 { # Illumos additions
329 SYMBOL_VERSION ILLUMOS_0.5 { # common C++ ABI exit handlers
335 SYMBOL_VERSION ILLUMOS_0.4 { # Illumos additions
348 SYMBOL_VERSION ILLUMOS_0.3 { # Illumos additions
353 SYMBOL_VERSION ILLUMOS_0.2 { # Illumos additions
358 SYMBOL_VERSION ILLUMOS_0.1 { # Illumos additions
363 SYMBOL_VERSION SUNW_1.23 { # SunOS 5.11 (Solaris 11)
369 dl_iterate_phdr { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
371 dl_iterate_phdr { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
373 dl_iterate_phdr { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
375 $error unknown platform
401 backtrace_symbols_fd;
402 canonicalize_file_name;
461 mq_reltimedreceive_np;
476 posix_spawn_file_actions_addclosefrom_np;
477 posix_spawnattr_getsigignore_np;
478 posix_spawnattr_setsigignore_np;
481 pthread_key_create_once_np;
482 pthread_mutexattr_getrobust;
483 pthread_mutexattr_setrobust;
484 pthread_mutex_consistent;
487 sched_get_priority_max;
488 sched_get_priority_min;
490 sched_rr_get_interval;
570 SYMBOL_VERSION SUNW_1.22.6 { # s10u9 - SunOS 5.10 (Solaris 10) patch additions
576 SYMBOL_VERSION SUNW_1.22.5 { # s10u8 - SunOS 5.10 (Solaris 10) patch additions
581 SYMBOL_VERSION SUNW_1.22.4 { # s10u7 - SunOS 5.10 (Solaris 10) patch additions
586 SYMBOL_VERSION SUNW_1.22.3 { # SunOS 5.10 (Solaris 10) patch additions
594 SYMBOL_VERSION SUNW_1.22.2 { # SunOS 5.10 (Solaris 10) patch additions
597 SYMBOL_VERSION SUNW_1.22.1 { # SunOS 5.10 (Solaris 10) patch additions
601 atomic_add_char { FLAGS = NODYNSORT };
602 atomic_add_char_nv { FLAGS = NODYNSORT };
603 atomic_add_int { FLAGS = NODYNSORT };
604 atomic_add_int_nv { FLAGS = NODYNSORT };
605 atomic_add_ptr { FLAGS = NODYNSORT };
606 atomic_add_ptr_nv { FLAGS = NODYNSORT };
607 atomic_add_short { FLAGS = NODYNSORT };
608 atomic_add_short_nv { FLAGS = NODYNSORT };
616 atomic_and_uchar { FLAGS = NODYNSORT };
617 atomic_and_uchar_nv { FLAGS = NODYNSORT };
618 atomic_and_uint_nv { FLAGS = NODYNSORT };
619 atomic_and_ulong { FLAGS = NODYNSORT };
620 atomic_and_ulong_nv { FLAGS = NODYNSORT };
621 atomic_and_ushort { FLAGS = NODYNSORT };
622 atomic_and_ushort_nv { FLAGS = NODYNSORT };
627 atomic_cas_ptr { FLAGS = NODYNSORT };
628 atomic_cas_uchar { FLAGS = NODYNSORT };
629 atomic_cas_uint { FLAGS = NODYNSORT };
630 atomic_cas_ulong { FLAGS = NODYNSORT };
631 atomic_cas_ushort { FLAGS = NODYNSORT };
632 atomic_clear_long_excl { FLAGS = NODYNSORT };
641 atomic_dec_uchar { FLAGS = NODYNSORT };
642 atomic_dec_uchar_nv { FLAGS = NODYNSORT };
643 atomic_dec_uint { FLAGS = NODYNSORT };
644 atomic_dec_uint_nv { FLAGS = NODYNSORT };
645 atomic_dec_ulong { FLAGS = NODYNSORT };
646 atomic_dec_ulong_nv { FLAGS = NODYNSORT };
647 atomic_dec_ushort { FLAGS = NODYNSORT };
648 atomic_dec_ushort_nv { FLAGS = NODYNSORT };
657 atomic_inc_uchar { FLAGS = NODYNSORT };
658 atomic_inc_uchar_nv { FLAGS = NODYNSORT };
659 atomic_inc_uint { FLAGS = NODYNSORT };
660 atomic_inc_uint_nv { FLAGS = NODYNSORT };
661 atomic_inc_ulong { FLAGS = NODYNSORT };
662 atomic_inc_ulong_nv { FLAGS = NODYNSORT };
663 atomic_inc_ushort { FLAGS = NODYNSORT };
664 atomic_inc_ushort_nv { FLAGS = NODYNSORT };
672 atomic_or_uchar { FLAGS = NODYNSORT };
673 atomic_or_uchar_nv { FLAGS = NODYNSORT };
674 atomic_or_uint_nv { FLAGS = NODYNSORT };
675 atomic_or_ulong { FLAGS = NODYNSORT };
676 atomic_or_ulong_nv { FLAGS = NODYNSORT };
677 atomic_or_ushort { FLAGS = NODYNSORT };
678 atomic_or_ushort_nv { FLAGS = NODYNSORT };
679 atomic_set_long_excl { FLAGS = NODYNSORT };
684 atomic_swap_ptr { FLAGS = NODYNSORT };
685 atomic_swap_uchar { FLAGS = NODYNSORT };
686 atomic_swap_uint { FLAGS = NODYNSORT };
687 atomic_swap_ulong { FLAGS = NODYNSORT };
688 atomic_swap_ushort { FLAGS = NODYNSORT };
695 enable_extended_FILE_stdio;
699 # Note: atomic_[and,dec,inc,or]_64_nv are also defined above. Here,
700 # we add the NODYNSORT attribute to them. On this platform, they are
701 # aliases for the non-_nv versions. If that is changed, these lines
703 atomic_and_64_nv { FLAGS = NODYNSORT };
704 atomic_dec_64_nv { FLAGS = NODYNSORT };
705 atomic_inc_64_nv { FLAGS = NODYNSORT };
706 atomic_or_64_nv { FLAGS = NODYNSORT };
709 # Note: atomic_OP_WIDTH_nv symbols are also defined above. Here,
710 # we add the NODYNSORT attribute to them. On this platform, they are
711 # aliases for the non-_nv versions. If that is changed, these lines
713 atomic_add_8_nv { FLAGS = NODYNSORT };
714 atomic_and_8_nv { FLAGS = NODYNSORT };
715 atomic_and_16_nv { FLAGS = NODYNSORT };
716 atomic_and_32_nv { FLAGS = NODYNSORT };
717 atomic_and_64_nv { FLAGS = NODYNSORT };
718 atomic_dec_8_nv { FLAGS = NODYNSORT };
719 atomic_dec_16_nv { FLAGS = NODYNSORT };
720 atomic_dec_32_nv { FLAGS = NODYNSORT };
721 atomic_dec_64_nv { FLAGS = NODYNSORT };
722 atomic_inc_8_nv { FLAGS = NODYNSORT };
723 atomic_inc_16_nv { FLAGS = NODYNSORT };
724 atomic_inc_32_nv { FLAGS = NODYNSORT };
725 atomic_inc_64_nv { FLAGS = NODYNSORT };
726 atomic_or_8_nv { FLAGS = NODYNSORT };
727 atomic_or_16_nv { FLAGS = NODYNSORT };
728 atomic_or_32_nv { FLAGS = NODYNSORT };
729 atomic_or_64_nv { FLAGS = NODYNSORT };
733 SYMBOL_VERSION SUNW_1.22 { # SunOS 5.10 (Solaris 10)
736 dladdr { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
737 dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
738 dlclose { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
739 dldump { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
740 dlerror { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
741 dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
742 dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
743 dlopen { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
744 dlsym { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
746 dladdr { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
747 dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
748 dlclose { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
749 dldump { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
750 dlerror { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
751 dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
752 dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
753 dlopen { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
754 dlsym { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
756 dladdr { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
757 dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
758 dlamd64getunwind { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
759 dlclose { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
760 dldump { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
761 dlerror { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
762 dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
763 dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
764 dlopen { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
765 dlsym { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
767 $error unknown platform
779 atomic_add_long { FLAGS = NODYNSORT };
780 atomic_add_long_nv { FLAGS = NODYNSORT };
782 atomic_and_uint { FLAGS = NODYNSORT };
784 atomic_or_uint { FLAGS = NODYNSORT };
819 posix_spawnattr_destroy;
820 posix_spawnattr_getflags;
821 posix_spawnattr_getpgroup;
822 posix_spawnattr_getschedparam;
823 posix_spawnattr_getschedpolicy;
824 posix_spawnattr_getsigdefault;
825 posix_spawnattr_getsigmask;
826 posix_spawnattr_init;
827 posix_spawnattr_setflags;
828 posix_spawnattr_setpgroup;
829 posix_spawnattr_setschedparam;
830 posix_spawnattr_setschedpolicy;
831 posix_spawnattr_setsigdefault;
832 posix_spawnattr_setsigmask;
833 posix_spawn_file_actions_addclose;
834 posix_spawn_file_actions_adddup2;
835 posix_spawn_file_actions_addopen;
836 posix_spawn_file_actions_destroy;
837 posix_spawn_file_actions_init;
896 pthread_attr_getstack;
897 pthread_attr_setstack;
898 pthread_barrierattr_destroy;
899 pthread_barrierattr_getpshared;
900 pthread_barrierattr_init;
901 pthread_barrierattr_setpshared;
902 pthread_barrier_destroy;
903 pthread_barrier_init;
904 pthread_barrier_wait;
905 pthread_condattr_getclock;
906 pthread_condattr_setclock;
907 pthread_mutexattr_getrobust_np { FLAGS = NODYNSORT };
908 pthread_mutexattr_setrobust_np { FLAGS = NODYNSORT };
909 pthread_mutex_consistent_np { FLAGS = NODYNSORT };
910 pthread_mutex_reltimedlock_np;
911 pthread_mutex_timedlock;
912 pthread_rwlock_reltimedrdlock_np;
913 pthread_rwlock_reltimedwrlock_np;
914 pthread_rwlock_timedrdlock;
915 pthread_rwlock_timedwrlock;
916 pthread_setschedprio;
917 pthread_spin_destroy;
920 pthread_spin_trylock;
922 rctlblk_set_recipient_pid;
991 # Note: atomic_add_[16,32,64]_nv are also defined above. Here, we add
992 # the NODYNSORT attribute to them. On this platform, they are aliases
993 # for the non-_nv versions. If that is changed, these lines should be
995 atomic_add_16_nv { FLAGS = NODYNSORT };
996 atomic_add_32_nv { FLAGS = NODYNSORT };
997 atomic_add_64_nv { FLAGS = NODYNSORT };
1001 # Note: atomic_add_64_nv is also defined above. Here, we add the
1002 # NODYNSORT attribute to it. On this platform, it is an aliases for
1003 # atomic_add_64. If that is changed, this line should be removed.
1004 atomic_add_64_nv { FLAGS = NODYNSORT };
1008 # Exception unwind APIs required by the amd64 ABI
1009 _SUNW_Unwind_DeleteException;
1010 _SUNW_Unwind_ForcedUnwind;
1011 _SUNW_Unwind_GetCFA;
1014 _SUNW_Unwind_GetLanguageSpecificData;
1015 _SUNW_Unwind_GetRegionStart;
1016 _SUNW_Unwind_RaiseException;
1017 _SUNW_Unwind_Resume;
1024 _Unwind_DeleteException;
1025 _Unwind_ForcedUnwind;
1029 _Unwind_GetLanguageSpecificData;
1030 _Unwind_GetRegionStart;
1031 _Unwind_RaiseException;
1038 SYMBOL_VERSION SUNW_1.21.3 { # SunOS 5.9 (Solaris 9) patch additions
1043 SYMBOL_VERSION SUNW_1.21.2 { # SunOS 5.9 (Solaris 9) patch additions
1065 SYMBOL_VERSION SUNW_1.21.1 { # SunOS 5.9 (Solaris 9) patch additions
1070 SYMBOL_VERSION SUNW_1.21 { # SunOS 5.9 (Solaris 9)
1074 bind_textdomain_codeset;
1092 _gethomelgroup { FLAGS = NODYNSORT };
1098 _lwp_cond_reltimedwait;
1110 pthread_cond_reltimedwait_np;
1111 rctlblk_get_enforced_value;
1112 rctlblk_get_firing_time;
1113 rctlblk_get_global_action;
1114 rctlblk_get_global_flags;
1115 rctlblk_get_local_action;
1116 rctlblk_get_local_flags;
1117 rctlblk_get_privilege;
1118 rctlblk_get_recipient_pid;
1120 rctlblk_set_local_action;
1121 rctlblk_set_local_flags;
1122 rctlblk_set_privilege;
1153 SYMBOL_VERSION SUNW_1.20.4 { # SunOS 5.8 (Solaris 8) patch additions
1159 SYMBOL_VERSION SUNW_1.20.1 { # SunOS 5.8 (Solaris 8) patch additions
1183 SYMBOL_VERSION SUNW_1.20 { # SunOS 5.8 (Solaris 8)
1189 SYMBOL_VERSION SUNW_1.19 {
1197 SYMBOL_VERSION SUNW_1.18.1 {
1202 SYMBOL_VERSION SUNW_1.18 { # SunOS 5.7 (Solaris 7)
1226 pthread_attr_getguardsize;
1227 pthread_attr_setguardsize;
1228 pthread_getconcurrency;
1229 pthread_mutexattr_gettype;
1230 pthread_mutexattr_settype;
1231 pthread_rwlockattr_destroy;
1232 pthread_rwlockattr_getpshared;
1233 pthread_rwlockattr_init;
1234 pthread_rwlockattr_setpshared;
1235 pthread_rwlock_destroy;
1236 pthread_rwlock_init;
1237 pthread_rwlock_rdlock;
1238 pthread_rwlock_tryrdlock;
1239 pthread_rwlock_trywrlock;
1240 pthread_rwlock_unlock;
1241 pthread_rwlock_wrlock;
1242 pthread_setconcurrency;
1266 # The empty versions SUNW_1.2 through SUNW_1.17 must be preserved because
1267 # applications built on Solaris 2.6 Beta (when they did contain symbols)
1268 # may depend on them. All symbol content for SunOS 5.6 is now in SUNW_1.1
1270 SYMBOL_VERSION SUNW_1.17 {
1275 SYMBOL_VERSION SUNW_1.16 {
1280 SYMBOL_VERSION SUNW_1.15 {
1285 SYMBOL_VERSION SUNW_1.14 {
1290 SYMBOL_VERSION SUNW_1.13 {
1295 SYMBOL_VERSION SUNW_1.12 {
1300 SYMBOL_VERSION SUNW_1.11 {
1305 SYMBOL_VERSION SUNW_1.10 {
1310 SYMBOL_VERSION SUNW_1.9 {
1315 SYMBOL_VERSION SUNW_1.8 {
1320 SYMBOL_VERSION SUNW_1.7 {
1325 SYMBOL_VERSION SUNW_1.6 {
1330 SYMBOL_VERSION SUNW_1.5 {
1335 SYMBOL_VERSION SUNW_1.4 {
1340 SYMBOL_VERSION SUNW_1.3 {
1345 SYMBOL_VERSION SUNW_1.2 {
1350 SYMBOL_VERSION SUNW_1.1 { # SunOS 5.6 (Solaris 2.6)
1421 pthread_attr_destroy;
1422 pthread_attr_getdetachstate;
1423 pthread_attr_getinheritsched;
1424 pthread_attr_getschedparam;
1425 pthread_attr_getschedpolicy;
1426 pthread_attr_getscope;
1427 pthread_attr_getstackaddr;
1428 pthread_attr_getstacksize;
1430 pthread_attr_setdetachstate;
1431 pthread_attr_setinheritsched;
1432 pthread_attr_setschedparam;
1433 pthread_attr_setschedpolicy;
1434 pthread_attr_setscope;
1435 pthread_attr_setstackaddr;
1436 pthread_attr_setstacksize;
1438 __pthread_cleanup_pop;
1439 __pthread_cleanup_push;
1444 pthread_getschedparam;
1445 pthread_getspecific;
1452 pthread_setcancelstate;
1453 pthread_setcanceltype;
1454 pthread_setschedparam;
1455 pthread_setspecific;
1465 rwlock_destroy { FLAGS = NODYNSORT };
1466 _rwlock_destroy { FLAGS = NODYNSORT };
1475 sync_instruction_memory;
1576 _s_fcntl { FLAGS = NODYNSORT };
1594 SYMBOL_VERSION SUNW_0.9 { # SunOS 5.5 (Solaris 2.5)
1613 pthread_condattr_destroy;
1614 pthread_condattr_getpshared;
1615 pthread_condattr_init;
1616 pthread_condattr_setpshared;
1617 pthread_cond_broadcast;
1618 pthread_cond_destroy;
1620 pthread_cond_signal;
1621 pthread_cond_timedwait;
1623 pthread_mutexattr_destroy;
1624 pthread_mutexattr_getprioceiling;
1625 pthread_mutexattr_getprotocol;
1626 pthread_mutexattr_getpshared;
1627 pthread_mutexattr_init;
1628 pthread_mutexattr_setprioceiling;
1629 pthread_mutexattr_setprotocol;
1630 pthread_mutexattr_setpshared;
1631 pthread_mutex_destroy;
1632 pthread_mutex_getprioceiling;
1635 pthread_mutex_setprioceiling;
1636 pthread_mutex_trylock;
1637 pthread_mutex_unlock;
1659 SYMBOL_VERSION SUNW_0.8 { # SunOS 5.4 (Solaris 2.4)
1661 __xpg4 { FLAGS = NODIRECT };
1664 cond_broadcast { FLAGS = NODYNSORT };
1665 cond_destroy { FLAGS = NODYNSORT };
1667 cond_signal { FLAGS = NODYNSORT };
1679 mutex_destroy { FLAGS = NODYNSORT };
1681 mutex_lock { FLAGS = NODYNSORT };
1682 mutex_trylock { FLAGS = NODYNSORT };
1683 mutex_unlock { FLAGS = NODYNSORT };
1690 rw_rdlock { FLAGS = NODYNSORT };
1692 rw_tryrdlock { FLAGS = NODYNSORT };
1693 rw_trywrlock { FLAGS = NODYNSORT };
1694 rw_unlock { FLAGS = NODYNSORT };
1696 rw_wrlock { FLAGS = NODYNSORT };
1715 thr_self { FLAGS = NODYNSORT };
1728 SYMBOL_VERSION SUNW_0.7 { # SunOS 5.3 (Solaris 2.3)
1732 isnanf { TYPE = FUNCTION; FILTER = libm.so.2 };
1736 memalign { FLAGS = NODIRECT };
1737 modff { TYPE = FUNCTION; FILTER = libm.so.2 };
1738 nss_default_finders;
1751 valloc { FLAGS = NODIRECT };
1782 decimal_to_extended;
1783 decimal_to_quadruple;
1797 extended_to_decimal;
1808 fork1 { FLAGS = NODYNSORT };
1865 _lwp_cond_broadcast;
1867 _lwp_cond_timedwait;
1890 _mutex_held { FLAGS = NODYNSORT };
1891 _mutex_lock { FLAGS = NODYNSORT };
1894 _nss_XbyY_buf_alloc;
1896 __nsw_extended_action;
1920 quadruple_to_decimal;
1977 # Note: _syscall is also defined above. Here, we add the NODYNSORT
1978 # attribute to it. On this platform, it is an alias to syscall.
1979 # If that is changed, this lines should be removed.
1980 _syscall { FLAGS = NODYNSORT };
1983 # The 32-bit sparc ABI requires SISCD_2.3. On other platforms, those symbols
1984 # go directly into SUNW_0.7.
1988 SYMBOL_VERSION SISCD_2.3 {
1992 errno { FLAGS = NODIRECT };
2061 __umul64 { FLAGS = NODYNSORT }; # Same address as __mul64
2064 # On 32-bit platforms, the following symbols go into SYSVABI_1.3, but on
2065 # other platforms they go directly into the current version (which will be
2066 # either SUNW_0.7, or SISCD_2.3, depending on the similar issue described above.
2070 SYMBOL_VERSION SYSVABI_1.3 {
2075 calloc { FLAGS = NODIRECT };
2079 environ { FLAGS = NODIRECT };
2080 _environ { FLAGS = NODIRECT };
2081 free { FLAGS = NODIRECT };
2082 frexp { TYPE = FUNCTION; FILTER = libm.so.2 };
2090 isnan { TYPE = FUNCTION; FILTER = libm.so.2 };
2091 _isnan { TYPE = FUNCTION; FILTER = libm.so.2 };
2092 isnand { TYPE = FUNCTION; FILTER = libm.so.2 };
2093 _isnand { TYPE = FUNCTION; FILTER = libm.so.2 };
2094 ldexp { TYPE = FUNCTION; FILTER = libm.so.2 };
2095 logb { TYPE = FUNCTION; FILTER = libm.so.2 };
2096 malloc { FLAGS = NODIRECT };
2101 modf { TYPE = FUNCTION; FILTER = libm.so.2 };
2102 _modf { TYPE = FUNCTION; FILTER = libm.so.2 };
2103 nextafter { TYPE = FUNCTION; FILTER = libm.so.2 };
2104 _nextafter { TYPE = FUNCTION; FILTER = libm.so.2 };
2110 realloc { FLAGS = NODIRECT };
2111 scalb { TYPE = FUNCTION; FILTER = libm.so.2 };
2112 _scalb { TYPE = FUNCTION; FILTER = libm.so.2 };
2436 _setcontext { FLAGS = NODYNSORT };
2464 _sigaction { FLAGS = NODYNSORT };
2498 _sigsetjmp { FLAGS = NODYNSORT };
2646 # .stret4 and .stret8 are the same thing
2647 .stret8 { FLAGS = NODYNSORT };
2676 # __align_cpy_1 is an alias for memcpy. Filter it out of
2677 # the .SUNW_dynsymsort section
2678 __align_cpy_1 { FLAGS = NODYNSORT };
2682 # __align_cpy_8 is same as __align_cpy_16
2683 __align_cpy_8 { FLAGS = NODYNSORT };
2712 __sparc_utrap_install;
2715 # On amd64, we also have SYSVABI_1.3, but it contains a small subset of
2716 # the symbols put in that version on other platforms.
2720 SYMBOL_VERSION SYSVABI_1.3 {
2748 # There should never be more than one SUNWprivate version.
2749 # Don't add any more. Add new private symbols to SUNWprivate_1.1
2751 SYMBOL_VERSION SUNWprivate_1.1 {
2753 ___Argv { FLAGS = NODIRECT };
2754 cfree { FLAGS = NODIRECT };
2757 __environ_lock { FLAGS = NODIRECT };
2761 _isnanf { TYPE = FUNCTION; FILTER = libm.so.2 };
2764 _lib_version { FLAGS = NODIRECT };
2765 _logb { TYPE = FUNCTION; FILTER = libm.so.2 };
2766 _lone { FLAGS = NODYNSORT };
2767 _lten { FLAGS = NODYNSORT };
2768 _lzero { FLAGS = NODYNSORT };
2771 _memcpy { FLAGS = NODYNSORT };
2774 _modff { TYPE = FUNCTION; FILTER = libm.so.2 };
2785 _nss_default_finders;
2786 __progname { FLAGS = NODIRECT };
2789 __strdupa_str { FLAGS = NODIRECT };
2790 __strdupa_len { FLAGS = NODIRECT };
2793 thr_probe_getfunc_addr;
2797 __xpg6 { FLAGS = NODIRECT };
2799 # FIXME: these data symbols originally from libnsl are marked private
2800 # (at least) until we get a name for our OS
2803 h_errno { FLAGS = NODIRECT };
2810 __key_decryptsession_pk_LOCAL;
2811 __key_encryptsession_pk_LOCAL;
2818 _svc_getreqset_proc;
2825 _dladdr { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2826 _dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2827 _dlclose { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2828 _dldump { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2829 _dlerror { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2830 _dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2831 _dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2832 _dlopen { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2833 _dlsym { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2834 _ld_libc { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2838 _sys_nerr { FLAGS = NODYNSORT };
2841 _dladdr { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2842 _dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2843 _dlclose { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2844 _dldump { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2845 _dlerror { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2846 _dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2847 _dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2848 _dlopen { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2849 _dlsym { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2850 _ld_libc { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2852 _dladdr { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2853 _dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2854 _dlamd64getunwind { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2855 _dlclose { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2856 _dldump { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2857 _dlerror { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2858 _dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2859 _dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2860 _dlopen { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2861 _dlsym { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2862 _ld_libc { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2864 $error unknown platform
2890 core_get_default_content;
2891 core_get_default_path;
2892 core_get_global_content;
2893 core_get_global_path;
2895 core_get_process_content;
2896 core_get_process_path;
2897 core_set_default_content;
2898 core_set_default_path;
2899 core_set_global_content;
2900 core_set_global_path;
2902 core_set_process_content;
2903 core_set_process_path;
2951 _get_exit_frame_monitor;
2962 __idmap_flush_kcache;
2978 _lgrp_home_fast { FLAGS = NODYNSORT };
2994 _mutex_destroy { FLAGS = NODYNSORT };
2998 _mutex_init { FLAGS = NODYNSORT };
2999 _mutex_unlock { FLAGS = NODYNSORT };
3004 __nis_get_environment;
3005 _nss_db_state_destr;
3006 nss_default_key2str;
3011 _nss_initf_netgroup;
3014 nss_packed_arg_init;
3015 nss_packed_context_init;
3017 nss_packed_set_status;
3022 __nsw_extended_action_v1;
3023 __nsw_freeconfig_v1;
3034 pthread_attr_getdaemonstate_np;
3035 pthread_attr_setdaemonstate_np;
3036 _pthread_setcleanupinit;
3050 secflags_difference;
3052 secflags_intersection;
3056 secflags_issuperset;
3061 psecflags_validate_delta;
3069 set_setcontext_enforcement;
3103 __strptime_dontzero;
3108 thr_continue_allmutators;
3109 _thr_continue_allmutators;
3110 thr_continue_mutator;
3111 _thr_continue_mutator;
3114 thr_mutators_barrier;
3115 _thr_mutators_barrier;
3125 thr_suspend_allmutators;
3126 _thr_suspend_allmutators;
3127 thr_suspend_mutator;
3128 _thr_suspend_mutator;
3154 _uncached_getgrgid_r;
3155 _uncached_getgrnam_r;
3156 _uncached_getpwnam_r;
3157 _uncached_getpwuid_r;
3177 zone_check_datalink;
3186 zone_remove_datalink;
3292 # The following functions should not be exported from libc,
3293 # but /lib/libm.so.2, some older versions of the Studio
3294 # compiler/debugger components, and some ancient programs
3295 # found in /usr/dist reference them. When we no longer
3296 # care about these old and broken binary objects, these
3297 # symbols should be deleted.
3298 _brk { FLAGS = NODYNSORT };
3299 _cond_broadcast { FLAGS = NODYNSORT };
3300 _cond_init { FLAGS = NODYNSORT };
3301 _cond_signal { FLAGS = NODYNSORT };
3302 _cond_wait { FLAGS = NODYNSORT };
3303 _ecvt { FLAGS = NODYNSORT };
3304 _fcvt { FLAGS = NODYNSORT };
3305 _getc_unlocked { FLAGS = NODYNSORT };
3306 _llseek { FLAGS = NODYNSORT };
3307 _pthread_attr_getdetachstate { FLAGS = NODYNSORT };
3308 _pthread_attr_getinheritsched { FLAGS = NODYNSORT };
3309 _pthread_attr_getschedparam { FLAGS = NODYNSORT };
3310 _pthread_attr_getschedpolicy { FLAGS = NODYNSORT };
3311 _pthread_attr_getscope { FLAGS = NODYNSORT };
3312 _pthread_attr_getstackaddr { FLAGS = NODYNSORT };
3313 _pthread_attr_getstacksize { FLAGS = NODYNSORT };
3314 _pthread_attr_init { FLAGS = NODYNSORT };
3315 _pthread_condattr_getpshared { FLAGS = NODYNSORT };
3316 _pthread_condattr_init { FLAGS = NODYNSORT };
3317 _pthread_cond_init { FLAGS = NODYNSORT };
3318 _pthread_create { FLAGS = NODYNSORT };
3319 _pthread_getschedparam { FLAGS = NODYNSORT };
3320 _pthread_join { FLAGS = NODYNSORT };
3321 _pthread_key_create { FLAGS = NODYNSORT };
3322 _pthread_mutexattr_getprioceiling { FLAGS = NODYNSORT };
3323 _pthread_mutexattr_getprotocol { FLAGS = NODYNSORT };
3324 _pthread_mutexattr_getpshared { FLAGS = NODYNSORT };
3325 _pthread_mutexattr_init { FLAGS = NODYNSORT };
3326 _pthread_mutex_getprioceiling { FLAGS = NODYNSORT };
3327 _pthread_mutex_init { FLAGS = NODYNSORT };
3328 _pthread_sigmask { FLAGS = NODYNSORT };
3329 _rwlock_init { FLAGS = NODYNSORT };
3330 _rw_rdlock { FLAGS = NODYNSORT };
3331 _rw_unlock { FLAGS = NODYNSORT };
3332 _rw_wrlock { FLAGS = NODYNSORT };
3333 _sbrk_unlocked { FLAGS = NODYNSORT };
3334 _select { FLAGS = NODYNSORT };
3335 _sema_init { FLAGS = NODYNSORT };
3336 _sema_post { FLAGS = NODYNSORT };
3337 _sema_trywait { FLAGS = NODYNSORT };
3338 _sema_wait { FLAGS = NODYNSORT };
3339 _sysfs { FLAGS = NODYNSORT };
3340 _thr_create { FLAGS = NODYNSORT };
3341 _thr_exit { FLAGS = NODYNSORT };
3342 _thr_getprio { FLAGS = NODYNSORT };
3343 _thr_getspecific { FLAGS = NODYNSORT };
3344 _thr_join { FLAGS = NODYNSORT };
3345 _thr_keycreate { FLAGS = NODYNSORT };
3346 _thr_kill { FLAGS = NODYNSORT };
3347 _thr_main { FLAGS = NODYNSORT };
3348 _thr_self { FLAGS = NODYNSORT };
3349 _thr_setspecific { FLAGS = NODYNSORT };
3350 _thr_sigsetmask { FLAGS = NODYNSORT };
3351 _thr_stksegment { FLAGS = NODYNSORT };
3352 _ungetc_unlocked { FLAGS = NODYNSORT };
3354 # FIXME: pending a name for our OS, these symbols originally from libsocket are
3361 getipv4sourcefilter;
3363 setipv4sourcefilter;
3446 # These were private in libsocket and should stay that way in libc:
3451 _nss_initf_netmasks;
3453 _nss_initf_services;
3463 bootparams_getbyname;
3465 # FIXME: pending a name for our OS, these symbols originally from libnsl are
3471 getipsecprotobyname;
3473 svc_fd_negotiate_ucred;
3492 clnt_create_vers_timed;
3496 rpc_gss_get_mechanisms;
3497 rpc_gss_get_mech_info;
3498 rpc_gss_get_principal_name;
3499 rpc_gss_get_versions;
3500 rpc_gss_is_installed;
3501 rpc_gss_max_data_length;
3502 rpc_gss_mech_to_oid;
3505 rpc_gss_set_callback;
3506 rpc_gss_set_defaults;
3507 rpc_gss_set_svc_name;
3508 rpc_gss_svc_max_data_length;
3538 clnt_tp_create_timed;
3577 key_secretkey_is_set;
3588 nis_local_directory;
3640 yp_get_default_domain;
3658 authsys_create_default;
3787 # These were private in libnsl and should stay that way in libc:
3788 clnt_create_service_timed;
3790 _build_internal_algs;
3793 _create_daemon_lock;
3797 _real_getipsecprotos;
3799 _str_to_ipsec_exec_mode;
3802 key_removesecret_g_ruid;
3803 key_secretkey_is_set_g_ruid;
3831 __nis_netconfig_matches_ep;
3833 __rpc_bindresvport_ipv6;
3843 _switch_getipnodebyaddr_r;
3844 _switch_getipnodebyname_r;
3845 _uncached_getipnodebyaddr;
3846 _uncached_getipnodebyname;
3848 __yp_first_cflookup;
3849 __yp_match_cflookup;
3850 __yp_match_rsvdport_cflookup;
3857 __clnt_create_loopback;
3864 _get_hostserv_inetnetdir_byaddr;
3865 _get_hostserv_inetnetdir_byname;
3867 __getpublickey_cached;
3868 __getpublickey_cached_g;
3869 __getpublickey_flush;
3870 __getpublickey_flush_g;
3875 __inet_address_count;
3876 __inet_free_local_interfaces;
3878 __inet_get_local_interfaces;
3879 __inet_get_networka;
3881 __inet_uaddr_is_local;
3883 key_decryptsession_g;
3884 key_decryptsession_pk;
3885 key_decryptsession_pk_g;
3886 key_encryptsession_g;
3887 key_encryptsession_pk;
3888 key_encryptsession_pk_g;
3893 key_secretkey_is_set_g;
3899 __netdir_getbyaddr_nosrv;
3900 __nis_authtype2mechalias;
3902 __nis_dhext_extract_pkey;
3903 __nis_get_mechanism_library;
3904 __nis_get_mechanisms;
3905 __nis_get_mechanism_symbol;
3906 nis_get_static_storage;
3907 __nis_gssprin2netname;
3908 __nis_keyalg2authtype;
3909 __nis_keyalg2mechalias;
3910 __nis_mechalias2authtype;
3911 __nis_mechname2alias;
3913 __nis_release_mechanisms;
3915 __nis_translate_mechanism;
3931 __rpc_get_default_domain;
3932 __rpc_get_local_uid;
3935 __rpc_negotiate_uid;
3936 __rpc_select_to_poll;
3938 __rpc_timeval_to_msec;
3939 __rpc_tli_set_options;
3948 __svc_set_proc_cleanup_cb;
3950 __svc_vc_dupcache_init;
3954 _switch_gethostbyaddr_r;
3955 _switch_gethostbyname_r;
3956 _uncached_gethostbyaddr_r;
3957 _uncached_gethostbyname_r;
4005 xdr_rpcb_entry_list_ptr;
4008 xdr_rpcb_rmtcallargs;
4009 xdr_rpcb_rmtcallres;
4011 xdr_rpcbs_addrlist_ptr;
4013 xdr_rpcbs_rmtcalllist;
4014 xdr_rpcbs_rmtcalllist_ptr;
4016 xdr_rpcb_stat_byvers;
4029 xdr_ypbind_resptype;
4033 xdr_ypdomain_wrap_string;
4035 xdr_ypmap_wrap_string;
4036 xdr_ypowner_wrap_string;
4051 ypbindproc_domain_3;
4052 __yp_clnt_create_rsvdport;
4054 __yp_master_rsvdport;
4057 # End libnsl/libsocket symbols
4058 # FIXME: new symbols for our OS, but here pending a name.
4083 # FIXME: new symbols for our OS, but here pending a name.
4084 reallocarray { FLAGS = NODIRECT };
4085 recallocarray { FLAGS = NODIRECT };
4086 freezero { FLAGS = NODIRECT };
4089 __imax_lldiv { FLAGS = NODYNSORT };
4090 _ti_thr_self { FLAGS = NODYNSORT };
4094 _seekdir64 { FLAGS = NODYNSORT };
4095 _telldir64 { FLAGS = NODYNSORT };
4099 __cerror { FLAGS = NODYNSORT };
4103 __cerror64 { FLAGS = NODYNSORT };
4107 __cleanup { FLAGS = NODYNSORT };
4111 _syscall6 { FLAGS = NODYNSORT };
4112 __systemcall6 { FLAGS = NODYNSORT };
4116 ___tls_get_addr { FLAGS = NODYNSORT };