xref: /illumos-gate/usr/src/cmd/sgs/liblddbg/common/mapfile-vers (revision d656abb5804319b33c85955a73ee450ef7ff9739)
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.69 {
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_fini;
210		Dbg64_map_sort_fini;
211		Dbg32_map_sort_orig;
212		Dbg64_map_sort_orig;
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_created;
281		Dbg64_sec_created;
282		Dbg32_sec_discarded;
283		Dbg64_sec_discarded;
284		Dbg32_sec_genstr_compress;
285		Dbg64_sec_genstr_compress;
286		Dbg32_sec_group;
287		Dbg64_sec_group;
288		Dbg32_sec_gnu_comdat;
289		Dbg64_sec_gnu_comdat;
290		Dbg32_sec_in;
291		Dbg64_sec_in;
292		Dbg32_sec_order_error;
293		Dbg64_sec_order_error;
294		Dbg32_sec_order_list;
295		Dbg64_sec_order_list;
296		Dbg32_sec_redirected;
297		Dbg64_sec_redirected;
298		Dbg32_sec_strtab;
299		Dbg64_sec_strtab;
300		Dbg32_sec_unsup_strmerge;
301		Dbg64_sec_unsup_strmerge;
302
303		Dbg32_seg_entry;
304		Dbg64_seg_entry;
305		Dbg32_seg_list;
306		Dbg64_seg_list;
307		Dbg32_seg_os;
308		Dbg64_seg_os;
309		Dbg32_seg_title;
310		Dbg64_seg_title;
311
312		Dbg32_shdr_modified;
313		Dbg64_shdr_modified;
314
315		Dbg32_statistics_ar;
316		Dbg64_statistics_ar;
317		Dbg32_statistics_ld;
318		Dbg64_statistics_ld;
319
320		Dbg32_support_action;
321		Dbg64_support_action;
322		Dbg32_support_load;
323		Dbg64_support_load;
324		Dbg32_support_req;
325		Dbg64_support_req;
326		Dbg32_support_vnone;
327		Dbg64_support_vnone;
328
329		Dbg32_syminfo_entry;
330		Dbg64_syminfo_entry;
331		Dbg32_syminfo_title;
332		Dbg64_syminfo_title;
333
334		Dbg32_syms_ar_checking;
335		Dbg64_syms_ar_checking;
336		Dbg32_syms_ar_entry;
337		Dbg64_syms_ar_entry;
338		Dbg32_syms_ar_resolve;
339		Dbg64_syms_ar_resolve;
340		Dbg32_syms_ar_title;
341		Dbg64_syms_ar_title;
342		Dbg32_syms_created;
343		Dbg64_syms_created;
344		Dbg32_syms_discarded;
345		Dbg64_syms_discarded;
346		Dbg32_syms_dup_discarded;
347		Dbg64_syms_dup_discarded;
348		Dbg32_syms_dlsym;
349		Dbg64_syms_dlsym;
350		Dbg32_syms_dup_sort_addr;
351		Dbg64_syms_dup_sort_addr;
352		Dbg32_syms_entered;
353		Dbg64_syms_entered;
354		Dbg32_syms_entry;
355		Dbg64_syms_entry;
356		Dbg32_syms_global;
357		Dbg64_syms_global;
358		Dbg32_syms_ignore;
359		Dbg64_syms_ignore;
360		Dbg32_syms_ignore_gnuver;
361		Dbg64_syms_ignore_gnuver;
362		Dbg32_syms_lazy_rescan;
363		Dbg64_syms_lazy_rescan;
364		Dbg32_syms_lookup;
365		Dbg64_syms_lookup;
366		Dbg32_syms_lookup_aout;
367		Dbg32_syms_new;
368		Dbg64_syms_new;
369		Dbg32_syms_old;
370		Dbg64_syms_old;
371		Dbg32_syms_process;
372		Dbg64_syms_process;
373		Dbg32_syms_reduce;
374		Dbg64_syms_reduce;
375		Dbg32_syms_reloc;
376		Dbg64_syms_reloc;
377		Dbg32_syms_resolved;
378		Dbg64_syms_resolved;
379		Dbg32_syms_resolving;
380		Dbg64_syms_resolving;
381		Dbg32_syms_sec_entry;
382		Dbg64_syms_sec_entry;
383		Dbg32_syms_sec_title;
384		Dbg64_syms_sec_title;
385		Dbg32_syms_spec_title;
386		Dbg64_syms_spec_title;
387		Dbg32_syms_updated;
388		Dbg64_syms_updated;
389		Dbg32_syms_up_title;
390		Dbg64_syms_up_title;
391
392		Dbg_tls_modactivity;
393		Dbg_tls_static_block;
394		Dbg_tls_static_resv;
395
396		Dbg32_util_call_array;
397		Dbg64_util_call_array;
398		Dbg32_util_call_fini;
399		Dbg64_util_call_fini;
400		Dbg32_util_call_init;
401		Dbg64_util_call_init;
402		Dbg32_util_call_main;
403		Dbg64_util_call_main;
404		Dbg32_util_collect;
405		Dbg64_util_collect;
406		Dbg32_util_dbnotify;
407		Dbg64_util_dbnotify;
408		Dbg32_util_edge_in;
409		Dbg64_util_edge_in;
410		Dbg32_util_edge_out;
411		Dbg64_util_edge_out;
412		Dbg32_util_lcinterface;
413		Dbg64_util_lcinterface;
414		Dbg32_util_intoolate;
415		Dbg64_util_intoolate;
416		Dbg32_util_nl;
417		Dbg64_util_nl;
418		Dbg32_util_no_init;
419		Dbg64_util_no_init;
420		Dbg32_util_scc_entry;
421		Dbg64_util_scc_entry;
422		Dbg32_util_scc_title;
423		Dbg64_util_scc_title;
424		Dbg32_util_str;
425		Dbg64_util_str;
426
427		Dbg32_unused_file;
428		Dbg64_unused_file;
429		Dbg32_unused_lcinterface;
430		Dbg64_unused_lcinterface;
431		Dbg32_unused_path;
432		Dbg64_unused_path;
433		Dbg32_unused_sec;
434		Dbg64_unused_sec;
435		Dbg32_unused_unref;
436		Dbg64_unused_unref;
437
438		Dbg32_ver_avail_entry;
439		Dbg64_ver_avail_entry;
440		Dbg32_ver_avail_title;
441		Dbg64_ver_avail_title;
442		Dbg32_ver_def_title;
443		Dbg64_ver_def_title;
444		Dbg32_ver_desc_entry;
445		Dbg64_ver_desc_entry;
446		Dbg32_ver_need_entry;
447		Dbg64_ver_need_entry;
448		Dbg32_ver_need_title;
449		Dbg64_ver_need_title;
450		Dbg32_ver_nointerface;
451		Dbg64_ver_nointerface;
452		Dbg32_ver_symbol;
453		Dbg64_ver_symbol;
454
455} SUNWprivate_3.23;
456
457
458# The following interfaces are used by various parts of the link-editors and
459# elfdump(1).  The link-editors are always packaged together but there
460# seems to be a variety of old elfdump's lying around.  elfdump only uses
461# this interface, and thus by separating in from the ever changing Dbg_*
462# interfaces we can provide a stable versioning environment for this utility.
463
464SUNWprivate_3.23 {
465	global:
466		Elf_syminfo_entry;
467		Elf_syminfo_title;
468
469		Elf32_cap_entry;
470		Elf64_cap_entry;
471		Elf32_cap_title;
472		Elf64_cap_title;
473
474		Elf32_demangle_name;
475		Elf64_demangle_name;
476		Elf32_dyn_entry;
477		Elf64_dyn_entry;
478		Elf32_dyn_null_entry;
479		Elf64_dyn_null_entry;
480		Elf32_dyn_title;
481		Elf64_dyn_title;
482
483		Elf32_ehdr;
484		Elf64_ehdr;
485
486		Elf32_got_entry;
487		Elf64_got_entry;
488		Elf32_got_title;
489		Elf64_got_title;
490
491		Elf32_phdr;
492		Elf64_phdr;
493
494		Elf32_reloc_apply_reg;
495		Elf64_reloc_apply_reg;
496		Elf32_reloc_apply_val;
497		Elf64_reloc_apply_val;
498		Elf32_reloc_entry_1;
499		Elf64_reloc_entry_1;
500		Elf32_reloc_entry_2;
501		Elf64_reloc_entry_2;
502		Elf32_reloc_title;
503		Elf64_reloc_title;
504
505		Elf32_shdr;
506		Elf64_shdr;
507
508		Elf32_syms_table_title;
509		Elf64_syms_table_title;
510		Elf32_syms_table_entry;
511		Elf64_syms_table_entry;
512
513		Elf32_ver_def_title;
514		Elf64_ver_def_title;
515		Elf32_ver_line_1;
516		Elf64_ver_line_1;
517		Elf32_ver_line_2;
518		Elf64_ver_line_2;
519		Elf32_ver_line_3;
520		Elf64_ver_line_3;
521		Elf32_ver_line_4;
522		Elf64_ver_line_4;
523		Elf32_ver_line_5;
524		Elf64_ver_line_5;
525		Elf32_ver_need_title;
526		Elf64_ver_need_title;
527
528	local:
529		*;
530};
531
532# The following functions must be provided by our caller, or one of the callers
533# dependencies.  When used with ld.so.1 all functions are provided from ld.so.1,
534# but when used with ld, many of the functions fall back to libc.  Presently we
535# don't build liblddbg with a libc dependency simply to avoid having to load it
536# with ld.so.1 which already offers the required interfaces (from libc_pic.a).
537# Distinguishing between `parent' and `extern' symbols offers a small
538# performance advantage with direct bindings, but this is mainly a test of what
539# we're capable of doing, rather than an admission that its really worth it :-).
540
541{
542		_close =	FUNCTION extern;
543		_open =		FUNCTION extern;
544		_write =	FUNCTION extern;
545		dgettext =	FUNCTION extern;
546		dlopen =	FUNCTION extern;
547		dlsym =		FUNCTION extern;
548		free =		FUNCTION parent;
549		malloc =	FUNCTION parent;
550		memcpy =	FUNCTION extern;
551		qsort =		FUNCTION extern;
552		snprintf =	FUNCTION extern;
553		sprintf =	FUNCTION extern;
554		strcat =	FUNCTION extern;
555		strcmp =	FUNCTION extern;
556		strcpy =	FUNCTION extern;
557		strlen =	FUNCTION extern;
558		strrchr =	FUNCTION extern;
559		strtok_r =	FUNCTION extern;
560};
561