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)
1224 pthread_attr_getguardsize;
1225 pthread_attr_setguardsize;
1226 pthread_getconcurrency;
1227 pthread_mutexattr_gettype;
1228 pthread_mutexattr_settype;
1229 pthread_rwlockattr_destroy;
1230 pthread_rwlockattr_getpshared;
1231 pthread_rwlockattr_init;
1232 pthread_rwlockattr_setpshared;
1233 pthread_rwlock_destroy;
1234 pthread_rwlock_init;
1235 pthread_rwlock_rdlock;
1236 pthread_rwlock_tryrdlock;
1237 pthread_rwlock_trywrlock;
1238 pthread_rwlock_unlock;
1239 pthread_rwlock_wrlock;
1240 pthread_setconcurrency;
1264 # The empty versions SUNW_1.2 through SUNW_1.17 must be preserved because
1265 # applications built on Solaris 2.6 Beta (when they did contain symbols)
1266 # may depend on them. All symbol content for SunOS 5.6 is now in SUNW_1.1
1268 SYMBOL_VERSION SUNW_1.17 {
1273 SYMBOL_VERSION SUNW_1.16 {
1278 SYMBOL_VERSION SUNW_1.15 {
1283 SYMBOL_VERSION SUNW_1.14 {
1288 SYMBOL_VERSION SUNW_1.13 {
1293 SYMBOL_VERSION SUNW_1.12 {
1298 SYMBOL_VERSION SUNW_1.11 {
1303 SYMBOL_VERSION SUNW_1.10 {
1308 SYMBOL_VERSION SUNW_1.9 {
1313 SYMBOL_VERSION SUNW_1.8 {
1318 SYMBOL_VERSION SUNW_1.7 {
1323 SYMBOL_VERSION SUNW_1.6 {
1328 SYMBOL_VERSION SUNW_1.5 {
1333 SYMBOL_VERSION SUNW_1.4 {
1338 SYMBOL_VERSION SUNW_1.3 {
1343 SYMBOL_VERSION SUNW_1.2 {
1348 SYMBOL_VERSION SUNW_1.1 { # SunOS 5.6 (Solaris 2.6)
1419 pthread_attr_destroy;
1420 pthread_attr_getdetachstate;
1421 pthread_attr_getinheritsched;
1422 pthread_attr_getschedparam;
1423 pthread_attr_getschedpolicy;
1424 pthread_attr_getscope;
1425 pthread_attr_getstackaddr;
1426 pthread_attr_getstacksize;
1428 pthread_attr_setdetachstate;
1429 pthread_attr_setinheritsched;
1430 pthread_attr_setschedparam;
1431 pthread_attr_setschedpolicy;
1432 pthread_attr_setscope;
1433 pthread_attr_setstackaddr;
1434 pthread_attr_setstacksize;
1436 __pthread_cleanup_pop;
1437 __pthread_cleanup_push;
1442 pthread_getschedparam;
1443 pthread_getspecific;
1450 pthread_setcancelstate;
1451 pthread_setcanceltype;
1452 pthread_setschedparam;
1453 pthread_setspecific;
1463 rwlock_destroy { FLAGS = NODYNSORT };
1464 _rwlock_destroy { FLAGS = NODYNSORT };
1473 sync_instruction_memory;
1574 _s_fcntl { FLAGS = NODYNSORT };
1592 SYMBOL_VERSION SUNW_0.9 { # SunOS 5.5 (Solaris 2.5)
1611 pthread_condattr_destroy;
1612 pthread_condattr_getpshared;
1613 pthread_condattr_init;
1614 pthread_condattr_setpshared;
1615 pthread_cond_broadcast;
1616 pthread_cond_destroy;
1618 pthread_cond_signal;
1619 pthread_cond_timedwait;
1621 pthread_mutexattr_destroy;
1622 pthread_mutexattr_getprioceiling;
1623 pthread_mutexattr_getprotocol;
1624 pthread_mutexattr_getpshared;
1625 pthread_mutexattr_init;
1626 pthread_mutexattr_setprioceiling;
1627 pthread_mutexattr_setprotocol;
1628 pthread_mutexattr_setpshared;
1629 pthread_mutex_destroy;
1630 pthread_mutex_getprioceiling;
1633 pthread_mutex_setprioceiling;
1634 pthread_mutex_trylock;
1635 pthread_mutex_unlock;
1657 SYMBOL_VERSION SUNW_0.8 { # SunOS 5.4 (Solaris 2.4)
1659 __xpg4 { FLAGS = NODIRECT };
1662 cond_broadcast { FLAGS = NODYNSORT };
1663 cond_destroy { FLAGS = NODYNSORT };
1665 cond_signal { FLAGS = NODYNSORT };
1677 mutex_destroy { FLAGS = NODYNSORT };
1679 mutex_lock { FLAGS = NODYNSORT };
1680 mutex_trylock { FLAGS = NODYNSORT };
1681 mutex_unlock { FLAGS = NODYNSORT };
1688 rw_rdlock { FLAGS = NODYNSORT };
1690 rw_tryrdlock { FLAGS = NODYNSORT };
1691 rw_trywrlock { FLAGS = NODYNSORT };
1692 rw_unlock { FLAGS = NODYNSORT };
1694 rw_wrlock { FLAGS = NODYNSORT };
1713 thr_self { FLAGS = NODYNSORT };
1726 SYMBOL_VERSION SUNW_0.7 { # SunOS 5.3 (Solaris 2.3)
1730 isnanf { TYPE = FUNCTION; FILTER = libm.so.2 };
1734 memalign { FLAGS = NODIRECT };
1735 modff { TYPE = FUNCTION; FILTER = libm.so.2 };
1736 nss_default_finders;
1749 valloc { FLAGS = NODIRECT };
1780 decimal_to_extended;
1781 decimal_to_quadruple;
1795 extended_to_decimal;
1806 fork1 { FLAGS = NODYNSORT };
1864 _lwp_cond_broadcast;
1866 _lwp_cond_timedwait;
1889 _mutex_held { FLAGS = NODYNSORT };
1890 _mutex_lock { FLAGS = NODYNSORT };
1893 _nss_XbyY_buf_alloc;
1895 __nsw_extended_action;
1919 quadruple_to_decimal;
1976 # Note: _syscall is also defined above. Here, we add the NODYNSORT
1977 # attribute to it. On this platform, it is an alias to syscall.
1978 # If that is changed, this lines should be removed.
1979 _syscall { FLAGS = NODYNSORT };
1982 # The 32-bit sparc ABI requires SISCD_2.3. On other platforms, those symbols
1983 # go directly into SUNW_0.7.
1987 SYMBOL_VERSION SISCD_2.3 {
1991 errno { FLAGS = NODIRECT };
2060 __umul64 { FLAGS = NODYNSORT }; # Same address as __mul64
2063 # On 32-bit platforms, the following symbols go into SYSVABI_1.3, but on
2064 # other platforms they go directly into the current version (which will be
2065 # either SUNW_0.7, or SISCD_2.3, depending on the similar issue described above.
2069 SYMBOL_VERSION SYSVABI_1.3 {
2074 calloc { FLAGS = NODIRECT };
2078 environ { FLAGS = NODIRECT };
2079 _environ { FLAGS = NODIRECT };
2080 free { FLAGS = NODIRECT };
2081 frexp { TYPE = FUNCTION; FILTER = libm.so.2 };
2089 isnan { TYPE = FUNCTION; FILTER = libm.so.2 };
2090 _isnan { TYPE = FUNCTION; FILTER = libm.so.2 };
2091 isnand { TYPE = FUNCTION; FILTER = libm.so.2 };
2092 _isnand { TYPE = FUNCTION; FILTER = libm.so.2 };
2093 ldexp { TYPE = FUNCTION; FILTER = libm.so.2 };
2094 logb { TYPE = FUNCTION; FILTER = libm.so.2 };
2095 malloc { FLAGS = NODIRECT };
2100 modf { TYPE = FUNCTION; FILTER = libm.so.2 };
2101 _modf { TYPE = FUNCTION; FILTER = libm.so.2 };
2102 nextafter { TYPE = FUNCTION; FILTER = libm.so.2 };
2103 _nextafter { TYPE = FUNCTION; FILTER = libm.so.2 };
2109 realloc { FLAGS = NODIRECT };
2110 scalb { TYPE = FUNCTION; FILTER = libm.so.2 };
2111 _scalb { TYPE = FUNCTION; FILTER = libm.so.2 };
2435 _setcontext { FLAGS = NODYNSORT };
2463 _sigaction { FLAGS = NODYNSORT };
2497 _sigsetjmp { FLAGS = NODYNSORT };
2645 # .stret4 and .stret8 are the same thing
2646 .stret8 { FLAGS = NODYNSORT };
2675 # __align_cpy_1 is an alias for memcpy. Filter it out of
2676 # the .SUNW_dynsymsort section
2677 __align_cpy_1 { FLAGS = NODYNSORT };
2681 # __align_cpy_8 is same as __align_cpy_16
2682 __align_cpy_8 { FLAGS = NODYNSORT };
2711 __sparc_utrap_install;
2714 # On amd64, we also have SYSVABI_1.3, but it contains a small subset of
2715 # the symbols put in that version on other platforms.
2719 SYMBOL_VERSION SYSVABI_1.3 {
2747 # There should never be more than one SUNWprivate version.
2748 # Don't add any more. Add new private symbols to SUNWprivate_1.1
2750 SYMBOL_VERSION SUNWprivate_1.1 {
2752 ___Argv { FLAGS = NODIRECT };
2753 cfree { FLAGS = NODIRECT };
2756 __environ_lock { FLAGS = NODIRECT };
2760 _isnanf { TYPE = FUNCTION; FILTER = libm.so.2 };
2763 _lib_version { FLAGS = NODIRECT };
2764 _logb { TYPE = FUNCTION; FILTER = libm.so.2 };
2765 _lone { FLAGS = NODYNSORT };
2766 _lten { FLAGS = NODYNSORT };
2767 _lzero { FLAGS = NODYNSORT };
2770 _memcpy { FLAGS = NODYNSORT };
2773 _modff { TYPE = FUNCTION; FILTER = libm.so.2 };
2784 _nss_default_finders;
2785 __progname { FLAGS = NODIRECT };
2788 __strdupa_str { FLAGS = NODIRECT };
2789 __strdupa_len { FLAGS = NODIRECT };
2792 thr_probe_getfunc_addr;
2796 __xpg6 { FLAGS = NODIRECT };
2798 # FIXME: these data symbols originally from libnsl are marked private
2799 # (at least) until we get a name for our OS
2802 h_errno { FLAGS = NODIRECT };
2809 __key_decryptsession_pk_LOCAL;
2810 __key_encryptsession_pk_LOCAL;
2817 _svc_getreqset_proc;
2824 _dladdr { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2825 _dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2826 _dlclose { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2827 _dldump { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2828 _dlerror { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2829 _dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2830 _dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2831 _dlopen { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2832 _dlsym { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2833 _ld_libc { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2837 _sys_nerr { FLAGS = NODYNSORT };
2840 _dladdr { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2841 _dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2842 _dlclose { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2843 _dldump { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2844 _dlerror { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2845 _dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2846 _dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2847 _dlopen { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2848 _dlsym { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2849 _ld_libc { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2851 _dladdr { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2852 _dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2853 _dlamd64getunwind { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2854 _dlclose { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2855 _dldump { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2856 _dlerror { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2857 _dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2858 _dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2859 _dlopen { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2860 _dlsym { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2861 _ld_libc { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2863 $error unknown platform
2889 core_get_default_content;
2890 core_get_default_path;
2891 core_get_global_content;
2892 core_get_global_path;
2894 core_get_process_content;
2895 core_get_process_path;
2896 core_set_default_content;
2897 core_set_default_path;
2898 core_set_global_content;
2899 core_set_global_path;
2901 core_set_process_content;
2902 core_set_process_path;
2950 _get_exit_frame_monitor;
2961 __idmap_flush_kcache;
2977 _lgrp_home_fast { FLAGS = NODYNSORT };
2993 _mutex_destroy { FLAGS = NODYNSORT };
2997 _mutex_init { FLAGS = NODYNSORT };
2998 _mutex_unlock { FLAGS = NODYNSORT };
3003 __nis_get_environment;
3004 _nss_db_state_destr;
3005 nss_default_key2str;
3010 _nss_initf_netgroup;
3013 nss_packed_arg_init;
3014 nss_packed_context_init;
3016 nss_packed_set_status;
3021 __nsw_extended_action_v1;
3022 __nsw_freeconfig_v1;
3033 pthread_attr_getdaemonstate_np;
3034 pthread_attr_setdaemonstate_np;
3035 _pthread_setcleanupinit;
3049 secflags_difference;
3051 secflags_intersection;
3055 secflags_issuperset;
3060 psecflags_validate_delta;
3068 set_setcontext_enforcement;
3102 __strptime_dontzero;
3107 thr_continue_allmutators;
3108 _thr_continue_allmutators;
3109 thr_continue_mutator;
3110 _thr_continue_mutator;
3113 thr_mutators_barrier;
3114 _thr_mutators_barrier;
3124 thr_suspend_allmutators;
3125 _thr_suspend_allmutators;
3126 thr_suspend_mutator;
3127 _thr_suspend_mutator;
3153 _uncached_getgrgid_r;
3154 _uncached_getgrnam_r;
3155 _uncached_getpwnam_r;
3156 _uncached_getpwuid_r;
3176 zone_check_datalink;
3185 zone_remove_datalink;
3291 # The following functions should not be exported from libc,
3292 # but /lib/libm.so.2, some older versions of the Studio
3293 # compiler/debugger components, and some ancient programs
3294 # found in /usr/dist reference them. When we no longer
3295 # care about these old and broken binary objects, these
3296 # symbols should be deleted.
3297 _brk { FLAGS = NODYNSORT };
3298 _cond_broadcast { FLAGS = NODYNSORT };
3299 _cond_init { FLAGS = NODYNSORT };
3300 _cond_signal { FLAGS = NODYNSORT };
3301 _cond_wait { FLAGS = NODYNSORT };
3302 _ecvt { FLAGS = NODYNSORT };
3303 _fcvt { FLAGS = NODYNSORT };
3304 _getc_unlocked { FLAGS = NODYNSORT };
3305 _llseek { FLAGS = NODYNSORT };
3306 _pthread_attr_getdetachstate { FLAGS = NODYNSORT };
3307 _pthread_attr_getinheritsched { FLAGS = NODYNSORT };
3308 _pthread_attr_getschedparam { FLAGS = NODYNSORT };
3309 _pthread_attr_getschedpolicy { FLAGS = NODYNSORT };
3310 _pthread_attr_getscope { FLAGS = NODYNSORT };
3311 _pthread_attr_getstackaddr { FLAGS = NODYNSORT };
3312 _pthread_attr_getstacksize { FLAGS = NODYNSORT };
3313 _pthread_attr_init { FLAGS = NODYNSORT };
3314 _pthread_condattr_getpshared { FLAGS = NODYNSORT };
3315 _pthread_condattr_init { FLAGS = NODYNSORT };
3316 _pthread_cond_init { FLAGS = NODYNSORT };
3317 _pthread_create { FLAGS = NODYNSORT };
3318 _pthread_getschedparam { FLAGS = NODYNSORT };
3319 _pthread_join { FLAGS = NODYNSORT };
3320 _pthread_key_create { FLAGS = NODYNSORT };
3321 _pthread_mutexattr_getprioceiling { FLAGS = NODYNSORT };
3322 _pthread_mutexattr_getprotocol { FLAGS = NODYNSORT };
3323 _pthread_mutexattr_getpshared { FLAGS = NODYNSORT };
3324 _pthread_mutexattr_init { FLAGS = NODYNSORT };
3325 _pthread_mutex_getprioceiling { FLAGS = NODYNSORT };
3326 _pthread_mutex_init { FLAGS = NODYNSORT };
3327 _pthread_sigmask { FLAGS = NODYNSORT };
3328 _rwlock_init { FLAGS = NODYNSORT };
3329 _rw_rdlock { FLAGS = NODYNSORT };
3330 _rw_unlock { FLAGS = NODYNSORT };
3331 _rw_wrlock { FLAGS = NODYNSORT };
3332 _sbrk_unlocked { FLAGS = NODYNSORT };
3333 _select { FLAGS = NODYNSORT };
3334 _sema_init { FLAGS = NODYNSORT };
3335 _sema_post { FLAGS = NODYNSORT };
3336 _sema_trywait { FLAGS = NODYNSORT };
3337 _sema_wait { FLAGS = NODYNSORT };
3338 _sysfs { FLAGS = NODYNSORT };
3339 _thr_create { FLAGS = NODYNSORT };
3340 _thr_exit { FLAGS = NODYNSORT };
3341 _thr_getprio { FLAGS = NODYNSORT };
3342 _thr_getspecific { FLAGS = NODYNSORT };
3343 _thr_join { FLAGS = NODYNSORT };
3344 _thr_keycreate { FLAGS = NODYNSORT };
3345 _thr_kill { FLAGS = NODYNSORT };
3346 _thr_main { FLAGS = NODYNSORT };
3347 _thr_self { FLAGS = NODYNSORT };
3348 _thr_setspecific { FLAGS = NODYNSORT };
3349 _thr_sigsetmask { FLAGS = NODYNSORT };
3350 _thr_stksegment { FLAGS = NODYNSORT };
3351 _ungetc_unlocked { FLAGS = NODYNSORT };
3353 # FIXME: pending a name for our OS, these symbols originally from libsocket are
3360 getipv4sourcefilter;
3362 setipv4sourcefilter;
3445 # These were private in libsocket and should stay that way in libc:
3450 _nss_initf_netmasks;
3452 _nss_initf_services;
3462 bootparams_getbyname;
3464 # FIXME: pending a name for our OS, these symbols originally from libnsl are
3470 getipsecprotobyname;
3472 svc_fd_negotiate_ucred;
3491 clnt_create_vers_timed;
3495 rpc_gss_get_mechanisms;
3496 rpc_gss_get_mech_info;
3497 rpc_gss_get_principal_name;
3498 rpc_gss_get_versions;
3499 rpc_gss_is_installed;
3500 rpc_gss_max_data_length;
3501 rpc_gss_mech_to_oid;
3504 rpc_gss_set_callback;
3505 rpc_gss_set_defaults;
3506 rpc_gss_set_svc_name;
3507 rpc_gss_svc_max_data_length;
3537 clnt_tp_create_timed;
3576 key_secretkey_is_set;
3587 nis_local_directory;
3639 yp_get_default_domain;
3657 authsys_create_default;
3786 # These were private in libnsl and should stay that way in libc:
3787 clnt_create_service_timed;
3789 _build_internal_algs;
3792 _create_daemon_lock;
3796 _real_getipsecprotos;
3798 _str_to_ipsec_exec_mode;
3801 key_removesecret_g_ruid;
3802 key_secretkey_is_set_g_ruid;
3830 __nis_netconfig_matches_ep;
3832 __rpc_bindresvport_ipv6;
3842 _switch_getipnodebyaddr_r;
3843 _switch_getipnodebyname_r;
3844 _uncached_getipnodebyaddr;
3845 _uncached_getipnodebyname;
3847 __yp_first_cflookup;
3848 __yp_match_cflookup;
3849 __yp_match_rsvdport_cflookup;
3856 __clnt_create_loopback;
3863 _get_hostserv_inetnetdir_byaddr;
3864 _get_hostserv_inetnetdir_byname;
3866 __getpublickey_cached;
3867 __getpublickey_cached_g;
3868 __getpublickey_flush;
3869 __getpublickey_flush_g;
3874 __inet_address_count;
3875 __inet_free_local_interfaces;
3877 __inet_get_local_interfaces;
3878 __inet_get_networka;
3880 __inet_uaddr_is_local;
3882 key_decryptsession_g;
3883 key_decryptsession_pk;
3884 key_decryptsession_pk_g;
3885 key_encryptsession_g;
3886 key_encryptsession_pk;
3887 key_encryptsession_pk_g;
3892 key_secretkey_is_set_g;
3898 __netdir_getbyaddr_nosrv;
3899 __nis_authtype2mechalias;
3901 __nis_dhext_extract_pkey;
3902 __nis_get_mechanism_library;
3903 __nis_get_mechanisms;
3904 __nis_get_mechanism_symbol;
3905 nis_get_static_storage;
3906 __nis_gssprin2netname;
3907 __nis_keyalg2authtype;
3908 __nis_keyalg2mechalias;
3909 __nis_mechalias2authtype;
3910 __nis_mechname2alias;
3912 __nis_release_mechanisms;
3914 __nis_translate_mechanism;
3930 __rpc_get_default_domain;
3931 __rpc_get_local_uid;
3934 __rpc_negotiate_uid;
3935 __rpc_select_to_poll;
3937 __rpc_timeval_to_msec;
3938 __rpc_tli_set_options;
3947 __svc_set_proc_cleanup_cb;
3949 __svc_vc_dupcache_init;
3953 _switch_gethostbyaddr_r;
3954 _switch_gethostbyname_r;
3955 _uncached_gethostbyaddr_r;
3956 _uncached_gethostbyname_r;
4004 xdr_rpcb_entry_list_ptr;
4007 xdr_rpcb_rmtcallargs;
4008 xdr_rpcb_rmtcallres;
4010 xdr_rpcbs_addrlist_ptr;
4012 xdr_rpcbs_rmtcalllist;
4013 xdr_rpcbs_rmtcalllist_ptr;
4015 xdr_rpcb_stat_byvers;
4028 xdr_ypbind_resptype;
4032 xdr_ypdomain_wrap_string;
4034 xdr_ypmap_wrap_string;
4035 xdr_ypowner_wrap_string;
4050 ypbindproc_domain_3;
4051 __yp_clnt_create_rsvdport;
4053 __yp_master_rsvdport;
4056 # End libnsl/libsocket symbols
4057 # FIXME: new symbols for our OS, but here pending a name.
4082 # FIXME: new symbols for our OS, but here pending a name.
4083 reallocarray { FLAGS = NODIRECT };
4084 recallocarray { FLAGS = NODIRECT };
4085 freezero { FLAGS = NODIRECT };
4088 __imax_lldiv { FLAGS = NODYNSORT };
4089 _ti_thr_self { FLAGS = NODYNSORT };
4093 _seekdir64 { FLAGS = NODYNSORT };
4094 _telldir64 { FLAGS = NODYNSORT };
4098 __cerror { FLAGS = NODYNSORT };
4102 __cerror64 { FLAGS = NODYNSORT };
4106 __cleanup { FLAGS = NODYNSORT };
4110 _syscall6 { FLAGS = NODYNSORT };
4111 __systemcall6 { FLAGS = NODYNSORT };
4115 ___tls_get_addr { FLAGS = NODYNSORT };