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 2009 Sun Microsystems, Inc. All rights reserved. 24# Use is subject to license terms. 25# 26# 27# Generic interface definition for usr/src/cmd/sgs/liblddbg. 28# 29 30# 31# MAPFILE HEADER START 32# 33# WARNING: STOP NOW. DO NOT MODIFY THIS FILE. 34# Object versioning must comply with the rules detailed in 35# 36# usr/src/lib/README.mapfiles 37# 38# You should not be making modifications here until you've read the most current 39# copy of that file. If you need help, contact a gatekeeper for guidance. 40# 41# MAPFILE HEADER END 42# 43 44SUNWprivate_4.70 { 45 global: 46 dbg_desc = NODIRECT; # interposed - ld.so.1(1) 47 dbg_print = NODIRECT; # interposed - ld(1) and ld.so.1(1) 48 49 Dbg_args_files; 50 Dbg_args_opts; 51 Dbg_args_str2chr; 52 Dbg_args_Wldel; 53 Dbg_audit_ignore; 54 Dbg_audit_interface; 55 Dbg_audit_lib; 56 Dbg_audit_object; 57 Dbg_audit_symval; 58 Dbg_audit_skip; 59 Dbg_audit_terminate; 60 Dbg_audit_version; 61 62 Dbg_setup; 63 64 Dbg32_bind_global; 65 Dbg64_bind_global; 66 Dbg32_bind_plt_summary; 67 Dbg64_bind_plt_summary; 68 Dbg64_bind_pltpad_from; 69 Dbg64_bind_pltpad_to; 70 Dbg32_bind_reject; 71 Dbg64_bind_reject; 72 Dbg32_bind_weak; 73 Dbg64_bind_weak; 74 75 Dbg32_cap_hw_candidate; 76 Dbg64_cap_hw_candidate; 77 Dbg32_cap_hw_filter; 78 Dbg64_cap_hw_filter; 79 Dbg32_cap_mapfile; 80 Dbg64_cap_mapfile; 81 Dbg32_cap_sec_entry; 82 Dbg64_cap_sec_entry; 83 Dbg32_cap_sec_title; 84 Dbg64_cap_sec_title; 85 Dbg32_cap_val_hw1; 86 Dbg64_cap_val_hw1; 87 88 Dbg32_demangle_name; 89 Dbg64_demangle_name; 90 91 Dbg32_ent_print; 92 Dbg64_ent_print; 93 94 Dbg32_file_analyze; 95 Dbg64_file_analyze; 96 Dbg32_file_aout; 97 Dbg64_file_aout; 98 Dbg32_file_ar; 99 Dbg64_file_ar; 100 Dbg32_file_ar_rescan; 101 Dbg64_file_ar_rescan; 102 Dbg32_file_bind_entry; 103 Dbg64_file_bind_entry; 104 Dbg32_file_bindings; 105 Dbg64_file_bindings; 106 Dbg32_file_cntl; 107 Dbg64_file_cntl; 108 Dbg32_file_config_dis; 109 Dbg64_file_config_dis; 110 Dbg32_file_config_obj; 111 Dbg64_file_config_obj; 112 Dbg32_file_del_rescan; 113 Dbg64_file_del_rescan; 114 Dbg32_file_delete; 115 Dbg64_file_delete; 116 Dbg32_file_dlclose; 117 Dbg64_file_dlclose; 118 Dbg32_file_dldump; 119 Dbg64_file_dldump; 120 Dbg32_file_dlopen; 121 Dbg64_file_dlopen; 122 Dbg32_file_elf; 123 Dbg64_file_elf; 124 Dbg32_file_cleanup; 125 Dbg64_file_cleanup; 126 Dbg32_file_filtee; 127 Dbg64_file_filtee; 128 Dbg32_file_filter; 129 Dbg64_file_filter; 130 Dbg32_file_fixname; 131 Dbg64_file_fixname; 132 Dbg32_file_generic; 133 Dbg64_file_generic; 134 Dbg32_file_hdl_action; 135 Dbg64_file_hdl_action; 136 Dbg32_file_hdl_collect; 137 Dbg64_file_hdl_collect; 138 Dbg32_file_hdl_title; 139 Dbg64_file_hdl_title; 140 Dbg32_file_lazyload; 141 Dbg64_file_lazyload; 142 Dbg32_file_ldso; 143 Dbg64_file_ldso; 144 Dbg32_file_mmapobj; 145 Dbg64_file_mmapobj; 146 Dbg32_file_mode_promote; 147 Dbg64_file_mode_promote; 148 Dbg32_file_modified; 149 Dbg64_file_modified; 150 Dbg32_file_needed; 151 Dbg64_file_needed; 152 Dbg32_file_output; 153 Dbg64_file_output; 154 Dbg32_file_preload; 155 Dbg64_file_preload; 156 Dbg32_file_prot; 157 Dbg64_file_prot; 158 Dbg32_file_rejected; 159 Dbg64_file_rejected; 160 Dbg32_file_reuse; 161 Dbg64_file_reuse; 162 Dbg32_file_skip; 163 Dbg64_file_skip; 164 165 Dbg32_got_display; 166 Dbg64_got_display; 167 168 Dbg32_libs_audit; 169 Dbg64_libs_audit; 170 Dbg32_libs_find; 171 Dbg64_libs_find; 172 Dbg32_libs_found; 173 Dbg64_libs_found; 174 Dbg32_libs_insecure; 175 Dbg64_libs_insecure; 176 Dbg32_libs_init; 177 Dbg64_libs_init; 178 Dbg32_libs_l; 179 Dbg64_libs_l; 180 Dbg32_libs_path; 181 Dbg64_libs_path; 182 Dbg32_libs_req; 183 Dbg64_libs_req; 184 Dbg32_libs_update; 185 Dbg64_libs_update; 186 Dbg32_libs_yp; 187 Dbg64_libs_yp; 188 Dbg32_libs_ylu; 189 Dbg64_libs_ylu; 190 191 Dbg32_map_dash; 192 Dbg64_map_dash; 193 Dbg32_map_ent; 194 Dbg64_map_ent; 195 Dbg32_map_parse; 196 Dbg64_map_parse; 197 Dbg32_map_pipe; 198 Dbg64_map_pipe; 199 Dbg32_map_set_atsign; 200 Dbg64_map_set_atsign; 201 Dbg32_map_seg; 202 Dbg64_map_seg; 203 Dbg32_map_set_equal; 204 Dbg64_map_set_equal; 205 Dbg32_map_size_new; 206 Dbg64_map_size_new; 207 Dbg32_map_size_old; 208 Dbg64_map_size_old; 209 Dbg32_map_sort; 210 Dbg64_map_sort; 211 Dbg32_map_sort_seg; 212 Dbg64_map_sort_seg; 213 Dbg32_map_symbol; 214 Dbg64_map_symbol; 215 Dbg32_map_version; 216 Dbg64_map_version; 217 218 Dbg32_move_adjexpandreloc; 219 Dbg64_move_adjexpandreloc; 220 Dbg32_move_adjmovereloc; 221 Dbg64_move_adjmovereloc; 222 Dbg32_move_bad; 223 Dbg64_move_bad; 224 Dbg32_move_data; 225 Dbg64_move_data; 226 Dbg32_move_entry1; 227 Dbg64_move_entry1; 228 Dbg32_move_entry2; 229 Dbg64_move_entry2; 230 Dbg32_move_expand; 231 Dbg64_move_expand; 232 Dbg32_move_input; 233 Dbg64_move_input; 234 Dbg32_move_outmove; 235 Dbg64_move_outmove; 236 Dbg32_move_outsctadj; 237 Dbg64_move_outsctadj; 238 Dbg32_move_parexpn; 239 Dbg64_move_parexpn; 240 241 Dbg32_reloc_apply_reg; 242 Dbg64_reloc_apply_reg; 243 Dbg32_reloc_apply_val; 244 Dbg64_reloc_apply_val; 245 Dbg32_reloc_ars_entry; 246 Dbg64_reloc_ars_entry; 247 Dbg32_reloc_copy; 248 Dbg64_reloc_copy; 249 Dbg32_reloc_discard; 250 Dbg64_reloc_discard; 251 Dbg32_reloc_doact; 252 Dbg64_reloc_doact; 253 Dbg32_reloc_doact_title; 254 Dbg64_reloc_doact_title; 255 Dbg32_reloc_dooutrel; 256 Dbg64_reloc_dooutrel; 257 Dbg32_reloc_entry; 258 Dbg64_reloc_entry; 259 Dbg32_reloc_error; 260 Dbg64_reloc_error; 261 Dbg32_reloc_generate; 262 Dbg64_reloc_generate; 263 Dbg32_reloc_in; 264 Dbg64_reloc_in; 265 Dbg32_reloc_ors_entry; 266 Dbg64_reloc_ors_entry; 267 Dbg32_reloc_out; 268 Dbg64_reloc_out; 269 Dbg32_reloc_proc; 270 Dbg64_reloc_proc; 271 Dbg32_reloc_run; 272 Dbg64_reloc_run; 273 Dbg32_reloc_sloppycomdat; 274 Dbg64_reloc_sloppycomdat; 275 Dbg32_reloc_transition; 276 Dbg64_reloc_transition; 277 278 Dbg32_sec_added; 279 Dbg64_sec_added; 280 Dbg32_sec_backing; 281 Dbg64_sec_backing; 282 Dbg32_sec_created; 283 Dbg64_sec_created; 284 Dbg32_sec_discarded; 285 Dbg64_sec_discarded; 286 Dbg32_sec_genstr_compress; 287 Dbg64_sec_genstr_compress; 288 Dbg32_sec_group; 289 Dbg64_sec_group; 290 Dbg32_sec_gnu_comdat; 291 Dbg64_sec_gnu_comdat; 292 Dbg32_sec_in; 293 Dbg64_sec_in; 294 Dbg32_sec_order_error; 295 Dbg64_sec_order_error; 296 Dbg32_sec_order_list; 297 Dbg64_sec_order_list; 298 Dbg32_sec_redirected; 299 Dbg64_sec_redirected; 300 Dbg32_sec_strtab; 301 Dbg64_sec_strtab; 302 Dbg32_sec_unsup_strmerge; 303 Dbg64_sec_unsup_strmerge; 304 305 Dbg32_seg_entry; 306 Dbg64_seg_entry; 307 Dbg32_seg_list; 308 Dbg64_seg_list; 309 Dbg32_seg_os; 310 Dbg64_seg_os; 311 Dbg32_seg_title; 312 Dbg64_seg_title; 313 314 Dbg32_shdr_modified; 315 Dbg64_shdr_modified; 316 317 Dbg32_statistics_ar; 318 Dbg64_statistics_ar; 319 Dbg32_statistics_ld; 320 Dbg64_statistics_ld; 321 322 Dbg32_support_action; 323 Dbg64_support_action; 324 Dbg32_support_load; 325 Dbg64_support_load; 326 Dbg32_support_req; 327 Dbg64_support_req; 328 Dbg32_support_vnone; 329 Dbg64_support_vnone; 330 331 Dbg32_syminfo_entry; 332 Dbg64_syminfo_entry; 333 Dbg32_syminfo_title; 334 Dbg64_syminfo_title; 335 336 Dbg32_syms_ar_checking; 337 Dbg64_syms_ar_checking; 338 Dbg32_syms_ar_entry; 339 Dbg64_syms_ar_entry; 340 Dbg32_syms_ar_resolve; 341 Dbg64_syms_ar_resolve; 342 Dbg32_syms_ar_title; 343 Dbg64_syms_ar_title; 344 Dbg32_syms_created; 345 Dbg64_syms_created; 346 Dbg32_syms_discarded; 347 Dbg64_syms_discarded; 348 Dbg32_syms_dup_discarded; 349 Dbg64_syms_dup_discarded; 350 Dbg32_syms_dlsym; 351 Dbg64_syms_dlsym; 352 Dbg32_syms_dup_sort_addr; 353 Dbg64_syms_dup_sort_addr; 354 Dbg32_syms_entered; 355 Dbg64_syms_entered; 356 Dbg32_syms_entry; 357 Dbg64_syms_entry; 358 Dbg32_syms_global; 359 Dbg64_syms_global; 360 Dbg32_syms_ignore; 361 Dbg64_syms_ignore; 362 Dbg32_syms_ignore_gnuver; 363 Dbg64_syms_ignore_gnuver; 364 Dbg32_syms_lazy_rescan; 365 Dbg64_syms_lazy_rescan; 366 Dbg32_syms_lookup; 367 Dbg64_syms_lookup; 368 Dbg32_syms_lookup_aout; 369 Dbg32_syms_new; 370 Dbg64_syms_new; 371 Dbg32_syms_old; 372 Dbg64_syms_old; 373 Dbg32_syms_process; 374 Dbg64_syms_process; 375 Dbg32_syms_reduce; 376 Dbg64_syms_reduce; 377 Dbg32_syms_reloc; 378 Dbg64_syms_reloc; 379 Dbg32_syms_resolved; 380 Dbg64_syms_resolved; 381 Dbg32_syms_resolving; 382 Dbg64_syms_resolving; 383 Dbg32_syms_sec_entry; 384 Dbg64_syms_sec_entry; 385 Dbg32_syms_sec_title; 386 Dbg64_syms_sec_title; 387 Dbg32_syms_spec_title; 388 Dbg64_syms_spec_title; 389 Dbg32_syms_updated; 390 Dbg64_syms_updated; 391 Dbg32_syms_up_title; 392 Dbg64_syms_up_title; 393 394 Dbg_tls_modactivity; 395 Dbg_tls_static_block; 396 Dbg_tls_static_resv; 397 398 Dbg32_util_call_array; 399 Dbg64_util_call_array; 400 Dbg32_util_call_fini; 401 Dbg64_util_call_fini; 402 Dbg32_util_call_init; 403 Dbg64_util_call_init; 404 Dbg32_util_call_main; 405 Dbg64_util_call_main; 406 Dbg32_util_collect; 407 Dbg64_util_collect; 408 Dbg32_util_dbnotify; 409 Dbg64_util_dbnotify; 410 Dbg32_util_edge_in; 411 Dbg64_util_edge_in; 412 Dbg32_util_edge_out; 413 Dbg64_util_edge_out; 414 Dbg32_util_lcinterface; 415 Dbg64_util_lcinterface; 416 Dbg32_util_intoolate; 417 Dbg64_util_intoolate; 418 Dbg32_util_nl; 419 Dbg64_util_nl; 420 Dbg32_util_no_init; 421 Dbg64_util_no_init; 422 Dbg32_util_scc_entry; 423 Dbg64_util_scc_entry; 424 Dbg32_util_scc_title; 425 Dbg64_util_scc_title; 426 Dbg32_util_str; 427 Dbg64_util_str; 428 429 Dbg32_unused_file; 430 Dbg64_unused_file; 431 Dbg32_unused_lcinterface; 432 Dbg64_unused_lcinterface; 433 Dbg32_unused_path; 434 Dbg64_unused_path; 435 Dbg32_unused_sec; 436 Dbg64_unused_sec; 437 Dbg32_unused_unref; 438 Dbg64_unused_unref; 439 440 Dbg32_ver_avail_entry; 441 Dbg64_ver_avail_entry; 442 Dbg32_ver_avail_title; 443 Dbg64_ver_avail_title; 444 Dbg32_ver_def_title; 445 Dbg64_ver_def_title; 446 Dbg32_ver_desc_entry; 447 Dbg64_ver_desc_entry; 448 Dbg32_ver_need_entry; 449 Dbg64_ver_need_entry; 450 Dbg32_ver_need_title; 451 Dbg64_ver_need_title; 452 Dbg32_ver_nointerface; 453 Dbg64_ver_nointerface; 454 Dbg32_ver_symbol; 455 Dbg64_ver_symbol; 456 457} SUNWprivate_3.23; 458 459 460# The following interfaces are used by various parts of the link-editors and 461# elfdump(1). The link-editors are always packaged together but there 462# seems to be a variety of old elfdump's lying around. elfdump only uses 463# this interface, and thus by separating in from the ever changing Dbg_* 464# interfaces we can provide a stable versioning environment for this utility. 465 466SUNWprivate_3.23 { 467 global: 468 Elf_syminfo_entry; 469 Elf_syminfo_title; 470 471 Elf32_cap_entry; 472 Elf64_cap_entry; 473 Elf32_cap_title; 474 Elf64_cap_title; 475 476 Elf32_demangle_name; 477 Elf64_demangle_name; 478 Elf32_dyn_entry; 479 Elf64_dyn_entry; 480 Elf32_dyn_null_entry; 481 Elf64_dyn_null_entry; 482 Elf32_dyn_title; 483 Elf64_dyn_title; 484 485 Elf32_ehdr; 486 Elf64_ehdr; 487 488 Elf32_got_entry; 489 Elf64_got_entry; 490 Elf32_got_title; 491 Elf64_got_title; 492 493 Elf32_phdr; 494 Elf64_phdr; 495 496 Elf32_reloc_apply_reg; 497 Elf64_reloc_apply_reg; 498 Elf32_reloc_apply_val; 499 Elf64_reloc_apply_val; 500 Elf32_reloc_entry_1; 501 Elf64_reloc_entry_1; 502 Elf32_reloc_entry_2; 503 Elf64_reloc_entry_2; 504 Elf32_reloc_title; 505 Elf64_reloc_title; 506 507 Elf32_shdr; 508 Elf64_shdr; 509 510 Elf32_syms_table_title; 511 Elf64_syms_table_title; 512 Elf32_syms_table_entry; 513 Elf64_syms_table_entry; 514 515 Elf32_ver_def_title; 516 Elf64_ver_def_title; 517 Elf32_ver_line_1; 518 Elf64_ver_line_1; 519 Elf32_ver_line_2; 520 Elf64_ver_line_2; 521 Elf32_ver_line_3; 522 Elf64_ver_line_3; 523 Elf32_ver_line_4; 524 Elf64_ver_line_4; 525 Elf32_ver_line_5; 526 Elf64_ver_line_5; 527 Elf32_ver_need_title; 528 Elf64_ver_need_title; 529 530 local: 531 *; 532}; 533 534# The following functions must be provided by our caller, or one of the callers 535# dependencies. When used with ld.so.1 all functions are provided from ld.so.1, 536# but when used with ld, many of the functions fall back to libc. Presently we 537# don't build liblddbg with a libc dependency simply to avoid having to load it 538# with ld.so.1 which already offers the required interfaces (from libc_pic.a). 539# Distinguishing between `parent' and `extern' symbols offers a small 540# performance advantage with direct bindings, but this is mainly a test of what 541# we're capable of doing, rather than an admission that its really worth it :-). 542 543{ 544 _close = FUNCTION extern; 545 _open = FUNCTION extern; 546 _write = FUNCTION extern; 547 dgettext = FUNCTION extern; 548 dlopen = FUNCTION extern; 549 dlsym = FUNCTION extern; 550 free = FUNCTION parent; 551 malloc = FUNCTION parent; 552 memcpy = FUNCTION extern; 553 qsort = FUNCTION extern; 554 snprintf = FUNCTION extern; 555 sprintf = FUNCTION extern; 556 strcat = FUNCTION extern; 557 strcmp = FUNCTION extern; 558 strcpy = FUNCTION extern; 559 strlen = FUNCTION extern; 560 strrchr = FUNCTION extern; 561 strtok_r = FUNCTION extern; 562}; 563