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;
1093 _gethomelgroup { FLAGS = NODYNSORT };
1099 _lwp_cond_reltimedwait;
1112 pthread_cond_reltimedwait_np;
1113 rctlblk_get_enforced_value;
1114 rctlblk_get_firing_time;
1115 rctlblk_get_global_action;
1116 rctlblk_get_global_flags;
1117 rctlblk_get_local_action;
1118 rctlblk_get_local_flags;
1119 rctlblk_get_privilege;
1120 rctlblk_get_recipient_pid;
1122 rctlblk_set_local_action;
1123 rctlblk_set_local_flags;
1124 rctlblk_set_privilege;
1157 SYMBOL_VERSION SUNW_1.20.4 { # SunOS 5.8 (Solaris 8) patch additions
1163 SYMBOL_VERSION SUNW_1.20.1 { # SunOS 5.8 (Solaris 8) patch additions
1187 SYMBOL_VERSION SUNW_1.20 { # SunOS 5.8 (Solaris 8)
1193 SYMBOL_VERSION SUNW_1.19 {
1201 SYMBOL_VERSION SUNW_1.18.1 {
1206 SYMBOL_VERSION SUNW_1.18 { # SunOS 5.7 (Solaris 7)
1228 pthread_attr_getguardsize;
1229 pthread_attr_setguardsize;
1230 pthread_getconcurrency;
1231 pthread_mutexattr_gettype;
1232 pthread_mutexattr_settype;
1233 pthread_rwlockattr_destroy;
1234 pthread_rwlockattr_getpshared;
1235 pthread_rwlockattr_init;
1236 pthread_rwlockattr_setpshared;
1237 pthread_rwlock_destroy;
1238 pthread_rwlock_init;
1239 pthread_rwlock_rdlock;
1240 pthread_rwlock_tryrdlock;
1241 pthread_rwlock_trywrlock;
1242 pthread_rwlock_unlock;
1243 pthread_rwlock_wrlock;
1244 pthread_setconcurrency;
1268 # The empty versions SUNW_1.2 through SUNW_1.17 must be preserved because
1269 # applications built on Solaris 2.6 Beta (when they did contain symbols)
1270 # may depend on them. All symbol content for SunOS 5.6 is now in SUNW_1.1
1272 SYMBOL_VERSION SUNW_1.17 {
1277 SYMBOL_VERSION SUNW_1.16 {
1282 SYMBOL_VERSION SUNW_1.15 {
1287 SYMBOL_VERSION SUNW_1.14 {
1292 SYMBOL_VERSION SUNW_1.13 {
1297 SYMBOL_VERSION SUNW_1.12 {
1302 SYMBOL_VERSION SUNW_1.11 {
1307 SYMBOL_VERSION SUNW_1.10 {
1312 SYMBOL_VERSION SUNW_1.9 {
1317 SYMBOL_VERSION SUNW_1.8 {
1322 SYMBOL_VERSION SUNW_1.7 {
1327 SYMBOL_VERSION SUNW_1.6 {
1332 SYMBOL_VERSION SUNW_1.5 {
1337 SYMBOL_VERSION SUNW_1.4 {
1342 SYMBOL_VERSION SUNW_1.3 {
1347 SYMBOL_VERSION SUNW_1.2 {
1352 SYMBOL_VERSION SUNW_1.1 { # SunOS 5.6 (Solaris 2.6)
1423 pthread_attr_destroy;
1424 pthread_attr_getdetachstate;
1425 pthread_attr_getinheritsched;
1426 pthread_attr_getschedparam;
1427 pthread_attr_getschedpolicy;
1428 pthread_attr_getscope;
1429 pthread_attr_getstackaddr;
1430 pthread_attr_getstacksize;
1432 pthread_attr_setdetachstate;
1433 pthread_attr_setinheritsched;
1434 pthread_attr_setschedparam;
1435 pthread_attr_setschedpolicy;
1436 pthread_attr_setscope;
1437 pthread_attr_setstackaddr;
1438 pthread_attr_setstacksize;
1440 __pthread_cleanup_pop;
1441 __pthread_cleanup_push;
1446 pthread_getschedparam;
1447 pthread_getspecific;
1454 pthread_setcancelstate;
1455 pthread_setcanceltype;
1456 pthread_setschedparam;
1457 pthread_setspecific;
1467 rwlock_destroy { FLAGS = NODYNSORT };
1468 _rwlock_destroy { FLAGS = NODYNSORT };
1477 sync_instruction_memory;
1585 _s_fcntl { FLAGS = NODYNSORT };
1604 SYMBOL_VERSION SUNW_0.9 { # SunOS 5.5 (Solaris 2.5)
1623 pthread_condattr_destroy;
1624 pthread_condattr_getpshared;
1625 pthread_condattr_init;
1626 pthread_condattr_setpshared;
1627 pthread_cond_broadcast;
1628 pthread_cond_destroy;
1630 pthread_cond_signal;
1631 pthread_cond_timedwait;
1633 pthread_mutexattr_destroy;
1634 pthread_mutexattr_getprioceiling;
1635 pthread_mutexattr_getprotocol;
1636 pthread_mutexattr_getpshared;
1637 pthread_mutexattr_init;
1638 pthread_mutexattr_setprioceiling;
1639 pthread_mutexattr_setprotocol;
1640 pthread_mutexattr_setpshared;
1641 pthread_mutex_destroy;
1642 pthread_mutex_getprioceiling;
1645 pthread_mutex_setprioceiling;
1646 pthread_mutex_trylock;
1647 pthread_mutex_unlock;
1669 SYMBOL_VERSION SUNW_0.8 { # SunOS 5.4 (Solaris 2.4)
1671 __xpg4 { FLAGS = NODIRECT };
1674 cond_broadcast { FLAGS = NODYNSORT };
1675 cond_destroy { FLAGS = NODYNSORT };
1677 cond_signal { FLAGS = NODYNSORT };
1689 mutex_destroy { FLAGS = NODYNSORT };
1691 mutex_lock { FLAGS = NODYNSORT };
1692 mutex_trylock { FLAGS = NODYNSORT };
1693 mutex_unlock { FLAGS = NODYNSORT };
1700 rw_rdlock { FLAGS = NODYNSORT };
1702 rw_tryrdlock { FLAGS = NODYNSORT };
1703 rw_trywrlock { FLAGS = NODYNSORT };
1704 rw_unlock { FLAGS = NODYNSORT };
1706 rw_wrlock { FLAGS = NODYNSORT };
1725 thr_self { FLAGS = NODYNSORT };
1738 SYMBOL_VERSION SUNW_0.7 { # SunOS 5.3 (Solaris 2.3)
1742 isnanf { TYPE = FUNCTION; FILTER = libm.so.2 };
1746 memalign { FLAGS = NODIRECT };
1747 modff { TYPE = FUNCTION; FILTER = libm.so.2 };
1748 nss_default_finders;
1761 valloc { FLAGS = NODIRECT };
1792 decimal_to_extended;
1793 decimal_to_quadruple;
1807 extended_to_decimal;
1818 fork1 { FLAGS = NODYNSORT };
1876 _lwp_cond_broadcast;
1878 _lwp_cond_timedwait;
1901 _mutex_held { FLAGS = NODYNSORT };
1902 _mutex_lock { FLAGS = NODYNSORT };
1905 _nss_XbyY_buf_alloc;
1907 __nsw_extended_action;
1931 quadruple_to_decimal;
1988 # Note: _syscall is also defined above. Here, we add the NODYNSORT
1989 # attribute to it. On this platform, it is an alias to syscall.
1990 # If that is changed, this lines should be removed.
1991 _syscall { FLAGS = NODYNSORT };
1994 # The 32-bit sparc ABI requires SISCD_2.3. On other platforms, those symbols
1995 # go directly into SUNW_0.7.
1999 SYMBOL_VERSION SISCD_2.3 {
2003 errno { FLAGS = NODIRECT };
2073 __umul64 { FLAGS = NODYNSORT }; # Same address as __mul64
2076 # On 32-bit platforms, the following symbols go into SYSVABI_1.3, but on
2077 # other platforms they go directly into the current version (which will be
2078 # either SUNW_0.7, or SISCD_2.3, depending on the similar issue described above.
2082 SYMBOL_VERSION SYSVABI_1.3 {
2087 calloc { FLAGS = NODIRECT };
2091 environ { FLAGS = NODIRECT };
2092 _environ { FLAGS = NODIRECT };
2093 free { FLAGS = NODIRECT };
2094 frexp { TYPE = FUNCTION; FILTER = libm.so.2 };
2100 isnan { TYPE = FUNCTION; FILTER = libm.so.2 };
2101 _isnan { TYPE = FUNCTION; FILTER = libm.so.2 };
2102 isnand { TYPE = FUNCTION; FILTER = libm.so.2 };
2103 _isnand { TYPE = FUNCTION; FILTER = libm.so.2 };
2104 ldexp { TYPE = FUNCTION; FILTER = libm.so.2 };
2105 logb { TYPE = FUNCTION; FILTER = libm.so.2 };
2106 malloc { FLAGS = NODIRECT };
2111 modf { TYPE = FUNCTION; FILTER = libm.so.2 };
2112 _modf { TYPE = FUNCTION; FILTER = libm.so.2 };
2113 nextafter { TYPE = FUNCTION; FILTER = libm.so.2 };
2114 _nextafter { TYPE = FUNCTION; FILTER = libm.so.2 };
2120 realloc { FLAGS = NODIRECT };
2121 scalb { TYPE = FUNCTION; FILTER = libm.so.2 };
2122 _scalb { TYPE = FUNCTION; FILTER = libm.so.2 };
2465 _setcontext { FLAGS = NODYNSORT };
2493 _sigaction { FLAGS = NODYNSORT };
2528 _sigsetjmp { FLAGS = NODYNSORT };
2685 # .stret4 and .stret8 are the same thing
2686 .stret8 { FLAGS = NODYNSORT };
2715 # __align_cpy_1 is an alias for memcpy. Filter it out of
2716 # the .SUNW_dynsymsort section
2717 __align_cpy_1 { FLAGS = NODYNSORT };
2721 # __align_cpy_8 is same as __align_cpy_16
2722 __align_cpy_8 { FLAGS = NODYNSORT };
2751 __sparc_utrap_install;
2754 # On amd64, we also have SYSVABI_1.3, but it contains a small subset of
2755 # the symbols put in that version on other platforms.
2759 SYMBOL_VERSION SYSVABI_1.3 {
2787 # There should never be more than one SUNWprivate version.
2788 # Don't add any more. Add new private symbols to SUNWprivate_1.1
2790 SYMBOL_VERSION SUNWprivate_1.1 {
2792 ___Argv { FLAGS = NODIRECT };
2793 cfree { FLAGS = NODIRECT };
2796 __environ_lock { FLAGS = NODIRECT };
2800 _isnanf { TYPE = FUNCTION; FILTER = libm.so.2 };
2803 _lib_version { FLAGS = NODIRECT };
2804 _logb { TYPE = FUNCTION; FILTER = libm.so.2 };
2805 _lone { FLAGS = NODYNSORT };
2806 _lten { FLAGS = NODYNSORT };
2807 _lzero { FLAGS = NODYNSORT };
2810 _memcpy { FLAGS = NODYNSORT };
2813 _modff { TYPE = FUNCTION; FILTER = libm.so.2 };
2824 _nss_default_finders;
2825 __progname { FLAGS = NODIRECT };
2828 __strdupa_str { FLAGS = NODIRECT };
2829 __strdupa_len { FLAGS = NODIRECT };
2832 thr_probe_getfunc_addr;
2836 __xpg6 { FLAGS = NODIRECT };
2838 # FIXME: these data symbols originally from libnsl are marked private
2839 # (at least) until we get a name for our OS
2842 h_errno { FLAGS = NODIRECT };
2849 __key_decryptsession_pk_LOCAL;
2850 __key_encryptsession_pk_LOCAL;
2858 _svc_getreqset_proc;
2865 _dladdr { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2866 _dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2867 _dlclose { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2868 _dldump { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2869 _dlerror { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2870 _dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2871 _dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2872 _dlopen { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2873 _dlsym { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2874 _ld_libc { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2878 _sys_nerr { FLAGS = NODYNSORT };
2881 _dladdr { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2882 _dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2883 _dlclose { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2884 _dldump { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2885 _dlerror { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2886 _dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2887 _dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2888 _dlopen { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2889 _dlsym { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2890 _ld_libc { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2892 _dladdr { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2893 _dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2894 _dlamd64getunwind { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2895 _dlclose { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2896 _dldump { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2897 _dlerror { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2898 _dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2899 _dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2900 _dlopen { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2901 _dlsym { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2902 _ld_libc { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2904 $error unknown platform
2931 core_get_default_content;
2932 core_get_default_path;
2933 core_get_global_content;
2934 core_get_global_path;
2936 core_get_process_content;
2937 core_get_process_path;
2938 core_set_default_content;
2939 core_set_default_path;
2940 core_set_global_content;
2941 core_set_global_path;
2943 core_set_process_content;
2944 core_set_process_path;
2977 _fork1 { FLAGS = NODYNSORT };
2978 _forkall { FLAGS = NODYNSORT };
2994 _get_exit_frame_monitor;
3005 __idmap_flush_kcache;
3021 _lgrp_home_fast { FLAGS = NODYNSORT };
3037 _mutex_destroy { FLAGS = NODYNSORT };
3041 _mutex_init { FLAGS = NODYNSORT };
3042 _mutex_unlock { FLAGS = NODYNSORT };
3047 __nis_get_environment;
3048 _nss_db_state_destr;
3049 nss_default_key2str;
3054 _nss_initf_netgroup;
3057 nss_packed_arg_init;
3058 nss_packed_context_init;
3060 nss_packed_set_status;
3065 __nsw_extended_action_v1;
3066 __nsw_freeconfig_v1;
3077 pthread_attr_getdaemonstate_np;
3078 pthread_attr_setdaemonstate_np;
3079 _pthread_setcleanupinit;
3093 secflags_difference;
3095 secflags_intersection;
3099 secflags_issuperset;
3104 psecflags_validate_delta;
3112 set_setcontext_enforcement;
3146 __strptime_dontzero;
3151 thr_continue_allmutators;
3152 _thr_continue_allmutators;
3153 thr_continue_mutator;
3154 _thr_continue_mutator;
3157 thr_mutators_barrier;
3158 _thr_mutators_barrier;
3168 thr_suspend_allmutators;
3169 _thr_suspend_allmutators;
3170 thr_suspend_mutator;
3171 _thr_suspend_mutator;
3197 _uncached_getgrgid_r;
3198 _uncached_getgrnam_r;
3199 _uncached_getpwnam_r;
3200 _uncached_getpwuid_r;
3220 zone_check_datalink;
3229 zone_remove_datalink;
3335 # The following functions should not be exported from libc,
3336 # but /lib/libm.so.2, some older versions of the Studio
3337 # compiler/debugger components, and some ancient programs
3338 # found in /usr/dist reference them. When we no longer
3339 # care about these old and broken binary objects, these
3340 # symbols should be deleted.
3341 _brk { FLAGS = NODYNSORT };
3342 _cond_broadcast { FLAGS = NODYNSORT };
3343 _cond_init { FLAGS = NODYNSORT };
3344 _cond_signal { FLAGS = NODYNSORT };
3345 _cond_wait { FLAGS = NODYNSORT };
3346 _ecvt { FLAGS = NODYNSORT };
3347 _fcvt { FLAGS = NODYNSORT };
3348 _getc_unlocked { FLAGS = NODYNSORT };
3349 _llseek { FLAGS = NODYNSORT };
3350 _pthread_attr_getdetachstate { FLAGS = NODYNSORT };
3351 _pthread_attr_getinheritsched { FLAGS = NODYNSORT };
3352 _pthread_attr_getschedparam { FLAGS = NODYNSORT };
3353 _pthread_attr_getschedpolicy { FLAGS = NODYNSORT };
3354 _pthread_attr_getscope { FLAGS = NODYNSORT };
3355 _pthread_attr_getstackaddr { FLAGS = NODYNSORT };
3356 _pthread_attr_getstacksize { FLAGS = NODYNSORT };
3357 _pthread_attr_init { FLAGS = NODYNSORT };
3358 _pthread_condattr_getpshared { FLAGS = NODYNSORT };
3359 _pthread_condattr_init { FLAGS = NODYNSORT };
3360 _pthread_cond_init { FLAGS = NODYNSORT };
3361 _pthread_create { FLAGS = NODYNSORT };
3362 _pthread_getschedparam { FLAGS = NODYNSORT };
3363 _pthread_join { FLAGS = NODYNSORT };
3364 _pthread_key_create { FLAGS = NODYNSORT };
3365 _pthread_mutexattr_getprioceiling { FLAGS = NODYNSORT };
3366 _pthread_mutexattr_getprotocol { FLAGS = NODYNSORT };
3367 _pthread_mutexattr_getpshared { FLAGS = NODYNSORT };
3368 _pthread_mutexattr_init { FLAGS = NODYNSORT };
3369 _pthread_mutex_getprioceiling { FLAGS = NODYNSORT };
3370 _pthread_mutex_init { FLAGS = NODYNSORT };
3371 _pthread_sigmask { FLAGS = NODYNSORT };
3372 _rwlock_init { FLAGS = NODYNSORT };
3373 _rw_rdlock { FLAGS = NODYNSORT };
3374 _rw_unlock { FLAGS = NODYNSORT };
3375 _rw_wrlock { FLAGS = NODYNSORT };
3376 _sbrk_unlocked { FLAGS = NODYNSORT };
3377 _select { FLAGS = NODYNSORT };
3378 _sema_init { FLAGS = NODYNSORT };
3379 _sema_post { FLAGS = NODYNSORT };
3380 _sema_trywait { FLAGS = NODYNSORT };
3381 _sema_wait { FLAGS = NODYNSORT };
3382 _sysfs { FLAGS = NODYNSORT };
3383 _thr_create { FLAGS = NODYNSORT };
3384 _thr_exit { FLAGS = NODYNSORT };
3385 _thr_getprio { FLAGS = NODYNSORT };
3386 _thr_getspecific { FLAGS = NODYNSORT };
3387 _thr_join { FLAGS = NODYNSORT };
3388 _thr_keycreate { FLAGS = NODYNSORT };
3389 _thr_kill { FLAGS = NODYNSORT };
3390 _thr_main { FLAGS = NODYNSORT };
3391 _thr_self { FLAGS = NODYNSORT };
3392 _thr_setspecific { FLAGS = NODYNSORT };
3393 _thr_sigsetmask { FLAGS = NODYNSORT };
3394 _thr_stksegment { FLAGS = NODYNSORT };
3395 _ungetc_unlocked { FLAGS = NODYNSORT };
3397 # FIXME: pending a name for our OS, these symbols originally from libsocket are
3404 getipv4sourcefilter;
3406 setipv4sourcefilter;
3496 # These were private in libsocket and should stay that way in libc:
3501 _nss_initf_netmasks;
3503 _nss_initf_services;
3513 bootparams_getbyname;
3516 # FIXME: pending a name for our OS, these symbols originally from libnsl are
3522 getipsecprotobyname;
3524 svc_fd_negotiate_ucred;
3543 clnt_create_vers_timed;
3547 rpc_gss_get_mechanisms;
3548 rpc_gss_get_mech_info;
3549 rpc_gss_get_principal_name;
3550 rpc_gss_get_versions;
3551 rpc_gss_is_installed;
3552 rpc_gss_max_data_length;
3553 rpc_gss_mech_to_oid;
3556 rpc_gss_set_callback;
3557 rpc_gss_set_defaults;
3558 rpc_gss_set_svc_name;
3559 rpc_gss_svc_max_data_length;
3589 clnt_tp_create_timed;
3628 key_secretkey_is_set;
3639 nis_local_directory;
3691 yp_get_default_domain;
3709 authsys_create_default;
3838 # These were private in libnsl and should stay that way in libc:
3839 clnt_create_service_timed;
3841 _build_internal_algs;
3844 _create_daemon_lock;
3848 _real_getipsecprotos;
3850 _str_to_ipsec_exec_mode;
3853 key_removesecret_g_ruid;
3854 key_secretkey_is_set_g_ruid;
3882 __nis_netconfig_matches_ep;
3884 __rpc_bindresvport_ipv6;
3894 _switch_getipnodebyaddr_r;
3895 _switch_getipnodebyname_r;
3896 _uncached_getipnodebyaddr;
3897 _uncached_getipnodebyname;
3899 __yp_first_cflookup;
3900 __yp_match_cflookup;
3901 __yp_match_rsvdport_cflookup;
3908 __clnt_create_loopback;
3915 _get_hostserv_inetnetdir_byaddr;
3916 _get_hostserv_inetnetdir_byname;
3918 __getpublickey_cached;
3919 __getpublickey_cached_g;
3920 __getpublickey_flush;
3921 __getpublickey_flush_g;
3926 __inet_address_count;
3927 __inet_free_local_interfaces;
3929 __inet_get_local_interfaces;
3930 __inet_get_networka;
3932 __inet_uaddr_is_local;
3934 key_decryptsession_g;
3935 key_decryptsession_pk;
3936 key_decryptsession_pk_g;
3937 key_encryptsession_g;
3938 key_encryptsession_pk;
3939 key_encryptsession_pk_g;
3944 key_secretkey_is_set_g;
3950 __netdir_getbyaddr_nosrv;
3951 __nis_authtype2mechalias;
3953 __nis_dhext_extract_pkey;
3954 __nis_get_mechanism_library;
3955 __nis_get_mechanisms;
3956 __nis_get_mechanism_symbol;
3957 nis_get_static_storage;
3958 __nis_gssprin2netname;
3959 __nis_keyalg2authtype;
3960 __nis_keyalg2mechalias;
3961 __nis_mechalias2authtype;
3962 __nis_mechname2alias;
3964 __nis_release_mechanisms;
3966 __nis_translate_mechanism;
3982 __rpc_get_default_domain;
3983 __rpc_get_local_uid;
3986 __rpc_negotiate_uid;
3987 __rpc_select_to_poll;
3989 __rpc_timeval_to_msec;
3990 __rpc_tli_set_options;
3999 __svc_set_proc_cleanup_cb;
4001 __svc_vc_dupcache_init;
4005 _switch_gethostbyaddr_r;
4006 _switch_gethostbyname_r;
4007 _uncached_gethostbyaddr_r;
4008 _uncached_gethostbyname_r;
4056 xdr_rpcb_entry_list_ptr;
4059 xdr_rpcb_rmtcallargs;
4060 xdr_rpcb_rmtcallres;
4062 xdr_rpcbs_addrlist_ptr;
4064 xdr_rpcbs_rmtcalllist;
4065 xdr_rpcbs_rmtcalllist_ptr;
4067 xdr_rpcb_stat_byvers;
4080 xdr_ypbind_resptype;
4084 xdr_ypdomain_wrap_string;
4086 xdr_ypmap_wrap_string;
4087 xdr_ypowner_wrap_string;
4102 ypbindproc_domain_3;
4103 __yp_clnt_create_rsvdport;
4105 __yp_master_rsvdport;
4108 # End libnsl/libsocket symbols
4109 # FIXME: new symbols for our OS, but here pending a name.
4129 # FIXME: new symbols for our OS, but here pending a name.
4130 reallocarray { FLAGS = NODIRECT };
4133 __imax_lldiv { FLAGS = NODYNSORT };
4134 _ti_thr_self { FLAGS = NODYNSORT };
4138 _seekdir64 { FLAGS = NODYNSORT };
4139 _telldir64 { FLAGS = NODYNSORT };
4143 __cerror { FLAGS = NODYNSORT };
4147 __cerror64 { FLAGS = NODYNSORT };
4151 __cleanup { FLAGS = NODYNSORT };
4155 _syscall6 { FLAGS = NODYNSORT };
4156 __systemcall6 { FLAGS = NODYNSORT };
4160 ___tls_get_addr { FLAGS = NODYNSORT };