diff options
Diffstat (limited to 'usr/src/lib/libc/port/mapfile-vers')
-rw-r--r-- | usr/src/lib/libc/port/mapfile-vers | 1689 |
1 files changed, 1495 insertions, 194 deletions
diff --git a/usr/src/lib/libc/port/mapfile-vers b/usr/src/lib/libc/port/mapfile-vers index 3c65239665..f557f958b6 100644 --- a/usr/src/lib/libc/port/mapfile-vers +++ b/usr/src/lib/libc/port/mapfile-vers @@ -19,8 +19,7 @@ # CDDL HEADER END # # -# Copyright 2010 Sun Microsystems, Inc. All rights reserved. -# Use is subject to license terms. +# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. # # @@ -37,6 +36,8 @@ # MAPFILE HEADER END # +$mapfile_version 2 + # # All function names added to this or any other libc mapfile # must be placed under the 'protected:' designation. @@ -59,10 +60,46 @@ # -SUNW_1.23 { # SunOS 5.11 (Solaris 11) +# Mnemonic conditional input identifiers: +# +# - amd64, i386, sparc32, sparcv9: Correspond to ISA subdirectories used to +# hold per-platform code. Note however that we use 'sparc32' instead of +# 'sparc'. Since '_sparc' is predefined to apply to, all sparc platforms, +# naming the 32-bit version 'sparc' would be too likely to cause errors. +# +# - lf64: Defined on platforms that offer the 32-bit largefile APIs +# +$if _ELF32 +$add lf64 +$endif +$if _sparc && _ELF32 +$add sparc32 +$endif +$if _sparc && _ELF64 +$add sparcv9 +$endif +$if _x86 && _ELF32 +$add i386 +$endif +$if _x86 && _ELF64 +$add amd64 +$endif + +SYMBOL_VERSION SUNW_1.23 { # SunOS 5.11 (Solaris 11) global: _nl_domain_bindings; _nl_msg_cat_cntr; + +$if _ELF32 + dl_iterate_phdr { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; +$elif sparcv9 + dl_iterate_phdr { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; +$elif amd64 + dl_iterate_phdr { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; +$else +$error unknown platform +$endif + protected: addrtosymstr; aio_cancel; @@ -195,24 +232,42 @@ SUNW_1.23 { # SunOS 5.11 (Solaris 11) vwarnx; warn; warnx; + +$if lf64 + aio_cancel64; + aio_error64; + aio_fsync64; + aio_read64; + aioread64; + aio_return64; + aio_suspend64; + aio_waitn64; + aio_write64; + aiowrite64; + lio_listio64; + mkstemps64; + posix_fadvise64; + posix_fallocate64; +$endif } SUNW_1.22.6; -SUNW_1.22.6 { # s10u9 - SunOS 5.10 (Solaris 10) patch additions +SYMBOL_VERSION SUNW_1.22.6 { # s10u9 - SunOS 5.10 (Solaris 10) patch additions + protected: futimens; utimensat; } SUNW_1.22.5; -SUNW_1.22.5 { # s10u8 - SunOS 5.10 (Solaris 10) patch additions +SYMBOL_VERSION SUNW_1.22.5 { # s10u8 - SunOS 5.10 (Solaris 10) patch additions protected: getpagesizes2; } SUNW_1.22.4; -SUNW_1.22.4 { # s10u7 - SunOS 5.10 (Solaris 10) patch additions +SYMBOL_VERSION SUNW_1.22.4 { # s10u7 - SunOS 5.10 (Solaris 10) patch additions protected: SUNW_1.22.4; } SUNW_1.22.3; -SUNW_1.22.3 { # SunOS 5.10 (Solaris 10) patch additions +SYMBOL_VERSION SUNW_1.22.3 { # SunOS 5.10 (Solaris 10) patch additions protected: mutex_consistent; u8_textprep_str; @@ -220,25 +275,25 @@ SUNW_1.22.3 { # SunOS 5.10 (Solaris 10) patch additions uucopystr; } SUNW_1.22.2; -SUNW_1.22.2 { # SunOS 5.10 (Solaris 10) patch additions +SYMBOL_VERSION SUNW_1.22.2 { # SunOS 5.10 (Solaris 10) patch additions protected: is_system_labeled; ucred_getlabel; _ucred_getlabel; } SUNW_1.22.1; -SUNW_1.22.1 { # SunOS 5.10 (Solaris 10) patch additions +SYMBOL_VERSION SUNW_1.22.1 { # SunOS 5.10 (Solaris 10) patch additions protected: atomic_add_8; atomic_add_8_nv; - atomic_add_char = NODYNSORT; - atomic_add_char_nv = NODYNSORT; - atomic_add_int = NODYNSORT; - atomic_add_int_nv = NODYNSORT; - atomic_add_ptr = NODYNSORT; - atomic_add_ptr_nv = NODYNSORT; - atomic_add_short = NODYNSORT; - atomic_add_short_nv = NODYNSORT; + atomic_add_char { FLAGS = NODYNSORT }; + atomic_add_char_nv { FLAGS = NODYNSORT }; + atomic_add_int { FLAGS = NODYNSORT }; + atomic_add_int_nv { FLAGS = NODYNSORT }; + atomic_add_ptr { FLAGS = NODYNSORT }; + atomic_add_ptr_nv { FLAGS = NODYNSORT }; + atomic_add_short { FLAGS = NODYNSORT }; + atomic_add_short_nv { FLAGS = NODYNSORT }; atomic_and_16; atomic_and_16_nv; atomic_and_32_nv; @@ -246,23 +301,23 @@ SUNW_1.22.1 { # SunOS 5.10 (Solaris 10) patch additions atomic_and_64_nv; atomic_and_8; atomic_and_8_nv; - atomic_and_uchar = NODYNSORT; - atomic_and_uchar_nv = NODYNSORT; - atomic_and_uint_nv = NODYNSORT; - atomic_and_ulong = NODYNSORT; - atomic_and_ulong_nv = NODYNSORT; - atomic_and_ushort = NODYNSORT; - atomic_and_ushort_nv = NODYNSORT; + atomic_and_uchar { FLAGS = NODYNSORT }; + atomic_and_uchar_nv { FLAGS = NODYNSORT }; + atomic_and_uint_nv { FLAGS = NODYNSORT }; + atomic_and_ulong { FLAGS = NODYNSORT }; + atomic_and_ulong_nv { FLAGS = NODYNSORT }; + atomic_and_ushort { FLAGS = NODYNSORT }; + atomic_and_ushort_nv { FLAGS = NODYNSORT }; atomic_cas_16; atomic_cas_32; atomic_cas_64; atomic_cas_8; - atomic_cas_ptr = NODYNSORT; - atomic_cas_uchar = NODYNSORT; - atomic_cas_uint = NODYNSORT; - atomic_cas_ulong = NODYNSORT; - atomic_cas_ushort = NODYNSORT; - atomic_clear_long_excl = NODYNSORT; + atomic_cas_ptr { FLAGS = NODYNSORT }; + atomic_cas_uchar { FLAGS = NODYNSORT }; + atomic_cas_uint { FLAGS = NODYNSORT }; + atomic_cas_ulong { FLAGS = NODYNSORT }; + atomic_cas_ushort { FLAGS = NODYNSORT }; + atomic_clear_long_excl { FLAGS = NODYNSORT }; atomic_dec_16; atomic_dec_16_nv; atomic_dec_32; @@ -271,14 +326,14 @@ SUNW_1.22.1 { # SunOS 5.10 (Solaris 10) patch additions atomic_dec_64_nv; atomic_dec_8; atomic_dec_8_nv; - atomic_dec_uchar = NODYNSORT; - atomic_dec_uchar_nv = NODYNSORT; - atomic_dec_uint = NODYNSORT; - atomic_dec_uint_nv = NODYNSORT; - atomic_dec_ulong = NODYNSORT; - atomic_dec_ulong_nv = NODYNSORT; - atomic_dec_ushort = NODYNSORT; - atomic_dec_ushort_nv = NODYNSORT; + atomic_dec_uchar { FLAGS = NODYNSORT }; + atomic_dec_uchar_nv { FLAGS = NODYNSORT }; + atomic_dec_uint { FLAGS = NODYNSORT }; + atomic_dec_uint_nv { FLAGS = NODYNSORT }; + atomic_dec_ulong { FLAGS = NODYNSORT }; + atomic_dec_ulong_nv { FLAGS = NODYNSORT }; + atomic_dec_ushort { FLAGS = NODYNSORT }; + atomic_dec_ushort_nv { FLAGS = NODYNSORT }; atomic_inc_16; atomic_inc_16_nv; atomic_inc_32; @@ -287,14 +342,14 @@ SUNW_1.22.1 { # SunOS 5.10 (Solaris 10) patch additions atomic_inc_64_nv; atomic_inc_8; atomic_inc_8_nv; - atomic_inc_uchar = NODYNSORT; - atomic_inc_uchar_nv = NODYNSORT; - atomic_inc_uint = NODYNSORT; - atomic_inc_uint_nv = NODYNSORT; - atomic_inc_ulong = NODYNSORT; - atomic_inc_ulong_nv = NODYNSORT; - atomic_inc_ushort = NODYNSORT; - atomic_inc_ushort_nv = NODYNSORT; + atomic_inc_uchar { FLAGS = NODYNSORT }; + atomic_inc_uchar_nv { FLAGS = NODYNSORT }; + atomic_inc_uint { FLAGS = NODYNSORT }; + atomic_inc_uint_nv { FLAGS = NODYNSORT }; + atomic_inc_ulong { FLAGS = NODYNSORT }; + atomic_inc_ulong_nv { FLAGS = NODYNSORT }; + atomic_inc_ushort { FLAGS = NODYNSORT }; + atomic_inc_ushort_nv { FLAGS = NODYNSORT }; atomic_or_16; atomic_or_16_nv; atomic_or_32_nv; @@ -302,30 +357,104 @@ SUNW_1.22.1 { # SunOS 5.10 (Solaris 10) patch additions atomic_or_64_nv; atomic_or_8; atomic_or_8_nv; - atomic_or_uchar = NODYNSORT; - atomic_or_uchar_nv = NODYNSORT; - atomic_or_uint_nv = NODYNSORT; - atomic_or_ulong = NODYNSORT; - atomic_or_ulong_nv = NODYNSORT; - atomic_or_ushort = NODYNSORT; - atomic_or_ushort_nv = NODYNSORT; - atomic_set_long_excl = NODYNSORT; + atomic_or_uchar { FLAGS = NODYNSORT }; + atomic_or_uchar_nv { FLAGS = NODYNSORT }; + atomic_or_uint_nv { FLAGS = NODYNSORT }; + atomic_or_ulong { FLAGS = NODYNSORT }; + atomic_or_ulong_nv { FLAGS = NODYNSORT }; + atomic_or_ushort { FLAGS = NODYNSORT }; + atomic_or_ushort_nv { FLAGS = NODYNSORT }; + atomic_set_long_excl { FLAGS = NODYNSORT }; atomic_swap_16; atomic_swap_32; atomic_swap_64; atomic_swap_8; - atomic_swap_ptr = NODYNSORT; - atomic_swap_uchar = NODYNSORT; - atomic_swap_uint = NODYNSORT; - atomic_swap_ulong = NODYNSORT; - atomic_swap_ushort = NODYNSORT; + atomic_swap_ptr { FLAGS = NODYNSORT }; + atomic_swap_uchar { FLAGS = NODYNSORT }; + atomic_swap_uint { FLAGS = NODYNSORT }; + atomic_swap_ulong { FLAGS = NODYNSORT }; + atomic_swap_ushort { FLAGS = NODYNSORT }; membar_consumer; membar_enter; membar_exit; membar_producer; + +$if _ELF32 + enable_extended_FILE_stdio; +$endif + +$if i386 + # Note: atomic_[and,dec,inc,or]_64_nv are also defined above. Here, + # we add the NODYNSORT attribute to them. On this platform, they are + # aliases for the non-_nv versions. If that is changed, these lines + # should be removed. + atomic_and_64_nv { FLAGS = NODYNSORT }; + atomic_dec_64_nv { FLAGS = NODYNSORT }; + atomic_inc_64_nv { FLAGS = NODYNSORT }; + atomic_or_64_nv { FLAGS = NODYNSORT }; +$endif +$if _sparc + # Note: atomic_OP_WIDTH_nv symbols are also defined above. Here, + # we add the NODYNSORT attribute to them. On this platform, they are + # aliases for the non-_nv versions. If that is changed, these lines + # should be removed. + atomic_add_8_nv { FLAGS = NODYNSORT }; + atomic_and_8_nv { FLAGS = NODYNSORT }; + atomic_and_16_nv { FLAGS = NODYNSORT }; + atomic_and_32_nv { FLAGS = NODYNSORT }; + atomic_and_64_nv { FLAGS = NODYNSORT }; + atomic_dec_8_nv { FLAGS = NODYNSORT }; + atomic_dec_16_nv { FLAGS = NODYNSORT }; + atomic_dec_32_nv { FLAGS = NODYNSORT }; + atomic_dec_64_nv { FLAGS = NODYNSORT }; + atomic_inc_8_nv { FLAGS = NODYNSORT }; + atomic_inc_16_nv { FLAGS = NODYNSORT }; + atomic_inc_32_nv { FLAGS = NODYNSORT }; + atomic_inc_64_nv { FLAGS = NODYNSORT }; + atomic_or_8_nv { FLAGS = NODYNSORT }; + atomic_or_16_nv { FLAGS = NODYNSORT }; + atomic_or_32_nv { FLAGS = NODYNSORT }; + atomic_or_64_nv { FLAGS = NODYNSORT }; +$endif } SUNW_1.22; -SUNW_1.22 { # SunOS 5.10 (Solaris 10) +SYMBOL_VERSION SUNW_1.22 { # SunOS 5.10 (Solaris 10) + global: +$if _ELF32 + dladdr { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + dlclose { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + dldump { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + dlerror { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + dlopen { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + dlsym { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; +$elif sparcv9 + dladdr { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + dlclose { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + dldump { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + dlerror { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + dlopen { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + dlsym { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; +$elif amd64 + dladdr { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + dlamd64getunwind { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + dlclose { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + dldump { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + dlerror { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + dlopen { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + dlsym { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; +$else +$error unknown platform +$endif + protected: alphasort; _alphasort; @@ -335,12 +464,12 @@ SUNW_1.22 { # SunOS 5.10 (Solaris 10) atomic_add_32_nv; atomic_add_64; atomic_add_64_nv; - atomic_add_long = NODYNSORT; - atomic_add_long_nv = NODYNSORT; + atomic_add_long { FLAGS = NODYNSORT }; + atomic_add_long_nv { FLAGS = NODYNSORT }; atomic_and_32; - atomic_and_uint = NODYNSORT; + atomic_and_uint { FLAGS = NODYNSORT }; atomic_or_32; - atomic_or_uint = NODYNSORT; + atomic_or_uint { FLAGS = NODYNSORT }; _Exit; getisax; _getisax; @@ -463,9 +592,9 @@ SUNW_1.22 { # SunOS 5.10 (Solaris 10) pthread_barrier_wait; pthread_condattr_getclock; pthread_condattr_setclock; - pthread_mutexattr_getrobust_np = NODYNSORT; - pthread_mutexattr_setrobust_np = NODYNSORT; - pthread_mutex_consistent_np = NODYNSORT; + pthread_mutexattr_getrobust_np { FLAGS = NODYNSORT }; + pthread_mutexattr_setrobust_np { FLAGS = NODYNSORT }; + pthread_mutex_consistent_np { FLAGS = NODYNSORT }; pthread_mutex_reltimedlock_np; pthread_mutex_timedlock; pthread_rwlock_reltimedrdlock_np; @@ -533,14 +662,73 @@ SUNW_1.22 { # SunOS 5.10 (Solaris 10) wcstoll; wcstoull; wcstoumax; + +$if lf64 + alphasort64; + _alphasort64; + pselect_large_fdset; + scandir64; + _scandir64; +$endif + +$if _ELF64 + walkcontext; +$endif + +$if _sparc + # Note: atomic_add_[16,32,64]_nv are also defined above. Here, we add + # the NODYNSORT attribute to them. On this platform, they are aliases + # for the non-_nv versions. If that is changed, these lines should be + # removed. + atomic_add_16_nv { FLAGS = NODYNSORT }; + atomic_add_32_nv { FLAGS = NODYNSORT }; + atomic_add_64_nv { FLAGS = NODYNSORT }; +$endif + +$if i386 + # Note: atomic_add_64_nv is also defined above. Here, we add the + # NODYNSORT attribute to it. On this platform, it is an aliases for + # atomic_add_64. If that is changed, this line should be removed. + atomic_add_64_nv { FLAGS = NODYNSORT }; +$endif + +$if amd64 + # Exception unwind APIs required by the amd64 ABI + _SUNW_Unwind_DeleteException; + _SUNW_Unwind_ForcedUnwind; + _SUNW_Unwind_GetCFA; + _SUNW_Unwind_GetGR; + _SUNW_Unwind_GetIP; + _SUNW_Unwind_GetLanguageSpecificData; + _SUNW_Unwind_GetRegionStart; + _SUNW_Unwind_RaiseException; + _SUNW_Unwind_Resume; + _SUNW_Unwind_SetGR; + _SUNW_Unwind_SetIP; + _UA_CLEANUP_PHASE; + _UA_FORCE_UNWIND; + _UA_HANDLER_FRAME; + _UA_SEARCH_PHASE; + _Unwind_DeleteException; + _Unwind_ForcedUnwind; + _Unwind_GetCFA; + _Unwind_GetGR; + _Unwind_GetIP; + _Unwind_GetLanguageSpecificData; + _Unwind_GetRegionStart; + _Unwind_RaiseException; + _Unwind_Resume; + _Unwind_SetGR; + _Unwind_SetIP; +$endif } SUNW_1.21.3; -SUNW_1.21.3 { # SunOS 5.9 (Solaris 9) patch additions +SYMBOL_VERSION SUNW_1.21.3 { # SunOS 5.9 (Solaris 9) patch additions protected: forkall; } SUNW_1.21.2; -SUNW_1.21.2 { # SunOS 5.9 (Solaris 9) patch additions +SYMBOL_VERSION SUNW_1.21.2 { # SunOS 5.9 (Solaris 9) patch additions protected: getustack; _getustack; @@ -555,14 +743,19 @@ SUNW_1.21.2 { # SunOS 5.9 (Solaris 9) patch additions _stack_setbounds; stack_violation; _stack_violation; + +$if _sparc + __makecontext_v2; + ___makecontext_v2; +$endif } SUNW_1.21.1; -SUNW_1.21.1 { # SunOS 5.9 (Solaris 9) patch additions +SYMBOL_VERSION SUNW_1.21.1 { # SunOS 5.9 (Solaris 9) patch additions protected: crypt_gensalt; } SUNW_1.21; -SUNW_1.21 { # SunOS 5.9 (Solaris 9) +SYMBOL_VERSION SUNW_1.21 { # SunOS 5.9 (Solaris 9) protected: attropen; _attropen; @@ -585,7 +778,7 @@ SUNW_1.21 { # SunOS 5.9 (Solaris 9) getcpuid; _getcpuid; gethomelgroup; - _gethomelgroup = NODYNSORT; + _gethomelgroup { FLAGS = NODYNSORT }; getpagesizes; getrctl; _getrctl; @@ -634,15 +827,28 @@ SUNW_1.21 { # SunOS 5.9 (Solaris 9) _vsscanf; vswscanf; vwscanf; + +$if _ELF32 + walkcontext; +$endif + +$if lf64 + attropen64; + _attropen64; + fstatat64; + _fstatat64; + openat64; + _openat64; +$endif } SUNW_1.20.4; -SUNW_1.20.4 { # SunOS 5.8 (Solaris 8) patch additions +SYMBOL_VERSION SUNW_1.20.4 { # SunOS 5.8 (Solaris 8) patch additions protected: semtimedop; _semtimedop; } SUNW_1.20.1; -SUNW_1.20.1 { # SunOS 5.8 (Solaris 8) patch additions +SYMBOL_VERSION SUNW_1.20.1 { # SunOS 5.8 (Solaris 8) patch additions protected: getacct; _getacct; @@ -666,13 +872,13 @@ SUNW_1.20.1 { # SunOS 5.8 (Solaris 8) patch additions _wracct; } SUNW_1.20; -SUNW_1.20 { # SunOS 5.8 (Solaris 8) +SYMBOL_VERSION SUNW_1.20 { # SunOS 5.8 (Solaris 8) protected: getextmntent; resetmnttab; } SUNW_1.19; -SUNW_1.19 { +SYMBOL_VERSION SUNW_1.19 { protected: strlcat; strlcpy; @@ -680,12 +886,12 @@ SUNW_1.19 { _umount2; } SUNW_1.18.1; -SUNW_1.18.1 { +SYMBOL_VERSION SUNW_1.18.1 { protected: __fsetlocking; } SUNW_1.18; -SUNW_1.18 { # SunOS 5.7 (Solaris 7) +SYMBOL_VERSION SUNW_1.18 { # SunOS 5.7 (Solaris 7) protected: btowc; __fbufsize; @@ -741,93 +947,97 @@ SUNW_1.18 { # SunOS 5.7 (Solaris 7) wmemset; wprintf; wscanf; + +$if _ELF32 + select_large_fdset; +$endif } SUNW_1.17; # The empty versions SUNW_1.2 through SUNW_1.17 must be preserved because # applications built on Solaris 2.6 Beta (when they did contain symbols) # may depend on them. All symbol content for SunOS 5.6 is now in SUNW_1.1 -SUNW_1.17 { +SYMBOL_VERSION SUNW_1.17 { protected: SUNW_1.17; } SUNW_1.16; -SUNW_1.16 { +SYMBOL_VERSION SUNW_1.16 { protected: SUNW_1.16; } SUNW_1.15; -SUNW_1.15 { +SYMBOL_VERSION SUNW_1.15 { protected: SUNW_1.15; } SUNW_1.14; -SUNW_1.14 { +SYMBOL_VERSION SUNW_1.14 { protected: SUNW_1.14; } SUNW_1.13; -SUNW_1.13 { +SYMBOL_VERSION SUNW_1.13 { protected: SUNW_1.13; } SUNW_1.12; -SUNW_1.12 { +SYMBOL_VERSION SUNW_1.12 { protected: SUNW_1.12; } SUNW_1.11; -SUNW_1.11 { +SYMBOL_VERSION SUNW_1.11 { protected: SUNW_1.11; } SUNW_1.10; -SUNW_1.10 { +SYMBOL_VERSION SUNW_1.10 { protected: SUNW_1.10; } SUNW_1.9; -SUNW_1.9 { +SYMBOL_VERSION SUNW_1.9 { protected: SUNW_1.9; } SUNW_1.8; -SUNW_1.8 { +SYMBOL_VERSION SUNW_1.8 { protected: SUNW_1.8; } SUNW_1.7; -SUNW_1.7 { +SYMBOL_VERSION SUNW_1.7 { protected: SUNW_1.7; } SUNW_1.6; -SUNW_1.6 { +SYMBOL_VERSION SUNW_1.6 { protected: SUNW_1.6; } SUNW_1.5; -SUNW_1.5 { +SYMBOL_VERSION SUNW_1.5 { protected: SUNW_1.5; } SUNW_1.4; -SUNW_1.4 { +SYMBOL_VERSION SUNW_1.4 { protected: SUNW_1.4; } SUNW_1.3; -SUNW_1.3 { +SYMBOL_VERSION SUNW_1.3 { protected: SUNW_1.3; } SUNW_1.2; -SUNW_1.2 { +SYMBOL_VERSION SUNW_1.2 { protected: SUNW_1.2; } SUNW_1.1; -SUNW_1.1 { # SunOS 5.6 (Solaris 2.6) +SYMBOL_VERSION SUNW_1.1 { # SunOS 5.6 (Solaris 2.6) global: __loc1; protected: @@ -942,8 +1152,8 @@ SUNW_1.1 { # SunOS 5.6 (Solaris 2.6) regex; resolvepath; _resolvepath; - rwlock_destroy = NODYNSORT; - _rwlock_destroy = NODYNSORT; + rwlock_destroy { FLAGS = NODYNSORT }; + _rwlock_destroy { FLAGS = NODYNSORT }; sema_destroy; _sema_destroy; _setjmp; @@ -1012,9 +1222,74 @@ SUNW_1.1 { # SunOS 5.6 (Solaris 2.6) wsxfrm; __xpg4_putmsg; __xpg4_putpmsg; + +$if lf64 + creat64; + _creat64; + fgetpos64; + fopen64; + freopen64; + fseeko64; + fsetpos64; + fstat64; + _fstat64; + fstatvfs64; + _fstatvfs64; + ftello64; + ftruncate64; + _ftruncate64; + ftw64; + _ftw64; + getdents64; + _getdents64; + getrlimit64; + _getrlimit64; + lockf64; + _lockf64; + lseek64; + _lseek64; + lstat64; + _lstat64; + mkstemp64; + _mkstemp64; + mmap64; + _mmap64; + nftw64; + _nftw64; + open64; + _open64; + __posix_readdir_r; + pread64; + _pread64; + pwrite64; + _pwrite64; + readdir64; + _readdir64; + readdir64_r; + _readdir64_r; + setrlimit64; + _setrlimit64; + s_fcntl; + _s_fcntl { FLAGS = NODYNSORT }; + s_ioctl; + stat64; + _stat64; + statvfs64; + _statvfs64; + tell64; + _tell64; + tmpfile64; + truncate64; + _truncate64; + _xftw64; +$endif + +$if _sparc + __flt_rounds; +$endif } SUNW_0.9; -SUNW_0.9 { # SunOS 5.5 (Solaris 2.5) +SYMBOL_VERSION SUNW_0.9 { # SunOS 5.5 (Solaris 2.5) protected: acl; bcmp; @@ -1079,15 +1354,15 @@ SUNW_0.9 { # SunOS 5.5 (Solaris 2.5) wait4; } SUNW_0.8; -SUNW_0.8 { # SunOS 5.4 (Solaris 2.4) +SYMBOL_VERSION SUNW_0.8 { # SunOS 5.4 (Solaris 2.4) global: - __xpg4 = NODIRECT; + __xpg4 { FLAGS = NODIRECT }; protected: addsev; - cond_broadcast = NODYNSORT; - cond_destroy = NODYNSORT; + cond_broadcast { FLAGS = NODYNSORT }; + cond_destroy { FLAGS = NODYNSORT }; cond_init; - cond_signal = NODYNSORT; + cond_signal { FLAGS = NODYNSORT }; cond_timedwait; cond_wait; confstr; @@ -1099,24 +1374,24 @@ SUNW_0.8 { # SunOS 5.4 (Solaris 2.4) iconv_close; iconv_open; lfmt; - mutex_destroy = NODYNSORT; + mutex_destroy { FLAGS = NODYNSORT }; mutex_init; - mutex_lock = NODYNSORT; - mutex_trylock = NODYNSORT; - mutex_unlock = NODYNSORT; + mutex_lock { FLAGS = NODYNSORT }; + mutex_trylock { FLAGS = NODYNSORT }; + mutex_unlock { FLAGS = NODYNSORT }; pfmt; regcomp; regerror; regexec; regfree; rwlock_init; - rw_rdlock = NODYNSORT; + rw_rdlock { FLAGS = NODYNSORT }; rw_read_held; - rw_tryrdlock = NODYNSORT; - rw_trywrlock = NODYNSORT; - rw_unlock = NODYNSORT; + rw_tryrdlock { FLAGS = NODYNSORT }; + rw_trywrlock { FLAGS = NODYNSORT }; + rw_unlock { FLAGS = NODYNSORT }; rw_write_held; - rw_wrlock = NODYNSORT; + rw_wrlock { FLAGS = NODYNSORT }; sema_held; sema_init; sema_post; @@ -1135,7 +1410,7 @@ SUNW_0.8 { # SunOS 5.4 (Solaris 2.4) thr_join; thr_keycreate; thr_kill; - thr_self = NODYNSORT; + thr_self { FLAGS = NODYNSORT }; thr_setconcurrency; thr_setprio; thr_setspecific; @@ -1148,24 +1423,47 @@ SUNW_0.8 { # SunOS 5.4 (Solaris 2.4) wordfree; } SUNW_0.7; -SUNW_0.7 { # SunOS 5.3 (Solaris 2.3) +SYMBOL_VERSION SUNW_0.7 { # SunOS 5.3 (Solaris 2.3) global: altzone; - isnanf = FUNCTION FILTER libm.so.2; + _ctype; + isnanf { TYPE = FUNCTION; FILTER = libm.so.2 }; lone; lten; lzero; - memalign = NODIRECT; - modff = FUNCTION FILTER libm.so.2; + memalign { FLAGS = NODIRECT }; + modff { TYPE = FUNCTION; FILTER = libm.so.2 }; nss_default_finders; + _sibuf; + _sobuf; + _sys_buslist; + _sys_cldlist; + _sys_fpelist; _sys_illlist; - valloc = NODIRECT; + _sys_segvlist; + _sys_siginfolistp; + _sys_siglist; + _sys_siglistn; + _sys_siglistp; + _sys_traplist; + valloc { FLAGS = NODIRECT }; + +$if _ELF32 + _bufendtab; + _lastbuf; + sys_errlist; + sys_nerr; + _sys_nsig; +$endif + protected: a64l; adjtime; ascftime; + _assert; atoll; brk; + __builtin_alloca; cftime; closelog; csetcol; @@ -1202,8 +1500,10 @@ SUNW_0.7 { # SunOS 5.3 (Solaris 2.3) fgetspent; fgetspent_r; _filbuf; + file_to_decimal; finite; - fork1 = NODYNSORT; + _flsbuf; + fork1 { FLAGS = NODYNSORT }; fpclass; fpgetmask; fpgetsticky; @@ -1286,6 +1586,8 @@ SUNW_0.7 { # SunOS 5.3 (Solaris 2.3) mlockall; mrand48; munlockall; + _mutex_held { FLAGS = NODYNSORT }; + _mutex_lock { FLAGS = NODYNSORT }; nrand48; _nss_netdb_aliases; _nss_XbyY_buf_alloc; @@ -1295,6 +1597,7 @@ SUNW_0.7 { # SunOS 5.3 (Solaris 2.3) __nsw_getconfig; openlog; plock; + p_online; pread; __priocntl; __priocntlset; @@ -1317,6 +1620,8 @@ SUNW_0.7 { # SunOS 5.3 (Solaris 2.3) realpath; remque; _remque; + _rw_read_held; + _rw_write_held; seconvert; seed48; select; @@ -1334,6 +1639,7 @@ SUNW_0.7 { # SunOS 5.3 (Solaris 2.3) sig2str; sigwait; single_to_decimal; + srand48; ssignal; statfs; str2sig; @@ -1344,6 +1650,7 @@ SUNW_0.7 { # SunOS 5.3 (Solaris 2.3) strtoll; strtoull; swapctl; + _syscall; sysfs; syslog; _syslog; @@ -1364,22 +1671,827 @@ SUNW_0.7 { # SunOS 5.3 (Solaris 2.3) vhangup; vsyslog; yield; + +$if i386 + # Note: _syscall is also defined above. Here, we add the NODYNSORT + # attribute to it. On this platform, it is an alias to syscall. + # If that is changed, this lines should be removed. + _syscall { FLAGS = NODYNSORT }; +$endif + +# The 32-bit sparc ABI requires SISCD_2.3. On other platforms, those symbols +# go directly into SUNW_0.7. +$if sparc32 +} SISCD_2.3; + +SYMBOL_VERSION SISCD_2.3 { +$endif + + global: + errno { FLAGS = NODIRECT }; + _iob; + + protected: + addseverity; + _addseverity; + asctime_r; + crypt; + _crypt; + ctime_r; + encrypt; + _encrypt; + endgrent; + endpwent; + ___errno; + fgetgrent; + fgetgrent_r; + fgetpwent; + fgetpwent_r; + flockfile; + funlockfile; + getchar_unlocked; + getc_unlocked; + getgrent; + getgrent_r; + getgrgid_r; + getgrnam_r; + getitimer; + _getitimer; + getlogin_r; + getpwent; + getpwent_r; + getpwnam_r; + getpwuid_r; + gettimeofday; + _gettimeofday; + gmtime_r; + localtime_r; + putchar_unlocked; + putc_unlocked; + rand_r; + readdir_r; + setgrent; + setitimer; + _setitimer; + setkey; + _setkey; + setpwent; + strtok_r; + sysinfo; + _sysinfo; + ttyname_r; + +$if _ELF32 + __div64; + __mul64; + __rem64; + __udiv64; + __urem64; +$endif + +$if sparc32 + __dtoll; + __dtoull; + __ftoll; + __ftoull; + _Q_lltoq; + _Q_qtoll; + _Q_qtoull; + _Q_ulltoq; + sbrk; + _sbrk; + __umul64 { FLAGS = NODYNSORT }; # Same address as __mul64 +$endif + +# On 32-bit platforms, the following symbols go into SYSVABI_1.3, but on +# other platforms they go directly into the current version (which will be +# either SUNW_0.7, or SISCD_2.3, depending on the similar issue described above. +$if _ELF32 +} SYSVABI_1.3; + +SYMBOL_VERSION SYSVABI_1.3 { +$endif + + global: + _altzone; + calloc { FLAGS = NODIRECT }; + __ctype; + daylight; + _daylight; + environ { FLAGS = NODIRECT }; + _environ { FLAGS = NODIRECT }; + free { FLAGS = NODIRECT }; + frexp { TYPE = FUNCTION; FILTER = libm.so.2 }; + getdate_err; + _getdate_err; + getenv; + __huge_val; + __iob; + isnan { TYPE = FUNCTION; FILTER = libm.so.2 }; + _isnan { TYPE = FUNCTION; FILTER = libm.so.2 }; + isnand { TYPE = FUNCTION; FILTER = libm.so.2 }; + _isnand { TYPE = FUNCTION; FILTER = libm.so.2 }; + ldexp { TYPE = FUNCTION; FILTER = libm.so.2 }; + logb { TYPE = FUNCTION; FILTER = libm.so.2 }; + malloc { FLAGS = NODIRECT }; + modf { TYPE = FUNCTION; FILTER = libm.so.2 }; + _modf { TYPE = FUNCTION; FILTER = libm.so.2 }; + nextafter { TYPE = FUNCTION; FILTER = libm.so.2 }; + _nextafter { TYPE = FUNCTION; FILTER = libm.so.2 }; + _numeric; + optarg; + opterr; + optind; + optopt; + realloc { FLAGS = NODIRECT }; + scalb { TYPE = FUNCTION; FILTER = libm.so.2 }; + _scalb { TYPE = FUNCTION; FILTER = libm.so.2 }; + timezone; + _timezone; + tzname; + _tzname; + +$if _x86 + memcmp; + memcpy; + memmove; + memset; +$endif + +$if i386 + _fp_hw; +$endif + + protected: + abort; + abs; + access; + _access; + acct; + _acct; + alarm; + _alarm; + asctime; + __assert; + atexit; + atof; + atoi; + atol; + bsearch; + catclose; + _catclose; + catgets; + _catgets; + catopen; + _catopen; + cfgetispeed; + _cfgetispeed; + cfgetospeed; + _cfgetospeed; + cfsetispeed; + _cfsetispeed; + cfsetospeed; + _cfsetospeed; + chdir; + _chdir; + chmod; + _chmod; + chown; + _chown; + chroot; + _chroot; + _cleanup; + clearerr; + clock; + _close; + close; + closedir; + _closedir; + creat; + _creat; + ctermid; + ctime; + cuserid; + _cuserid; + difftime; + div; + dup; + _dup; + dup2; + _dup2; + execl; + _execl; + execle; + _execle; + execlp; + _execlp; + execv; + _execv; + execve; + _execve; + execvp; + _execvp; + exit; + _exit; + fattach; + _fattach; + fchdir; + _fchdir; + fchmod; + _fchmod; + fchown; + _fchown; + fclose; + fcntl; + _fcntl; + fdetach; + _fdetach; + fdopen; + _fdopen; + feof; + ferror; + fflush; + fgetc; + fgetpos; + fgets; + __filbuf; + fileno; + _fileno; + __flsbuf; + fmtmsg; + _fmtmsg; + fopen; + _fork; + fork; + fpathconf; + _fpathconf; + fprintf; + fputc; + fputs; + fread; + freopen; + fscanf; + fseek; + fsetpos; + fstat; + _fstat; + fstatvfs; + _fstatvfs; + fsync; + _fsync; + ftell; + ftok; + _ftok; + fwrite; + getc; + getchar; + getcontext; + _getcontext; + getcwd; + _getcwd; + getdate; + _getdate; + getegid; + _getegid; + geteuid; + _geteuid; + getgid; + _getgid; + getgrgid; + getgrnam; + getgroups; + _getgroups; + getlogin; + getmsg; + _getmsg; + getopt; + _getopt; + getpass; + _getpass; + getpgid; + _getpgid; + getpgrp; + _getpgrp; + getpid; + _getpid; + getpmsg; + _getpmsg; + getppid; + _getppid; + getpwnam; + getpwuid; + getrlimit; + _getrlimit; + gets; + getsid; + _getsid; + getsubopt; + _getsubopt; + gettxt; + _gettxt; + getuid; + _getuid; + getw; + _getw; + gmtime; + grantpt; + _grantpt; + hcreate; + _hcreate; + hdestroy; + _hdestroy; + hsearch; + _hsearch; + initgroups; + _initgroups; + ioctl; + _ioctl; + isalnum; + isalpha; + isascii; + _isascii; + isastream; + _isastream; + isatty; + _isatty; + iscntrl; + isdigit; + isgraph; + islower; + isprint; + ispunct; + isspace; + isupper; + isxdigit; + kill; + _kill; + labs; + lchown; + _lchown; + ldiv; + lfind; + _lfind; + link; + _link; + localeconv; + localtime; + lockf; + _lockf; + longjmp; + lsearch; + _lsearch; + lseek; + _lseek; + lstat; + _lstat; + makecontext; + _makecontext; + mblen; + mbstowcs; + mbtowc; + memccpy; + _memccpy; + memchr; + memcntl; + _memcntl; + mkdir; + _mkdir; + mkfifo; + _mkfifo; + mknod; + _mknod; + mktemp; + _mktemp; + mktime; + mlock; + _mlock; + mmap; + _mmap; + monitor; + _monitor; + mount; + _mount; + mprotect; + _mprotect; + msgctl; + _msgctl; + msgget; + _msgget; + msgrcv; + _msgrcv; + msgsnd; + _msgsnd; + msync; + _msync; + munlock; + _munlock; + munmap; + _munmap; + nftw; + _nftw; + nice; + _nice; + nl_langinfo; + _nl_langinfo; + open; + _open; + opendir; + _opendir; + pathconf; + _pathconf; + pause; + _pause; + pclose; + _pclose; + perror; + pipe; + _pipe; + poll; + _poll; + popen; + _popen; + printf; + profil; + _profil; + ptsname; + _ptsname; + putc; + putchar; + putenv; + _putenv; + putmsg; + _putmsg; + putpmsg; + _putpmsg; + puts; + putw; + _putw; + qsort; + raise; + rand; + read; + _read; + readdir; + _readdir; + readlink; + _readlink; + readv; + _readv; + remove; + rename; + _rename; + rewind; + rewinddir; + _rewinddir; + rmdir; + _rmdir; + scanf; + seekdir; + _seekdir; + semctl; + _semctl; + semget; + _semget; + semop; + _semop; + setbuf; + setcontext; + _setcontext { FLAGS = NODYNSORT }; + setgid; + _setgid; + setgroups; + _setgroups; + setjmp; + setlabel; + setlocale; + setpgid; + _setpgid; + setpgrp; + _setpgrp; + setrlimit; + _setrlimit; + setsid; + _setsid; + setuid; + _setuid; + setvbuf; + shmat; + _shmat; + shmctl; + _shmctl; + shmdt; + _shmdt; + shmget; + _shmget; + sigaction; + _sigaction { FLAGS = NODYNSORT }; + sigaddset; + _sigaddset; + sigaltstack; + _sigaltstack; + sigdelset; + _sigdelset; + sigemptyset; + _sigemptyset; + sigfillset; + _sigfillset; + sighold; + _sighold; + sigignore; + _sigignore; + sigismember; + _sigismember; + siglongjmp; + _siglongjmp; + signal; + sigpause; + _sigpause; + sigpending; + _sigpending; + sigprocmask; + _sigprocmask; + sigrelse; + _sigrelse; + sigsend; + _sigsend; + sigsendset; + _sigsendset; + sigset; + _sigset; + sigsetjmp; + _sigsetjmp { FLAGS = NODYNSORT }; + sigsuspend; + _sigsuspend; + sleep; + _sleep; + sprintf; + srand; + sscanf; + stat; + _stat; + statvfs; + _statvfs; + stime; + _stime; + strcat; + strchr; + strcmp; + strcoll; + strcpy; + strcspn; + strdup; + _strdup; + strerror; + strftime; + strlen; + strncat; + strncmp; + strncpy; + strpbrk; + strrchr; + strspn; + strstr; + strtod; + strtok; + strtol; + strtoul; + strxfrm; + swab; + _swab; + swapcontext; + _swapcontext; + symlink; + _symlink; + sync; + _sync; + sysconf; + _sysconf; + system; + tcdrain; + _tcdrain; + tcflow; + _tcflow; + tcflush; + _tcflush; + tcgetattr; + _tcgetattr; + tcgetpgrp; + _tcgetpgrp; + tcgetsid; + _tcgetsid; + tcsendbreak; + _tcsendbreak; + tcsetattr; + _tcsetattr; + tcsetpgrp; + _tcsetpgrp; + tdelete; + _tdelete; + tell; + _tell; + telldir; + _telldir; + tempnam; + _tempnam; + tfind; + _tfind; + time; + _time; + times; + _times; + tmpfile; + tmpnam; + toascii; + _toascii; + tolower; + _tolower; + toupper; + _toupper; + tsearch; + _tsearch; + ttyname; + twalk; + _twalk; + tzset; + _tzset; + ulimit; + _ulimit; + umask; + _umask; + umount; + _umount; + uname; + _uname; + ungetc; + unlink; + _unlink; + unlockpt; + _unlockpt; + utime; + _utime; + vfprintf; + vprintf; + vsprintf; + wait; + _wait; + waitid; + _waitid; + waitpid; + _waitpid; + wcstombs; + wctomb; + write; + _write; + writev; + _writev; + _xftw; + +$if _ELF32 + ptrace; + _ptrace; +$endif + +$if i386 + _fxstat; + _lxstat; + nuname; + _nuname; + _xmknod; + _xstat; +$endif + +$if !sparc32 + sbrk; +$endif + +$if _sparc + __dtou; + __ftou; +$endif + +$if sparc32 + .div; + .mul; + .rem; + .stret1; + .stret2; + .stret4; + # .stret4 and .stret8 are the same thing + .stret8 { FLAGS = NODYNSORT }; + .udiv; + .umul; + .urem; + _Q_add; + _Q_cmp; + _Q_cmpe; + _Q_div; + _Q_dtoq; + _Q_feq; + _Q_fge; + _Q_fgt; + _Q_fle; + _Q_flt; + _Q_fne; + _Q_itoq; + _Q_mul; + _Q_neg; + _Q_qtod; + _Q_qtoi; + _Q_qtos; + _Q_qtou; + _Q_sqrt; + _Q_stoq; + _Q_sub; + _Q_utoq; +$endif + +$if sparcv9 + # __align_cpy_1 is an alias for memcpy. Filter it out of + # the .SUNW_dynsymsort section + __align_cpy_1 { FLAGS = NODYNSORT }; + __align_cpy_16; + __align_cpy_2; + __align_cpy_4; + # __align_cpy_8 is same as __align_cpy_16 + __align_cpy_8 { FLAGS = NODYNSORT }; + __dtoul; + __ftoul; + _Qp_add; + _Qp_cmp; + _Qp_cmpe; + _Qp_div; + _Qp_dtoq; + _Qp_feq; + _Qp_fge; + _Qp_fgt; + _Qp_fle; + _Qp_flt; + _Qp_fne; + _Qp_itoq; + _Qp_mul; + _Qp_neg; + _Qp_qtod; + _Qp_qtoi; + _Qp_qtos; + _Qp_qtoui; + _Qp_qtoux; + _Qp_qtox; + _Qp_sqrt; + _Qp_stoq; + _Qp_sub; + _Qp_uitoq; + _Qp_uxtoq; + _Qp_xtoq; + __sparc_utrap_install; +$endif + +# On amd64, we also have SYSVABI_1.3, but it contains a small subset of +# the symbols put in that version on other platforms. +$if amd64 +} SYSVABI_1.3; + +SYMBOL_VERSION SYSVABI_1.3 { +$endif + global: +$if !_sparc + __flt_rounds; +$endif + + protected: + _ctermid; + _getgrgid; + _getgrnam; + _getlogin; + _getpwnam; + _getpwuid; + _ttyname; + +$if !sparc32 + _sbrk; +$endif + +$if _x86 + _fpstart; + __fpstart; +$endif }; + + # There should never be more than one SUNWprivate version. # Don't add any more. Add new private symbols to SUNWprivate_1.1 -SUNWprivate_1.1 { +SYMBOL_VERSION SUNWprivate_1.1 { global: - ___Argv = NODIRECT; - cfree = NODIRECT; + ___Argv { FLAGS = NODIRECT }; + cfree { FLAGS = NODIRECT }; _cswidth; __ctype_mask; - __environ_lock = NODIRECT; + __environ_lock { FLAGS = NODIRECT }; __inf_read; __inf_written; __i_size; - _isnanf = FUNCTION FILTER libm.so.2; + _isnanf { TYPE = FUNCTION; FILTER = libm.so.2 }; __lc_charmap; __lc_collate; __lc_ctype; @@ -1389,13 +2501,13 @@ SUNWprivate_1.1 { __lc_numeric; __lc_time; __libc_threaded; - _lib_version = NODIRECT; - _logb = FUNCTION FILTER libm.so.2; - _lone = NODYNSORT; - _lten = NODYNSORT; - _lzero = NODYNSORT; + _lib_version { FLAGS = NODIRECT }; + _logb { TYPE = FUNCTION; FILTER = libm.so.2 }; + _lone { FLAGS = NODYNSORT }; + _lten { FLAGS = NODYNSORT }; + _lzero { FLAGS = NODYNSORT }; __malloc_lock; - _modff = FUNCTION FILTER libm.so.2; + _modff { TYPE = FUNCTION; FILTER = libm.so.2 }; __nan_read; __nan_written; __nis_debug_bind; @@ -1414,7 +2526,68 @@ SUNWprivate_1.1 { __trans_lower; __trans_upper; _uberdata; - __xpg6 = NODIRECT; + __xpg6 { FLAGS = NODIRECT }; + +$if _ELF32 + _dladdr { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + _dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + _dlclose { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + _dldump { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + _dlerror { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + _dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + _dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + _dlopen { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + _dlsym { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + _ld_libc { TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 }; + _sys_errlist; + _sys_errs; + _sys_index; + _sys_nerr { FLAGS = NODYNSORT }; + _sys_num_err; +$elif sparcv9 + _dladdr { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + _dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + _dlclose { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + _dldump { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + _dlerror { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + _dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + _dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + _dlopen { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + _dlsym { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; + _ld_libc { TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 }; +$elif amd64 + _dladdr { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + _dladdr1 { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + _dlamd64getunwind { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + _dlclose { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + _dldump { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + _dlerror { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + _dlinfo { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + _dlmopen { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + _dlopen { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + _dlsym { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; + _ld_libc { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 }; +$else +$error unknown platform +$endif + +$if _sparc + __lyday_to_month; + __mon_lengths; + __yday_to_month; +$endif + +$if _x86 + _memcmp; + _memcpy; + _memmove; + _memset; +$endif + +$if i386 + _sse_hw; +$endif + protected: acctctl; allocids; @@ -1488,8 +2661,8 @@ SUNWprivate_1.1 { __fnmatch_C; __fnmatch_sb; __fnmatch_std; - _fork1 = NODYNSORT; - _forkall = NODYNSORT; + _fork1 { FLAGS = NODYNSORT }; + _forkall { FLAGS = NODYNSORT }; _fpclass; _fpgetmask; _fpgetround; @@ -1500,6 +2673,7 @@ SUNWprivate_1.1 { _fpsetsticky; __fputwc_xpg5; __fputws_xpg5; + __fseterror_u; _ftw; _gcvt; _getarg; @@ -1537,7 +2711,7 @@ SUNWprivate_1.1 { klpd_register_id; klpd_unregister; klpd_unregister_id; - _lgrp_home_fast = NODYNSORT; + _lgrp_home_fast { FLAGS = NODYNSORT }; _lgrpsys; _lltostr; __localeconv_std; @@ -1583,10 +2757,10 @@ SUNWprivate_1.1 { __monetary_init; msgctl64; __multi_innetgr; - _mutex_destroy = NODYNSORT; + _mutex_destroy { FLAGS = NODYNSORT }; mutex_held; - _mutex_init = NODYNSORT; - _mutex_unlock = NODYNSORT; + _mutex_init { FLAGS = NODYNSORT }; + _mutex_unlock { FLAGS = NODYNSORT }; name_to_attr; nfs_getfh; nfssvc; @@ -1812,69 +2986,196 @@ SUNWprivate_1.1 { zone_setattr; zone_shutdown; zone_version; + +$if _ELF32 + __divdi3; + _file_set; + _fprintf_c89; + _fscanf_c89; + _fwprintf_c89; + _fwscanf_c89; + _imaxabs_c89; + _imaxdiv_c89; + __moddi3; + _printf_c89; + _scanf_c89; + _snprintf_c89; + _sprintf_c89; + _sscanf_c89; + _strtoimax_c89; + _strtoumax_c89; + _swprintf_c89; + _swscanf_c89; + __udivdi3; + __umoddi3; + _vfprintf_c89; + _vfscanf_c89; + _vfwprintf_c89; + _vfwscanf_c89; + _vprintf_c89; + _vscanf_c89; + _vsnprintf_c89; + _vsprintf_c89; + _vsscanf_c89; + _vswprintf_c89; + _vswscanf_c89; + _vwprintf_c89; + _vwscanf_c89; + _wcstoimax_c89; + _wcstoumax_c89; + _wprintf_c89; + _wscanf_c89; +$endif + +$if _sparc + _cerror; + install_utrap; + _install_utrap; + nop; + _Q_cplx_div; + _Q_cplx_div_ix; + _Q_cplx_div_rx; + _Q_cplx_lr_div; + _Q_cplx_lr_div_ix; + _Q_cplx_lr_div_rx; + _Q_cplx_lr_mul; + _Q_cplx_mul; + _QgetRD; + _xregs_clrptr; +$endif + +$if sparc32 + __ashldi3; + __ashrdi3; + _cerror64; + __cmpdi2; + __floatdidf; + __floatdisf; + __lshrdi3; + __muldi3; + __ucmpdi2; +$endif + +$if _x86 + _D_cplx_lr_div; + _D_cplx_lr_div_ix; + _D_cplx_lr_div_rx; + _F_cplx_lr_div; + _F_cplx_lr_div_ix; + _F_cplx_lr_div_rx; + __fltrounds; + sysi86; + _sysi86; + _X_cplx_div; + _X_cplx_div_ix; + _X_cplx_div_rx; + _X_cplx_lr_div; + _X_cplx_lr_div_ix; + _X_cplx_lr_div_rx; + _X_cplx_mul; + __xgetRD; + __xtol; + __xtoll; + __xtoul; + __xtoull; +$endif + +$if i386 + __divrem64; + ___tls_get_addr; + __udivrem64; +$endif + # The following functions should not be exported from libc, # but /lib/libm.so.2, some older versions of the Studio # compiler/debugger components, and some ancient programs # found in /usr/dist reference them. When we no longer # care about these old and broken binary objects, these # symbols should be deleted. - _brk = NODYNSORT; - _cond_broadcast = NODYNSORT; - _cond_init = NODYNSORT; - _cond_signal = NODYNSORT; - _cond_wait = NODYNSORT; - _ecvt = NODYNSORT; - _fcvt = NODYNSORT; - _getc_unlocked = NODYNSORT; - _llseek = NODYNSORT; - _pthread_attr_getdetachstate = NODYNSORT; - _pthread_attr_getinheritsched = NODYNSORT; - _pthread_attr_getschedparam = NODYNSORT; - _pthread_attr_getschedpolicy = NODYNSORT; - _pthread_attr_getscope = NODYNSORT; - _pthread_attr_getstackaddr = NODYNSORT; - _pthread_attr_getstacksize = NODYNSORT; - _pthread_attr_init = NODYNSORT; - _pthread_condattr_getpshared = NODYNSORT; - _pthread_condattr_init = NODYNSORT; - _pthread_cond_init = NODYNSORT; - _pthread_create = NODYNSORT; - _pthread_getschedparam = NODYNSORT; - _pthread_join = NODYNSORT; - _pthread_key_create = NODYNSORT; - _pthread_mutexattr_getprioceiling = NODYNSORT; - _pthread_mutexattr_getprotocol = NODYNSORT; - _pthread_mutexattr_getpshared = NODYNSORT; - _pthread_mutexattr_init = NODYNSORT; - _pthread_mutex_getprioceiling = NODYNSORT; - _pthread_mutex_init = NODYNSORT; - _pthread_sigmask = NODYNSORT; - _rwlock_init = NODYNSORT; - _rw_rdlock = NODYNSORT; - _rw_unlock = NODYNSORT; - _rw_wrlock = NODYNSORT; - _sbrk_unlocked = NODYNSORT; - _select = NODYNSORT; - _sema_init = NODYNSORT; - _sema_post = NODYNSORT; - _sema_trywait = NODYNSORT; - _sema_wait = NODYNSORT; - _sysfs = NODYNSORT; - _thr_create = NODYNSORT; - _thr_exit = NODYNSORT; - _thr_getprio = NODYNSORT; - _thr_getspecific = NODYNSORT; - _thr_join = NODYNSORT; - _thr_keycreate = NODYNSORT; - _thr_kill = NODYNSORT; - _thr_main = NODYNSORT; - _thr_self = NODYNSORT; - _thr_setspecific = NODYNSORT; - _thr_sigsetmask = NODYNSORT; - _thr_stksegment = NODYNSORT; - _ungetc_unlocked = NODYNSORT; + _brk { FLAGS = NODYNSORT }; + _cond_broadcast { FLAGS = NODYNSORT }; + _cond_init { FLAGS = NODYNSORT }; + _cond_signal { FLAGS = NODYNSORT }; + _cond_wait { FLAGS = NODYNSORT }; + _ecvt { FLAGS = NODYNSORT }; + _fcvt { FLAGS = NODYNSORT }; + _getc_unlocked { FLAGS = NODYNSORT }; + _llseek { FLAGS = NODYNSORT }; + _pthread_attr_getdetachstate { FLAGS = NODYNSORT }; + _pthread_attr_getinheritsched { FLAGS = NODYNSORT }; + _pthread_attr_getschedparam { FLAGS = NODYNSORT }; + _pthread_attr_getschedpolicy { FLAGS = NODYNSORT }; + _pthread_attr_getscope { FLAGS = NODYNSORT }; + _pthread_attr_getstackaddr { FLAGS = NODYNSORT }; + _pthread_attr_getstacksize { FLAGS = NODYNSORT }; + _pthread_attr_init { FLAGS = NODYNSORT }; + _pthread_condattr_getpshared { FLAGS = NODYNSORT }; + _pthread_condattr_init { FLAGS = NODYNSORT }; + _pthread_cond_init { FLAGS = NODYNSORT }; + _pthread_create { FLAGS = NODYNSORT }; + _pthread_getschedparam { FLAGS = NODYNSORT }; + _pthread_join { FLAGS = NODYNSORT }; + _pthread_key_create { FLAGS = NODYNSORT }; + _pthread_mutexattr_getprioceiling { FLAGS = NODYNSORT }; + _pthread_mutexattr_getprotocol { FLAGS = NODYNSORT }; + _pthread_mutexattr_getpshared { FLAGS = NODYNSORT }; + _pthread_mutexattr_init { FLAGS = NODYNSORT }; + _pthread_mutex_getprioceiling { FLAGS = NODYNSORT }; + _pthread_mutex_init { FLAGS = NODYNSORT }; + _pthread_sigmask { FLAGS = NODYNSORT }; + _rwlock_init { FLAGS = NODYNSORT }; + _rw_rdlock { FLAGS = NODYNSORT }; + _rw_unlock { FLAGS = NODYNSORT }; + _rw_wrlock { FLAGS = NODYNSORT }; + _sbrk_unlocked { FLAGS = NODYNSORT }; + _select { FLAGS = NODYNSORT }; + _sema_init { FLAGS = NODYNSORT }; + _sema_post { FLAGS = NODYNSORT }; + _sema_trywait { FLAGS = NODYNSORT }; + _sema_wait { FLAGS = NODYNSORT }; + _sysfs { FLAGS = NODYNSORT }; + _thr_create { FLAGS = NODYNSORT }; + _thr_exit { FLAGS = NODYNSORT }; + _thr_getprio { FLAGS = NODYNSORT }; + _thr_getspecific { FLAGS = NODYNSORT }; + _thr_join { FLAGS = NODYNSORT }; + _thr_keycreate { FLAGS = NODYNSORT }; + _thr_kill { FLAGS = NODYNSORT }; + _thr_main { FLAGS = NODYNSORT }; + _thr_self { FLAGS = NODYNSORT }; + _thr_setspecific { FLAGS = NODYNSORT }; + _thr_sigsetmask { FLAGS = NODYNSORT }; + _thr_stksegment { FLAGS = NODYNSORT }; + _ungetc_unlocked { FLAGS = NODYNSORT }; + local: - __imax_lldiv = NODYNSORT; - _ti_thr_self = NODYNSORT; + __imax_lldiv { FLAGS = NODYNSORT }; + _ti_thr_self { FLAGS = NODYNSORT }; *; + +$if lf64 + _seekdir64 { FLAGS = NODYNSORT }; + _telldir64 { FLAGS = NODYNSORT }; +$endif + +$if _sparc + __cerror { FLAGS = NODYNSORT }; +$endif + +$if sparc32 + __cerror64 { FLAGS = NODYNSORT }; +$endif + +$if sparcv9 + __cleanup { FLAGS = NODYNSORT }; +$endif + +$if i386 + _syscall6 { FLAGS = NODYNSORT }; + __systemcall6 { FLAGS = NODYNSORT }; +$endif + +$if amd64 + ___tls_get_addr { FLAGS = NODYNSORT }; +$endif }; |