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]
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 2015 Garrett D'Amore <garrett@damore.org>
30 # Copyright 2022 OmniOS Community Edition (OmniOSce) Association.
31 # Copyright 2024 Oxide Computer Company
35 # MAPFILE HEADER START
37 # WARNING: STOP NOW. DO NOT MODIFY THIS FILE.
38 # Object versioning must comply with the rules detailed in
40 # usr/src/lib/README.mapfiles
42 # You should not be making modifications here until you've read the most current
43 # copy of that file. If you need help, contact a gatekeeper for guidance.
51 # All function names added to this or any other libc mapfile
52 # must be placed under the 'protected:' designation.
53 # The 'global:' designation is used *only* for data
54 # items and for the members of the malloc() family.
57 # Mnemonic conditional input identifiers:
59 # - amd64, i386, sparc32, sparcv9: Correspond to ISA subdirectories used to
60 # hold per-platform code. Note however that we use 'sparc32' instead of
61 # 'sparc'. Since '_sparc' is predefined to apply to, all sparc platforms,
62 # naming the 32-bit version 'sparc' would be too likely to cause errors.
64 # - lf64: Defined on platforms that offer the 32-bit largefile APIs
82 SYMBOL_VERSION ILLUMOS_0.45 {
88 SYMBOL_VERSION ILLUMOS_0.44 {
93 SYMBOL_VERSION ILLUMOS_0.43 {
99 SYMBOL_VERSION ILLUMOS_0.42 {
104 SYMBOL_VERSION ILLUMOS_0.41 {
112 SYMBOL_VERSION ILLUMOS_0.40 {
120 SYMBOL_VERSION ILLUMOS_0.39 {
125 SYMBOL_VERSION ILLUMOS_0.38 {
130 SYMBOL_VERSION ILLUMOS_0.37 {
142 SYMBOL_VERSION ILLUMOS_0.36 {
147 SYMBOL_VERSION ILLUMOS_0.35 {
152 SYMBOL_VERSION ILLUMOS_0.34 {
158 SYMBOL_VERSION ILLUMOS_0.33 {
166 SYMBOL_VERSION ILLUMOS_0.32 {
173 SYMBOL_VERSION ILLUMOS_0.31 {
178 SYMBOL_VERSION ILLUMOS_0.30 {
183 SYMBOL_VERSION ILLUMOS_0.29 {
188 SYMBOL_VERSION ILLUMOS_0.28 {
190 pthread_attr_getname_np;
191 pthread_attr_setname_np;
198 SYMBOL_VERSION ILLUMOS_0.27 { # memset_s(3C) and set_constraint_handler_s(3C)
203 set_constraint_handler_s;
206 SYMBOL_VERSION ILLUMOS_0.26 { # fts(3) LFS
217 SYMBOL_VERSION ILLUMOS_0.25 { # inet_* moved from libnsl/libsocket
231 SYMBOL_VERSION ILLUMOS_0.24 { # openbsd compat
237 SYMBOL_VERSION ILLUMOS_0.23 { # openbsd compat
248 SYMBOL_VERSION ILLUMOS_0.22 { # endian(3C)
270 SYMBOL_VERSION ILLUMOS_0.21 {
275 SYMBOL_VERSION ILLUMOS_0.20 { # C11
308 SYMBOL_VERSION ILLUMOS_0.19 { # flock
313 SYMBOL_VERSION ILLUMOS_0.18 { # signalfd
318 SYMBOL_VERSION ILLUMOS_0.17 { # glob(3C) LFS
326 SYMBOL_VERSION ILLUMOS_0.16 { # timerfd
333 SYMBOL_VERSION ILLUMOS_0.15 { # epoll(3C)
342 SYMBOL_VERSION ILLUMOS_0.14 { # strerror_l
347 SYMBOL_VERSION ILLUMOS_0.13 { # eventfd
354 SYMBOL_VERSION ILLUMOS_0.12 { # arc4random and friends
363 SYMBOL_VERSION ILLUMOS_0.11 { # illumos additions
369 SYMBOL_VERSION ILLUMOS_0.10 { # illumos additions
380 SYMBOL_VERSION ILLUMOS_0.9 {
386 SYMBOL_VERSION ILLUMOS_0.8 { # POSIX 2008 newlocale and friends
468 SYMBOL_VERSION ILLUMOS_0.7 { # illumos additions
474 SYMBOL_VERSION ILLUMOS_0.6 { # illumos additions
481 SYMBOL_VERSION ILLUMOS_0.5 { # common C++ ABI exit handlers
487 SYMBOL_VERSION ILLUMOS_0.4 { # illumos additions
500 SYMBOL_VERSION ILLUMOS_0.3 { # illumos additions
505 SYMBOL_VERSION ILLUMOS_0.2 { # illumos additions
510 SYMBOL_VERSION ILLUMOS_0.1 { # illumos additions
515 SYMBOL_VERSION SUNW_1.23 { # SunOS 5.11 (Solaris 11)
517 _nl_domain_bindings {
533 FILTER = /usr/lib/ld.so.1;
538 FILTER = /usr/lib/sparcv9/ld.so.1;
543 FILTER = /usr/lib/amd64/ld.so.1;
546 $error unknown platform
572 backtrace_symbols_fd;
573 canonicalize_file_name;
632 mq_reltimedreceive_np;
647 posix_spawn_file_actions_addclosefrom_np;
648 posix_spawnattr_getsigignore_np;
649 posix_spawnattr_setsigignore_np;
652 pthread_key_create_once_np;
653 pthread_mutexattr_getrobust;
654 pthread_mutexattr_setrobust;
655 pthread_mutex_consistent;
658 sched_get_priority_max;
659 sched_get_priority_min;
661 sched_rr_get_interval;
741 SYMBOL_VERSION SUNW_1.22.7 { # s10u10 - SunOS 5.10 (Solaris 10) patch additions
746 SYMBOL_VERSION SUNW_1.22.6 { # s10u9 - SunOS 5.10 (Solaris 10) patch additions
752 SYMBOL_VERSION SUNW_1.22.5 { # s10u8 - SunOS 5.10 (Solaris 10) patch additions
757 SYMBOL_VERSION SUNW_1.22.4 { # s10u7 - SunOS 5.10 (Solaris 10) patch additions
762 SYMBOL_VERSION SUNW_1.22.3 { # SunOS 5.10 (Solaris 10) patch additions
770 SYMBOL_VERSION SUNW_1.22.2 { # SunOS 5.10 (Solaris 10) patch additions
777 SYMBOL_VERSION SUNW_1.22.1 { # SunOS 5.10 (Solaris 10) patch additions
781 atomic_add_char { FLAGS = NODYNSORT; };
782 atomic_add_char_nv { FLAGS = NODYNSORT; };
783 atomic_add_int { FLAGS = NODYNSORT; };
784 atomic_add_int_nv { FLAGS = NODYNSORT; };
785 atomic_add_ptr { FLAGS = NODYNSORT; };
786 atomic_add_ptr_nv { FLAGS = NODYNSORT; };
787 atomic_add_short { FLAGS = NODYNSORT; };
788 atomic_add_short_nv { FLAGS = NODYNSORT; };
796 atomic_and_uchar { FLAGS = NODYNSORT; };
797 atomic_and_uchar_nv { FLAGS = NODYNSORT; };
798 atomic_and_uint_nv { FLAGS = NODYNSORT; };
799 atomic_and_ulong { FLAGS = NODYNSORT; };
800 atomic_and_ulong_nv { FLAGS = NODYNSORT; };
801 atomic_and_ushort { FLAGS = NODYNSORT; };
802 atomic_and_ushort_nv { FLAGS = NODYNSORT; };
807 atomic_cas_ptr { FLAGS = NODYNSORT; };
808 atomic_cas_uchar { FLAGS = NODYNSORT; };
809 atomic_cas_uint { FLAGS = NODYNSORT; };
810 atomic_cas_ulong { FLAGS = NODYNSORT; };
811 atomic_cas_ushort { FLAGS = NODYNSORT; };
812 atomic_clear_long_excl { FLAGS = NODYNSORT; };
821 atomic_dec_uchar { FLAGS = NODYNSORT; };
822 atomic_dec_uchar_nv { FLAGS = NODYNSORT; };
823 atomic_dec_uint { FLAGS = NODYNSORT; };
824 atomic_dec_uint_nv { FLAGS = NODYNSORT; };
825 atomic_dec_ulong { FLAGS = NODYNSORT; };
826 atomic_dec_ulong_nv { FLAGS = NODYNSORT; };
827 atomic_dec_ushort { FLAGS = NODYNSORT; };
828 atomic_dec_ushort_nv { FLAGS = NODYNSORT; };
837 atomic_inc_uchar { FLAGS = NODYNSORT; };
838 atomic_inc_uchar_nv { FLAGS = NODYNSORT; };
839 atomic_inc_uint { FLAGS = NODYNSORT; };
840 atomic_inc_uint_nv { FLAGS = NODYNSORT; };
841 atomic_inc_ulong { FLAGS = NODYNSORT; };
842 atomic_inc_ulong_nv { FLAGS = NODYNSORT; };
843 atomic_inc_ushort { FLAGS = NODYNSORT; };
844 atomic_inc_ushort_nv { FLAGS = NODYNSORT; };
852 atomic_or_uchar { FLAGS = NODYNSORT; };
853 atomic_or_uchar_nv { FLAGS = NODYNSORT; };
854 atomic_or_uint_nv { FLAGS = NODYNSORT; };
855 atomic_or_ulong { FLAGS = NODYNSORT; };
856 atomic_or_ulong_nv { FLAGS = NODYNSORT; };
857 atomic_or_ushort { FLAGS = NODYNSORT; };
858 atomic_or_ushort_nv { FLAGS = NODYNSORT; };
859 atomic_set_long_excl { FLAGS = NODYNSORT; };
864 atomic_swap_ptr { FLAGS = NODYNSORT; };
865 atomic_swap_uchar { FLAGS = NODYNSORT; };
866 atomic_swap_uint { FLAGS = NODYNSORT; };
867 atomic_swap_ulong { FLAGS = NODYNSORT; };
868 atomic_swap_ushort { FLAGS = NODYNSORT; };
875 enable_extended_FILE_stdio;
879 # Note: atomic_[and,dec,inc,or]_64_nv are also defined above. Here,
880 # we add the NODYNSORT attribute to them. On this platform, they are
881 # aliases for the non-_nv versions. If that is changed, these lines
883 atomic_and_64_nv { FLAGS = NODYNSORT; };
884 atomic_dec_64_nv { FLAGS = NODYNSORT; };
885 atomic_inc_64_nv { FLAGS = NODYNSORT; };
886 atomic_or_64_nv { FLAGS = NODYNSORT; };
889 # Note: atomic_OP_WIDTH_nv symbols are also defined above. Here,
890 # we add the NODYNSORT attribute to them. On this platform, they are
891 # aliases for the non-_nv versions. If that is changed, these lines
893 atomic_add_8_nv { FLAGS = NODYNSORT; };
894 atomic_and_8_nv { FLAGS = NODYNSORT; };
895 atomic_and_16_nv { FLAGS = NODYNSORT; };
896 atomic_and_32_nv { FLAGS = NODYNSORT; };
897 atomic_and_64_nv { FLAGS = NODYNSORT; };
898 atomic_dec_8_nv { FLAGS = NODYNSORT; };
899 atomic_dec_16_nv { FLAGS = NODYNSORT; };
900 atomic_dec_32_nv { FLAGS = NODYNSORT; };
901 atomic_dec_64_nv { FLAGS = NODYNSORT; };
902 atomic_inc_8_nv { FLAGS = NODYNSORT; };
903 atomic_inc_16_nv { FLAGS = NODYNSORT; };
904 atomic_inc_32_nv { FLAGS = NODYNSORT; };
905 atomic_inc_64_nv { FLAGS = NODYNSORT; };
906 atomic_or_8_nv { FLAGS = NODYNSORT; };
907 atomic_or_16_nv { FLAGS = NODYNSORT; };
908 atomic_or_32_nv { FLAGS = NODYNSORT; };
909 atomic_or_64_nv { FLAGS = NODYNSORT; };
913 SYMBOL_VERSION SUNW_1.22 { # SunOS 5.10 (Solaris 10)
916 dladdr { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1; };
917 dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1; };
918 dlclose { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1; };
919 dldump { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1; };
920 dlerror { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1; };
921 dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1; };
922 dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1; };
923 dlopen { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1; };
924 dlsym { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1; };
926 dladdr { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1; };
927 dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1; };
928 dlclose { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1; };
929 dldump { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1; };
930 dlerror { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1; };
931 dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1; };
932 dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1; };
933 dlopen { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1; };
934 dlsym { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1; };
936 dladdr { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1; };
937 dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1; };
940 FILTER = /usr/lib/amd64/ld.so.1;
942 dlclose { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1; };
943 dldump { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1; };
944 dlerror { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1; };
945 dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1; };
946 dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1; };
947 dlopen { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1; };
948 dlsym { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1; };
950 $error unknown platform
962 atomic_add_long { FLAGS = NODYNSORT; };
963 atomic_add_long_nv { FLAGS = NODYNSORT; };
965 atomic_and_uint { FLAGS = NODYNSORT; };
967 atomic_or_uint { FLAGS = NODYNSORT; };
1002 posix_spawnattr_destroy;
1003 posix_spawnattr_getflags;
1004 posix_spawnattr_getpgroup;
1005 posix_spawnattr_getschedparam;
1006 posix_spawnattr_getschedpolicy;
1007 posix_spawnattr_getsigdefault;
1008 posix_spawnattr_getsigmask;
1009 posix_spawnattr_init;
1010 posix_spawnattr_setflags;
1011 posix_spawnattr_setpgroup;
1012 posix_spawnattr_setschedparam;
1013 posix_spawnattr_setschedpolicy;
1014 posix_spawnattr_setsigdefault;
1015 posix_spawnattr_setsigmask;
1016 posix_spawn_file_actions_addclose;
1017 posix_spawn_file_actions_adddup2;
1018 posix_spawn_file_actions_addopen;
1019 posix_spawn_file_actions_destroy;
1020 posix_spawn_file_actions_init;
1046 __priv_getsetbyname;
1079 pthread_attr_getstack;
1080 pthread_attr_setstack;
1081 pthread_barrierattr_destroy;
1082 pthread_barrierattr_getpshared;
1083 pthread_barrierattr_init;
1084 pthread_barrierattr_setpshared;
1085 pthread_barrier_destroy;
1086 pthread_barrier_init;
1087 pthread_barrier_wait;
1088 pthread_condattr_getclock;
1089 pthread_condattr_setclock;
1090 pthread_mutexattr_getrobust_np { FLAGS = NODYNSORT; };
1091 pthread_mutexattr_setrobust_np { FLAGS = NODYNSORT; };
1092 pthread_mutex_consistent_np { FLAGS = NODYNSORT; };
1093 pthread_mutex_reltimedlock_np;
1094 pthread_mutex_timedlock;
1095 pthread_rwlock_reltimedrdlock_np;
1096 pthread_rwlock_reltimedwrlock_np;
1097 pthread_rwlock_timedrdlock;
1098 pthread_rwlock_timedwrlock;
1099 pthread_setschedprio;
1100 pthread_spin_destroy;
1103 pthread_spin_trylock;
1104 pthread_spin_unlock;
1105 rctlblk_set_recipient_pid;
1164 pselect_large_fdset;
1174 # Note: atomic_add_[16,32,64]_nv are also defined above. Here, we add
1175 # the NODYNSORT attribute to them. On this platform, they are aliases
1176 # for the non-_nv versions. If that is changed, these lines should be
1178 atomic_add_16_nv { FLAGS = NODYNSORT; };
1179 atomic_add_32_nv { FLAGS = NODYNSORT; };
1180 atomic_add_64_nv { FLAGS = NODYNSORT; };
1184 # Note: atomic_add_64_nv is also defined above. Here, we add the
1185 # NODYNSORT attribute to it. On this platform, it is an aliases for
1186 # atomic_add_64. If that is changed, this line should be removed.
1187 atomic_add_64_nv { FLAGS = NODYNSORT; };
1191 # Exception unwind APIs required by the amd64 ABI
1192 _SUNW_Unwind_DeleteException;
1193 _SUNW_Unwind_ForcedUnwind;
1194 _SUNW_Unwind_GetCFA;
1197 _SUNW_Unwind_GetLanguageSpecificData;
1198 _SUNW_Unwind_GetRegionStart;
1199 _SUNW_Unwind_RaiseException;
1200 _SUNW_Unwind_Resume;
1227 _Unwind_DeleteException;
1228 _Unwind_ForcedUnwind;
1232 _Unwind_GetLanguageSpecificData;
1233 _Unwind_GetRegionStart;
1234 _Unwind_RaiseException;
1241 SYMBOL_VERSION SUNW_1.21.3 { # SunOS 5.9 (Solaris 9) patch additions
1246 SYMBOL_VERSION SUNW_1.21.2 { # SunOS 5.9 (Solaris 9) patch additions
1268 SYMBOL_VERSION SUNW_1.21.1 { # SunOS 5.9 (Solaris 9) patch additions
1273 SYMBOL_VERSION SUNW_1.21 { # SunOS 5.9 (Solaris 9)
1277 bind_textdomain_codeset;
1296 _gethomelgroup { FLAGS = NODYNSORT; };
1302 _lwp_cond_reltimedwait;
1315 pthread_cond_reltimedwait_np;
1316 rctlblk_get_enforced_value;
1317 rctlblk_get_firing_time;
1318 rctlblk_get_global_action;
1319 rctlblk_get_global_flags;
1320 rctlblk_get_local_action;
1321 rctlblk_get_local_flags;
1322 rctlblk_get_privilege;
1323 rctlblk_get_recipient_pid;
1325 rctlblk_set_local_action;
1326 rctlblk_set_local_flags;
1327 rctlblk_set_privilege;
1360 SYMBOL_VERSION SUNW_1.20.4 { # SunOS 5.8 (Solaris 8) patch additions
1366 SYMBOL_VERSION SUNW_1.20.1 { # SunOS 5.8 (Solaris 8) patch additions
1390 SYMBOL_VERSION SUNW_1.20 { # SunOS 5.8 (Solaris 8)
1396 SYMBOL_VERSION SUNW_1.19 {
1404 SYMBOL_VERSION SUNW_1.18.1 {
1409 SYMBOL_VERSION SUNW_1.18 { # SunOS 5.7 (Solaris 7)
1431 pthread_attr_getguardsize;
1432 pthread_attr_setguardsize;
1433 pthread_getconcurrency;
1434 pthread_mutexattr_gettype;
1435 pthread_mutexattr_settype;
1436 pthread_rwlockattr_destroy;
1437 pthread_rwlockattr_getpshared;
1438 pthread_rwlockattr_init;
1439 pthread_rwlockattr_setpshared;
1440 pthread_rwlock_destroy;
1441 pthread_rwlock_init;
1442 pthread_rwlock_rdlock;
1443 pthread_rwlock_tryrdlock;
1444 pthread_rwlock_trywrlock;
1445 pthread_rwlock_unlock;
1446 pthread_rwlock_wrlock;
1447 pthread_setconcurrency;
1471 # The empty versions SUNW_1.2 through SUNW_1.17 must be preserved because
1472 # applications built on Solaris 2.6 Beta (when they did contain symbols)
1473 # may depend on them. All symbol content for SunOS 5.6 is now in SUNW_1.1
1475 SYMBOL_VERSION SUNW_1.17 {
1480 SYMBOL_VERSION SUNW_1.16 {
1485 SYMBOL_VERSION SUNW_1.15 {
1490 SYMBOL_VERSION SUNW_1.14 {
1495 SYMBOL_VERSION SUNW_1.13 {
1500 SYMBOL_VERSION SUNW_1.12 {
1505 SYMBOL_VERSION SUNW_1.11 {
1510 SYMBOL_VERSION SUNW_1.10 {
1515 SYMBOL_VERSION SUNW_1.9 {
1520 SYMBOL_VERSION SUNW_1.8 {
1525 SYMBOL_VERSION SUNW_1.7 {
1530 SYMBOL_VERSION SUNW_1.6 {
1535 SYMBOL_VERSION SUNW_1.5 {
1540 SYMBOL_VERSION SUNW_1.4 {
1545 SYMBOL_VERSION SUNW_1.3 {
1550 SYMBOL_VERSION SUNW_1.2 {
1555 SYMBOL_VERSION SUNW_1.1 { # SunOS 5.6 (Solaris 2.6)
1631 pthread_attr_destroy;
1632 pthread_attr_getdetachstate;
1633 pthread_attr_getinheritsched;
1634 pthread_attr_getschedparam;
1635 pthread_attr_getschedpolicy;
1636 pthread_attr_getscope;
1637 pthread_attr_getstackaddr;
1638 pthread_attr_getstacksize;
1640 pthread_attr_setdetachstate;
1641 pthread_attr_setinheritsched;
1642 pthread_attr_setschedparam;
1643 pthread_attr_setschedpolicy;
1644 pthread_attr_setscope;
1645 pthread_attr_setstackaddr;
1646 pthread_attr_setstacksize;
1648 __pthread_cleanup_pop;
1649 __pthread_cleanup_push;
1654 pthread_getschedparam;
1655 pthread_getspecific;
1662 pthread_setcancelstate;
1663 pthread_setcanceltype;
1664 pthread_setschedparam;
1665 pthread_setspecific;
1675 rwlock_destroy { FLAGS = NODYNSORT; };
1676 _rwlock_destroy { FLAGS = NODYNSORT; };
1685 sync_instruction_memory;
1793 _s_fcntl { FLAGS = NODYNSORT; };
1812 SYMBOL_VERSION SUNW_0.9 { # SunOS 5.5 (Solaris 2.5)
1831 pthread_condattr_destroy;
1832 pthread_condattr_getpshared;
1833 pthread_condattr_init;
1834 pthread_condattr_setpshared;
1835 pthread_cond_broadcast;
1836 pthread_cond_destroy;
1838 pthread_cond_signal;
1839 pthread_cond_timedwait;
1841 pthread_mutexattr_destroy;
1842 pthread_mutexattr_getprioceiling;
1843 pthread_mutexattr_getprotocol;
1844 pthread_mutexattr_getpshared;
1845 pthread_mutexattr_init;
1846 pthread_mutexattr_setprioceiling;
1847 pthread_mutexattr_setprotocol;
1848 pthread_mutexattr_setpshared;
1849 pthread_mutex_destroy;
1850 pthread_mutex_getprioceiling;
1853 pthread_mutex_setprioceiling;
1854 pthread_mutex_trylock;
1855 pthread_mutex_unlock;
1877 SYMBOL_VERSION SUNW_0.8 { # SunOS 5.4 (Solaris 2.4)
1888 cond_broadcast { FLAGS = NODYNSORT; };
1889 cond_destroy { FLAGS = NODYNSORT; };
1891 cond_signal { FLAGS = NODYNSORT; };
1903 mutex_destroy { FLAGS = NODYNSORT; };
1905 mutex_lock { FLAGS = NODYNSORT; };
1906 mutex_trylock { FLAGS = NODYNSORT; };
1907 mutex_unlock { FLAGS = NODYNSORT; };
1914 rw_rdlock { FLAGS = NODYNSORT; };
1916 rw_tryrdlock { FLAGS = NODYNSORT; };
1917 rw_trywrlock { FLAGS = NODYNSORT; };
1918 rw_unlock { FLAGS = NODYNSORT; };
1920 rw_wrlock { FLAGS = NODYNSORT; };
1939 thr_self { FLAGS = NODYNSORT; };
1952 SYMBOL_VERSION SUNW_0.7 { # SunOS 5.3 (Solaris 2.3)
1966 isnanf { TYPE = FUNCTION; FILTER = libm.so.2; };
1967 lone { ASSERT = { TYPE = OBJECT; SIZE = 8; }; };
1968 lten { ASSERT = { TYPE = OBJECT; SIZE = 8; }; };
1969 lzero { ASSERT = { TYPE = OBJECT; SIZE = 8; }; };
1970 memalign { FLAGS = NODIRECT; };
1971 modff { TYPE = FUNCTION; FILTER = libm.so.2; };
1972 nss_default_finders {
2038 SIZE = addrsize[34];
2059 valloc { FLAGS = NODIRECT; };
2092 ALIAS = _sys_num_err;
2124 decimal_to_extended;
2125 decimal_to_quadruple;
2139 extended_to_decimal;
2150 fork1 { FLAGS = NODYNSORT; };
2208 _lwp_cond_broadcast;
2210 _lwp_cond_timedwait;
2233 _mutex_held { FLAGS = NODYNSORT; };
2234 _mutex_lock { FLAGS = NODYNSORT; };
2237 _nss_XbyY_buf_alloc;
2239 __nsw_extended_action;
2263 quadruple_to_decimal;
2319 # Note: _syscall is also defined above. Here, we add the NODYNSORT
2320 # attribute to it. On this platform, _syscall is an alias to syscall
2321 # If that is changed, this lines should be removed.
2322 _syscall { FLAGS = NODYNSORT; };
2325 # The 32-bit sparc ABI requires SISCD_2.3. On other platforms, those symbols
2326 # go directly into SUNW_0.7.
2330 SYMBOL_VERSION SISCD_2.3 {
2343 _iob { ASSERT = { TYPE = OBJECT; SIZE = 2560; }; };
2346 _iob { ASSERT = { TYPE = OBJECT; SIZE = 960; }; };
2348 _iob { ASSERT = { TYPE = OBJECT; SIZE = 320; }; };
2351 $error unknown ELFCLASS
2423 __umul64 { FLAGS = NODYNSORT; }; # Same address as __mul64
2426 # On 32-bit platforms, the following symbols go into SYSVABI_1.3, but
2427 # on other platforms they go directly into the current version (which
2428 # will be either SUNW_0.7, or SISCD_2.3, depending on the similar
2429 # issue described above.
2433 SYMBOL_VERSION SYSVABI_1.3 {
2437 _altzone { ASSERT = { BINDING = WEAK; ALIAS = altzone; }; };
2438 calloc { FLAGS = NODIRECT; };
2445 daylight { ASSERT = { TYPE = OBJECT; SIZE = 4; }; };
2446 _daylight { ASSERT = { BINDING = WEAK; ALIAS = daylight; }; };
2461 free { FLAGS = NODIRECT; };
2462 frexp { TYPE = FUNCTION; FILTER = libm.so.2; };
2463 getdate_err { ASSERT = { TYPE = OBJECT; SIZE = 4; }; };
2467 ALIAS = getdate_err;
2471 __huge_val { ASSERT = { TYPE = OBJECT; SIZE = 8; }; };
2472 __iob { ASSERT = { BINDING = WEAK; ALIAS = _iob; }; };
2473 isnan { TYPE = FUNCTION; FILTER = libm.so.2; };
2474 _isnan { TYPE = FUNCTION; FILTER = libm.so.2; };
2475 isnand { TYPE = FUNCTION; FILTER = libm.so.2; };
2476 _isnand { TYPE = FUNCTION; FILTER = libm.so.2; };
2477 ldexp { TYPE = FUNCTION; FILTER = libm.so.2; };
2478 logb { TYPE = FUNCTION; FILTER = libm.so.2; };
2479 malloc { FLAGS = NODIRECT; };
2484 modf { TYPE = FUNCTION; FILTER = libm.so.2; };
2485 _modf { TYPE = FUNCTION; FILTER = libm.so.2; };
2486 nextafter { TYPE = FUNCTION; FILTER = libm.so.2; };
2487 _nextafter { TYPE = FUNCTION; FILTER = libm.so.2; };
2488 _numeric { ASSERT = { TYPE = OBJECT; SIZE = 2; }; };
2495 opterr { ASSERT = { TYPE = OBJECT; SIZE = 4; }; };
2496 optind { ASSERT = { TYPE = OBJECT; SIZE = 4; }; };
2497 optopt { ASSERT = { TYPE = OBJECT; SIZE = 4; }; };
2498 realloc { FLAGS = NODIRECT; };
2499 scalb { TYPE = FUNCTION; FILTER = libm.so.2; };
2500 _scalb { TYPE = FUNCTION; FILTER = libm.so.2; };
2507 _timezone { ASSERT = { BINDING = WEAK; ALIAS = timezone; }; };
2521 _fp_hw { ASSERT = { TYPE = OBJECT; SIZE = 4; }; };
2858 _setcontext { FLAGS = NODYNSORT; };
2886 _sigaction { FLAGS = NODYNSORT; };
2921 _sigsetjmp { FLAGS = NODYNSORT; };
3078 # .stret4 and .stret8 are the same thing
3079 .stret8 { FLAGS = NODYNSORT; };
3108 # __align_cpy_1 is an alias for memcpy. Filter it out of
3109 # the .SUNW_dynsymsort section
3110 __align_cpy_1 { FLAGS = NODYNSORT; };
3114 # __align_cpy_8 is same as __align_cpy_16
3115 __align_cpy_8 { FLAGS = NODYNSORT; };
3144 __sparc_utrap_install;
3147 # On amd64, we also have SYSVABI_1.3, but it contains a small subset of
3148 # the symbols put in that version on other platforms.
3152 SYMBOL_VERSION SYSVABI_1.3 {
3156 __flt_rounds { ASSERT = { TYPE = OBJECT; SIZE = 4; }; };
3180 # There should never be more than one SUNWprivate version.
3181 # Don't add any more. Add new private symbols to SUNWprivate_1.1
3183 SYMBOL_VERSION SUNWprivate_1.1 {
3192 cfree { FLAGS = NODIRECT; };
3280 _memcpy { FLAGS = NODYNSORT; };
3342 _nss_default_finders {
3345 ALIAS = nss_default_finders;
3380 $error unknown ELFCLASS
3405 ALIAS = __tdb_bootstrap;
3414 thr_probe_getfunc_addr {
3449 FILTER = /usr/lib/ld.so.1;
3453 FILTER = /usr/lib/ld.so.1;
3457 FILTER = /usr/lib/ld.so.1;
3461 FILTER = /usr/lib/ld.so.1;
3465 FILTER = /usr/lib/ld.so.1;
3469 FILTER = /usr/lib/ld.so.1;
3473 FILTER = /usr/lib/ld.so.1;
3477 FILTER = /usr/lib/ld.so.1;
3481 FILTER = /usr/lib/ld.so.1;
3485 FILTER = /usr/lib/ld.so.1;
3490 ALIAS = sys_errlist;
3509 ALIAS = _sys_num_err;
3521 FILTER = /usr/lib/sparcv9/ld.so.1;
3525 FILTER = /usr/lib/sparcv9/ld.so.1;
3529 FILTER = /usr/lib/sparcv9/ld.so.1;
3533 FILTER = /usr/lib/sparcv9/ld.so.1;
3537 FILTER = /usr/lib/sparcv9/ld.so.1;
3541 FILTER = /usr/lib/sparcv9/ld.so.1;
3545 FILTER = /usr/lib/sparcv9/ld.so.1;
3549 FILTER = /usr/lib/sparcv9/ld.so.1;
3553 FILTER = /usr/lib/sparcv9/ld.so.1;
3557 FILTER = /usr/lib/sparcv9/ld.so.1;
3562 FILTER = /usr/lib/amd64/ld.so.1;
3566 FILTER = /usr/lib/amd64/ld.so.1;
3570 FILTER = /usr/lib/amd64/ld.so.1;
3574 FILTER = /usr/lib/amd64/ld.so.1;
3578 FILTER = /usr/lib/amd64/ld.so.1;
3582 FILTER = /usr/lib/amd64/ld.so.1;
3586 FILTER = /usr/lib/amd64/ld.so.1;
3590 FILTER = /usr/lib/amd64/ld.so.1;
3594 FILTER = /usr/lib/amd64/ld.so.1;
3598 FILTER = /usr/lib/amd64/ld.so.1;
3602 FILTER = /usr/lib/amd64/ld.so.1;
3605 $error unknown platform
3652 core_get_default_content;
3653 core_get_default_path;
3654 core_get_global_content;
3655 core_get_global_path;
3657 core_get_process_content;
3658 core_get_process_path;
3659 core_set_default_content;
3660 core_set_default_path;
3661 core_set_global_content;
3662 core_set_global_path;
3664 core_set_process_content;
3665 core_set_process_path;
3697 _fork1 { FLAGS = NODYNSORT; };
3698 _forkall { FLAGS = NODYNSORT; };
3714 _get_exit_frame_monitor;
3724 __idmap_flush_kcache;
3740 _lgrp_home_fast { FLAGS = NODYNSORT; };
3756 _mutex_destroy { FLAGS = NODYNSORT; };
3760 _mutex_init { FLAGS = NODYNSORT; };
3761 _mutex_unlock { FLAGS = NODYNSORT; };
3766 __nis_get_environment;
3767 _nss_db_state_destr;
3768 nss_default_key2str;
3773 _nss_initf_netgroup;
3776 nss_packed_arg_init;
3777 nss_packed_context_init;
3779 nss_packed_set_status;
3784 __nsw_extended_action_v1;
3785 __nsw_freeconfig_v1;
3796 pthread_attr_getdaemonstate_np;
3797 pthread_attr_setdaemonstate_np;
3798 pthread_mutex_enter_np;
3799 pthread_mutex_exit_np;
3800 _pthread_setcleanupinit;
3814 secflags_difference;
3816 secflags_intersection;
3820 secflags_issuperset;
3825 psecflags_validate_delta;
3833 set_setcontext_enforcement;
3867 __strptime_dontzero;
3872 thr_continue_allmutators;
3873 _thr_continue_allmutators;
3874 thr_continue_mutator;
3875 _thr_continue_mutator;
3878 thr_mutators_barrier;
3879 _thr_mutators_barrier;
3889 thr_suspend_allmutators;
3890 _thr_suspend_allmutators;
3891 thr_suspend_mutator;
3892 _thr_suspend_mutator;
3918 _uncached_getgrgid_r;
3919 _uncached_getgrnam_r;
3920 _uncached_getpwnam_r;
3921 _uncached_getpwuid_r;
3941 zone_check_datalink;
3950 zone_remove_datalink;
4060 # The following functions should not be exported from libc,
4061 # but /lib/libm.so.2, some older versions of the Studio
4062 # compiler/debugger components, and some ancient programs
4063 # found in /usr/dist reference them. When we no longer
4064 # care about these old and broken binary objects, these
4065 # symbols should be deleted.
4066 _brk { FLAGS = NODYNSORT; };
4067 _cond_broadcast { FLAGS = NODYNSORT; };
4068 _cond_init { FLAGS = NODYNSORT; };
4069 _cond_signal { FLAGS = NODYNSORT; };
4070 _cond_wait { FLAGS = NODYNSORT; };
4071 _ecvt { FLAGS = NODYNSORT; };
4072 _fcvt { FLAGS = NODYNSORT; };
4073 _getc_unlocked { FLAGS = NODYNSORT; };
4074 _llseek { FLAGS = NODYNSORT; };
4075 _pthread_attr_getdetachstate { FLAGS = NODYNSORT; };
4076 _pthread_attr_getinheritsched { FLAGS = NODYNSORT; };
4077 _pthread_attr_getschedparam { FLAGS = NODYNSORT; };
4078 _pthread_attr_getschedpolicy { FLAGS = NODYNSORT; };
4079 _pthread_attr_getscope { FLAGS = NODYNSORT; };
4080 _pthread_attr_getstackaddr { FLAGS = NODYNSORT; };
4081 _pthread_attr_getstacksize { FLAGS = NODYNSORT; };
4082 _pthread_attr_init { FLAGS = NODYNSORT; };
4083 _pthread_condattr_getpshared { FLAGS = NODYNSORT; };
4084 _pthread_condattr_init { FLAGS = NODYNSORT; };
4085 _pthread_cond_init { FLAGS = NODYNSORT; };
4086 _pthread_create { FLAGS = NODYNSORT; };
4087 _pthread_getschedparam { FLAGS = NODYNSORT; };
4088 _pthread_join { FLAGS = NODYNSORT; };
4089 _pthread_key_create { FLAGS = NODYNSORT; };
4090 _pthread_mutexattr_getprioceiling { FLAGS = NODYNSORT; };
4091 _pthread_mutexattr_getprotocol { FLAGS = NODYNSORT; };
4092 _pthread_mutexattr_getpshared { FLAGS = NODYNSORT; };
4093 _pthread_mutexattr_init { FLAGS = NODYNSORT; };
4094 _pthread_mutex_getprioceiling { FLAGS = NODYNSORT; };
4095 _pthread_mutex_init { FLAGS = NODYNSORT; };
4096 _pthread_sigmask { FLAGS = NODYNSORT; };
4097 _rwlock_init { FLAGS = NODYNSORT; };
4098 _rw_rdlock { FLAGS = NODYNSORT; };
4099 _rw_unlock { FLAGS = NODYNSORT; };
4100 _rw_wrlock { FLAGS = NODYNSORT; };
4101 _sbrk_unlocked { FLAGS = NODYNSORT; };
4102 _select { FLAGS = NODYNSORT; };
4103 _sema_init { FLAGS = NODYNSORT; };
4104 _sema_post { FLAGS = NODYNSORT; };
4105 _sema_trywait { FLAGS = NODYNSORT; };
4106 _sema_wait { FLAGS = NODYNSORT; };
4107 _sysfs { FLAGS = NODYNSORT; };
4108 _thr_create { FLAGS = NODYNSORT; };
4109 _thr_exit { FLAGS = NODYNSORT; };
4110 _thr_getprio { FLAGS = NODYNSORT; };
4111 _thr_getspecific { FLAGS = NODYNSORT; };
4112 _thr_join { FLAGS = NODYNSORT; };
4113 _thr_keycreate { FLAGS = NODYNSORT; };
4114 _thr_kill { FLAGS = NODYNSORT; };
4115 _thr_main { FLAGS = NODYNSORT; };
4116 _thr_self { FLAGS = NODYNSORT; };
4117 _thr_setspecific { FLAGS = NODYNSORT; };
4118 _thr_sigsetmask { FLAGS = NODYNSORT; };
4119 _thr_stksegment { FLAGS = NODYNSORT; };
4120 _ungetc_unlocked { FLAGS = NODYNSORT; };
4123 _ti_thr_self { FLAGS = NODYNSORT; };
4124 __imax_lldiv { FLAGS = NODYNSORT; };
4128 _seekdir64 { FLAGS = NODYNSORT; };
4129 _telldir64 { FLAGS = NODYNSORT; };
4133 __cerror { FLAGS = NODYNSORT; };
4137 __cerror64 { FLAGS = NODYNSORT; };
4141 __cleanup { FLAGS = NODYNSORT; };
4145 _syscall6 { FLAGS = NODYNSORT; };
4146 __systemcall6 { FLAGS = NODYNSORT; };
4150 ___tls_get_addr { FLAGS = NODYNSORT; };