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