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