1# 2# CDDL HEADER START 3# 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. 7# 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. 12# 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] 18# 19# CDDL HEADER END 20# 21 22# 23# Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved. 24# 25# Generic interface definition for usr/src/cmd/sgs/rtld. 26# 27 28# 29# MAPFILE HEADER START 30# 31# WARNING: STOP NOW. DO NOT MODIFY THIS FILE. 32# Object versioning must comply with the rules detailed in 33# 34# usr/src/lib/README.mapfiles 35# 36# You should not be making modifications here until you've read the most current 37# copy of that file. If you need help, contact a gatekeeper for guidance. 38# 39# MAPFILE HEADER END 40# 41 42$mapfile_version 2 43 44# 45# All symbols in ld.so.1 are private as no-one should bind to these directly. 46# 47SYMBOL_VERSION SUNWprivate_1.3 { 48 protected: 49 dladdr; # Standard dlopen(3x) family 50 dladdr1; 51 dldump; 52 dlclose; 53 dlerror; 54 dlinfo; 55 dlopen; 56 dlmopen; 57 dlsym; 58 59 _dladdr; # these should not exist 60 _dladdr1; 61 _dldump; 62 _dlclose; 63 _dlerror; 64 _dlinfo; 65 _dlopen; 66 _dlmopen; 67 _dlsym; 68 69 _ld_libc; # provides libc initialization 70 71 _elf_rtbndr; # dbx expects to find these 72 elf_rtbndr; 73 _rt_boot; # Provides basic adb symbol offsets 74 75 rtld_db_dlactivity; # Required to support librtld_db 76 rtld_db_preinit; 77 rtld_db_postinit; 78 r_debug; 79 80 elf_plt_write; 81 is_so_loaded; 82 lml_main; 83 lookup_sym; 84 85 alist_append; # librtld support 86 ld_entry_cnt; 87 dbg_desc; # Diagnostic support 88 dbg_print; 89 eprintf; # Error message printing 90 veprintf; 91 92 dgettext; # Messaging support 93 strerror; 94 95 calloc; # Memory management (mapmalloc). 96 free; 97 malloc; 98 realloc; 99 100 _environ; # PLT tracing getenv() support. 101 environ; 102 103 memcpy; # Some routines are useful for support 104 snprintf; # libraries such as liblddbg. 105 sprintf; # Note that some of these functions 106 strcat; # (like sprintf) may have reduced 107 strcmp; # functionality over libc, as a simpler 108 strcpy; # implementation is provided in ld.so.1. 109 strlen; 110 strrchr; 111 strtok_r; 112 ___errno; 113 qsort; 114 dl_iterate_phdr; 115 116$if _x86 && _ELF64 117 # amd64 ABI exception unwinding 118 _dlamd64getunwind; 119 dlamd64getunwind; 120$endif 121 122 # doXX_reloc_rtld and relocXX_table are required to 123 # support librtld.so. 124$if _ELF32 125 do32_reloc_rtld; 126 reloc32_table; 127$elif _ELF64 128 do64_reloc_rtld; 129 reloc64_table; 130$else 131$error unknown ELFCLASS 132$endif 133 local: 134 *; 135}; 136