xref: /titanic_44/usr/src/lib/libc/port/mapfile-vers (revision 78f171005391b928aaf1642b3206c534ed644332)
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# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
23#
24# Copyright 2010 Nexenta Systems, Inc.  All rights reserved.
25# Use is subject to license terms.
26#
27# Copyright (c) 2012 by Delphix. All rights reserved.
28# Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved.
29# Copyright (c) 2013 Gary Mills
30#
31
32#
33# MAPFILE HEADER START
34#
35# WARNING:  STOP NOW.  DO NOT MODIFY THIS FILE.
36# Object versioning must comply with the rules detailed in
37#
38#	usr/src/lib/README.mapfiles
39#
40# You should not be making modifications here until you've read the most current
41# copy of that file. If you need help, contact a gatekeeper for guidance.
42#
43# MAPFILE HEADER END
44#
45
46$mapfile_version 2
47
48#
49# All function names added to this or any other libc mapfile
50# must be placed under the 'protected:' designation.
51# The 'global:' designation is used *only* for data
52# items and for the members of the malloc() family.
53#
54
55#
56# README README README README README README: how to update this file
57#   1) each version of Solaris/OpenSolaris gets a version number.
58#      (Actually since Solaris is actually a series of OpenSolaris releases
59#	we'll just use OpenSolaris for this exercise.)
60#	OpenSolaris 2008.11 gets 1.23
61#	OpenSolaris 2009.04 gets 1.24
62#	etc.
63#   2) each project integration uses a unique version number.
64#	PSARC/2008/123 gets 1.24.1
65#	PSARC/2008/456 gets 1.24.2
66#	etc.
67#
68
69
70# Mnemonic conditional input identifiers:
71#
72# - amd64, i386, sparc32, sparcv9: Correspond to ISA subdirectories used to
73#	hold per-platform code. Note however that we use 'sparc32' instead of
74#	'sparc'. Since '_sparc' is predefined to apply to, all sparc platforms,
75#	naming the 32-bit version 'sparc' would be too likely to cause errors.
76#
77# -	lf64: Defined on platforms that offer the 32-bit largefile APIs
78#
79$if _ELF32
80$add lf64
81$endif
82$if _sparc && _ELF32
83$add sparc32
84$endif
85$if _sparc && _ELF64
86$add sparcv9
87$endif
88$if _x86 && _ELF32
89$add i386
90$endif
91$if _x86 && _ELF64
92$add amd64
93$endif
94
95SYMBOL_VERSION ILLUMOS_0.7 {	# Illumos additions
96    protected:
97	_glob_ext;
98	_globfree_ext;
99} ILLUMOS_0.6;
100
101SYMBOL_VERSION ILLUMOS_0.6 {	# Illumos additions
102    protected:
103	getloginx;
104	getloginx_r;
105	__posix_getloginx_r;
106} ILLUMOS_0.5;
107
108SYMBOL_VERSION ILLUMOS_0.5 {	# common C++ ABI exit handlers
109    protected:
110	__cxa_atexit;
111	__cxa_finalize;
112} ILLUMOS_0.4;
113
114SYMBOL_VERSION ILLUMOS_0.4 {	# Illumos additions
115    protected:
116        pipe2;
117        dup3;
118        mkostemp;
119        mkostemps;
120
121$if lf64
122        mkostemp64;
123        mkostemps64;
124$endif
125} ILLUMOS_0.3;
126
127SYMBOL_VERSION ILLUMOS_0.3 {	# Illumos additions
128    protected:
129        assfail3;
130} ILLUMOS_0.2;
131
132SYMBOL_VERSION ILLUMOS_0.2 {	# Illumos additions
133    protected:
134        posix_spawn_pipe_np;
135} ILLUMOS_0.1;
136
137SYMBOL_VERSION ILLUMOS_0.1 {	# Illumos additions
138    protected:
139        timegm;
140} SUNW_1.23;
141
142SYMBOL_VERSION SUNW_1.23 {	# SunOS 5.11 (Solaris 11)
143    global:
144	_nl_domain_bindings;
145	_nl_msg_cat_cntr;
146
147$if _ELF32
148	dl_iterate_phdr	{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
149$elif sparcv9
150	dl_iterate_phdr	{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
151$elif amd64
152	dl_iterate_phdr	{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
153$else
154$error unknown platform
155$endif
156
157    protected:
158
159$if sparc32
160	__align_cpy_1;
161$endif
162
163	addrtosymstr;
164	aio_cancel;
165	aiocancel;
166	aio_error;
167	aio_fsync;
168	aio_read;
169	aioread;
170	aio_return;
171	aio_suspend;
172	aiowait;
173	aio_waitn;
174	aio_write;
175	aiowrite;
176	asprintf;
177	assfail;
178	backtrace;
179	backtrace_symbols;
180	backtrace_symbols_fd;
181	canonicalize_file_name;
182	clearenv;
183	clock_getres;
184	clock_gettime;
185	clock_nanosleep;
186	clock_settime;
187	daemon;
188	dirfd;
189	door_bind;
190	door_call;
191	door_create;
192	door_cred;
193	door_getparam;
194	door_info;
195	door_return;
196	door_revoke;
197	door_server_create;
198	door_setparam;
199	door_ucred;
200	door_unbind;
201	door_xcreate;
202	err;
203	errx;
204	faccessat;
205	fchmodat;
206	fcloseall;
207	fdatasync;
208	ffsl;
209	ffsll;
210	fgetattr;
211	fls;
212	flsl;
213	flsll;
214	forkallx;
215	forkx;
216	fsetattr;
217	getattrat;
218	getdelim;
219	getline;
220	get_nprocs;
221	get_nprocs_conf;
222	getprogname;
223	htonl;
224	htonll;
225	htons;
226	linkat;
227	lio_listio;
228	memmem;
229	mkdirat;
230	mkdtemp;
231	mkfifoat;
232	mknodat;
233	mkstemps;
234	mmapobj;
235	mq_close;
236	mq_getattr;
237	mq_notify;
238	mq_open;
239	mq_receive;
240	mq_reltimedreceive_np;
241	mq_reltimedsend_np;
242	mq_send;
243	mq_setattr;
244	mq_timedreceive;
245	mq_timedsend;
246	mq_unlink;
247	nanosleep;
248	ntohl;
249	ntohll;
250	ntohs;
251	posix_fadvise;
252	posix_fallocate;
253	posix_madvise;
254	posix_memalign;
255	posix_spawn_file_actions_addclosefrom_np;
256	posix_spawnattr_getsigignore_np;
257	posix_spawnattr_setsigignore_np;
258	ppoll;
259	priv_basicset;
260	pthread_key_create_once_np;
261	pthread_mutexattr_getrobust;
262	pthread_mutexattr_setrobust;
263	pthread_mutex_consistent;
264	readlinkat;
265	sched_getparam;
266	sched_get_priority_max;
267	sched_get_priority_min;
268	sched_getscheduler;
269	sched_rr_get_interval;
270	sched_setparam;
271	sched_setscheduler;
272	sched_yield;
273	sem_close;
274	sem_destroy;
275	sem_getvalue;
276	sem_init;
277	sem_open;
278	sem_post;
279	sem_reltimedwait_np;
280	sem_timedwait;
281	sem_trywait;
282	sem_unlink;
283	sem_wait;
284	setattrat;
285	setprogname;
286	_sharefs;
287	shm_open;
288	shm_unlink;
289	sigqueue;
290	sigtimedwait;
291	sigwaitinfo;
292	smt_pause;
293	stpcpy;
294	stpncpy;
295	strcasestr;
296	strchrnul;
297	strndup;
298	strnlen;
299	strnstr;
300	strsep;
301	symlinkat;
302	thr_keycreate_once;
303	timer_create;
304	timer_delete;
305	timer_getoverrun;
306	timer_gettime;
307	timer_settime;
308	u8_strcmp;
309	u8_validate;
310	uconv_u16tou32;
311	uconv_u16tou8;
312	uconv_u32tou16;
313	uconv_u32tou8;
314	uconv_u8tou16;
315	uconv_u8tou32;
316	vasprintf;
317	verr;
318	verrx;
319	vforkx;
320	vwarn;
321	vwarnx;
322	warn;
323	warnx;
324	wcpcpy;
325	wcpncpy;
326	wcscasecmp;
327	wcsdup;
328	wcsncasecmp;
329	wcsnlen;
330
331$if lf64
332	aio_cancel64;
333	aio_error64;
334	aio_fsync64;
335	aio_read64;
336	aioread64;
337	aio_return64;
338	aio_suspend64;
339	aio_waitn64;
340	aio_write64;
341	aiowrite64;
342	lio_listio64;
343	mkstemps64;
344	posix_fadvise64;
345	posix_fallocate64;
346$endif
347} SUNW_1.22.6;
348
349SYMBOL_VERSION SUNW_1.22.6 {	# s10u9 - SunOS 5.10 (Solaris 10) patch additions
350    protected:
351	futimens;
352	utimensat;
353} SUNW_1.22.5;
354
355SYMBOL_VERSION SUNW_1.22.5 {	# s10u8 - SunOS 5.10 (Solaris 10) patch additions
356    protected:
357	getpagesizes2;
358} SUNW_1.22.4;
359
360SYMBOL_VERSION SUNW_1.22.4 {	# s10u7 - SunOS 5.10 (Solaris 10) patch additions
361    protected:
362	SUNW_1.22.4;
363} SUNW_1.22.3;
364
365SYMBOL_VERSION SUNW_1.22.3 {	# SunOS 5.10 (Solaris 10) patch additions
366    protected:
367	mutex_consistent;
368	u8_textprep_str;
369	uucopy;
370	uucopystr;
371} SUNW_1.22.2;
372
373SYMBOL_VERSION SUNW_1.22.2 {	# SunOS 5.10 (Solaris 10) patch additions
374    protected:
375	is_system_labeled;
376	ucred_getlabel;
377	_ucred_getlabel;
378} SUNW_1.22.1;
379
380SYMBOL_VERSION SUNW_1.22.1 {	# SunOS 5.10 (Solaris 10) patch additions
381    protected:
382	atomic_add_8;
383	atomic_add_8_nv;
384	atomic_add_char		{ FLAGS = NODYNSORT };
385	atomic_add_char_nv	{ FLAGS = NODYNSORT };
386	atomic_add_int		{ FLAGS = NODYNSORT };
387	atomic_add_int_nv	{ FLAGS = NODYNSORT };
388	atomic_add_ptr		{ FLAGS = NODYNSORT };
389	atomic_add_ptr_nv	{ FLAGS = NODYNSORT };
390	atomic_add_short	{ FLAGS = NODYNSORT };
391	atomic_add_short_nv	{ FLAGS = NODYNSORT };
392	atomic_and_16;
393	atomic_and_16_nv;
394	atomic_and_32_nv;
395	atomic_and_64;
396	atomic_and_64_nv;
397	atomic_and_8;
398	atomic_and_8_nv;
399	atomic_and_uchar	{ FLAGS = NODYNSORT };
400	atomic_and_uchar_nv	{ FLAGS = NODYNSORT };
401	atomic_and_uint_nv	{ FLAGS = NODYNSORT };
402	atomic_and_ulong	{ FLAGS = NODYNSORT };
403	atomic_and_ulong_nv	{ FLAGS = NODYNSORT };
404	atomic_and_ushort	{ FLAGS = NODYNSORT };
405	atomic_and_ushort_nv	{ FLAGS = NODYNSORT };
406	atomic_cas_16;
407	atomic_cas_32;
408	atomic_cas_64;
409	atomic_cas_8;
410	atomic_cas_ptr		{ FLAGS = NODYNSORT };
411	atomic_cas_uchar	{ FLAGS = NODYNSORT };
412	atomic_cas_uint		{ FLAGS = NODYNSORT };
413	atomic_cas_ulong	{ FLAGS = NODYNSORT };
414	atomic_cas_ushort	{ FLAGS = NODYNSORT };
415	atomic_clear_long_excl	{ FLAGS = NODYNSORT };
416	atomic_dec_16;
417	atomic_dec_16_nv;
418	atomic_dec_32;
419	atomic_dec_32_nv;
420	atomic_dec_64;
421	atomic_dec_64_nv;
422	atomic_dec_8;
423	atomic_dec_8_nv;
424	atomic_dec_uchar	{ FLAGS = NODYNSORT };
425	atomic_dec_uchar_nv	{ FLAGS = NODYNSORT };
426	atomic_dec_uint		{ FLAGS = NODYNSORT };
427	atomic_dec_uint_nv	{ FLAGS = NODYNSORT };
428	atomic_dec_ulong	{ FLAGS = NODYNSORT };
429	atomic_dec_ulong_nv	{ FLAGS = NODYNSORT };
430	atomic_dec_ushort	{ FLAGS = NODYNSORT };
431	atomic_dec_ushort_nv	{ FLAGS = NODYNSORT };
432	atomic_inc_16;
433	atomic_inc_16_nv;
434	atomic_inc_32;
435	atomic_inc_32_nv;
436	atomic_inc_64;
437	atomic_inc_64_nv;
438	atomic_inc_8;
439	atomic_inc_8_nv;
440	atomic_inc_uchar	{ FLAGS = NODYNSORT };
441	atomic_inc_uchar_nv	{ FLAGS = NODYNSORT };
442	atomic_inc_uint		{ FLAGS = NODYNSORT };
443	atomic_inc_uint_nv	{ FLAGS = NODYNSORT };
444	atomic_inc_ulong	{ FLAGS = NODYNSORT };
445	atomic_inc_ulong_nv	{ FLAGS = NODYNSORT };
446	atomic_inc_ushort	{ FLAGS = NODYNSORT };
447	atomic_inc_ushort_nv	{ FLAGS = NODYNSORT };
448	atomic_or_16;
449	atomic_or_16_nv;
450	atomic_or_32_nv;
451	atomic_or_64;
452	atomic_or_64_nv;
453	atomic_or_8;
454	atomic_or_8_nv;
455	atomic_or_uchar		{ FLAGS = NODYNSORT };
456	atomic_or_uchar_nv	{ FLAGS = NODYNSORT };
457	atomic_or_uint_nv	{ FLAGS = NODYNSORT };
458	atomic_or_ulong		{ FLAGS = NODYNSORT };
459	atomic_or_ulong_nv	{ FLAGS = NODYNSORT };
460	atomic_or_ushort	{ FLAGS = NODYNSORT };
461	atomic_or_ushort_nv	{ FLAGS = NODYNSORT };
462	atomic_set_long_excl	{ FLAGS = NODYNSORT };
463	atomic_swap_16;
464	atomic_swap_32;
465	atomic_swap_64;
466	atomic_swap_8;
467	atomic_swap_ptr		{ FLAGS = NODYNSORT };
468	atomic_swap_uchar	{ FLAGS = NODYNSORT };
469	atomic_swap_uint	{ FLAGS = NODYNSORT };
470	atomic_swap_ulong	{ FLAGS = NODYNSORT };
471	atomic_swap_ushort	{ FLAGS = NODYNSORT };
472	membar_consumer;
473	membar_enter;
474	membar_exit;
475	membar_producer;
476
477$if _ELF32
478	enable_extended_FILE_stdio;
479$endif
480
481$if i386
482	# Note: atomic_[and,dec,inc,or]_64_nv are also defined above. Here,
483	# we add the NODYNSORT attribute to them. On this platform, they are
484	# aliases for the non-_nv versions. If that is changed, these lines
485	# should be removed.
486	atomic_and_64_nv	{ FLAGS = NODYNSORT };
487	atomic_dec_64_nv	{ FLAGS = NODYNSORT };
488	atomic_inc_64_nv	{ FLAGS = NODYNSORT };
489	atomic_or_64_nv		{ FLAGS = NODYNSORT };
490$endif
491$if _sparc
492	# Note: atomic_OP_WIDTH_nv symbols are also defined above. Here,
493	# we add the NODYNSORT attribute to them. On this platform, they are
494	# aliases for the non-_nv versions. If that is changed, these lines
495	# should be removed.
496	atomic_add_8_nv		{ FLAGS = NODYNSORT };
497	atomic_and_8_nv		{ FLAGS = NODYNSORT };
498	atomic_and_16_nv	{ FLAGS = NODYNSORT };
499	atomic_and_32_nv	{ FLAGS = NODYNSORT };
500	atomic_and_64_nv	{ FLAGS = NODYNSORT };
501	atomic_dec_8_nv		{ FLAGS = NODYNSORT };
502	atomic_dec_16_nv	{ FLAGS = NODYNSORT };
503	atomic_dec_32_nv	{ FLAGS = NODYNSORT };
504	atomic_dec_64_nv	{ FLAGS = NODYNSORT };
505	atomic_inc_8_nv		{ FLAGS = NODYNSORT };
506	atomic_inc_16_nv	{ FLAGS = NODYNSORT };
507	atomic_inc_32_nv	{ FLAGS = NODYNSORT };
508	atomic_inc_64_nv	{ FLAGS = NODYNSORT };
509	atomic_or_8_nv		{ FLAGS = NODYNSORT };
510	atomic_or_16_nv		{ FLAGS = NODYNSORT };
511	atomic_or_32_nv		{ FLAGS = NODYNSORT };
512	atomic_or_64_nv		{ FLAGS = NODYNSORT };
513$endif
514} SUNW_1.22;
515
516SYMBOL_VERSION SUNW_1.22 {	# SunOS 5.10 (Solaris 10)
517    global:
518$if _ELF32
519	dladdr		{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
520	dladdr1		{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
521	dlclose		{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
522	dldump		{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
523	dlerror		{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
524	dlinfo		{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
525	dlmopen		{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
526	dlopen		{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
527	dlsym		{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
528$elif sparcv9
529	dladdr		{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
530	dladdr1		{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
531	dlclose		{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
532	dldump		{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
533	dlerror		{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
534	dlinfo		{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
535	dlmopen		{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
536	dlopen		{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
537	dlsym		{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
538$elif amd64
539	dladdr		{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
540	dladdr1		{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
541	dlamd64getunwind { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
542	dlclose		{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
543	dldump		{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
544	dlerror		{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
545	dlinfo		{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
546	dlmopen		{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
547	dlopen		{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
548	dlsym		{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
549$else
550$error unknown platform
551$endif
552
553    protected:
554	alphasort;
555	_alphasort;
556	atomic_add_16;
557	atomic_add_16_nv;
558	atomic_add_32;
559	atomic_add_32_nv;
560	atomic_add_64;
561	atomic_add_64_nv;
562	atomic_add_long		{ FLAGS = NODYNSORT };
563	atomic_add_long_nv	{ FLAGS = NODYNSORT };
564	atomic_and_32;
565	atomic_and_uint		{ FLAGS = NODYNSORT };
566	atomic_or_32;
567	atomic_or_uint		{ FLAGS = NODYNSORT };
568	_Exit;
569	getisax;
570	_getisax;
571	getopt_clip;
572	_getopt_clip;
573	getopt_long;
574	_getopt_long;
575	getopt_long_only;
576	_getopt_long_only;
577	getpeerucred;
578	_getpeerucred;
579	getpflags;
580	_getpflags;
581	getppriv;
582	_getppriv;
583	getprivimplinfo;
584	_getprivimplinfo;
585	getzoneid;
586	getzoneidbyname;
587	getzonenamebyid;
588	imaxabs;
589	imaxdiv;
590	isblank;
591	iswblank;
592	port_alert;
593	port_associate;
594	port_create;
595	port_dissociate;
596	port_get;
597	port_getn;
598	port_send;
599	port_sendn;
600	posix_openpt;
601	posix_spawn;
602	posix_spawnattr_destroy;
603	posix_spawnattr_getflags;
604	posix_spawnattr_getpgroup;
605	posix_spawnattr_getschedparam;
606	posix_spawnattr_getschedpolicy;
607	posix_spawnattr_getsigdefault;
608	posix_spawnattr_getsigmask;
609	posix_spawnattr_init;
610	posix_spawnattr_setflags;
611	posix_spawnattr_setpgroup;
612	posix_spawnattr_setschedparam;
613	posix_spawnattr_setschedpolicy;
614	posix_spawnattr_setsigdefault;
615	posix_spawnattr_setsigmask;
616	posix_spawn_file_actions_addclose;
617	posix_spawn_file_actions_adddup2;
618	posix_spawn_file_actions_addopen;
619	posix_spawn_file_actions_destroy;
620	posix_spawn_file_actions_init;
621	posix_spawnp;
622	priv_addset;
623	_priv_addset;
624	priv_allocset;
625	_priv_allocset;
626	priv_copyset;
627	_priv_copyset;
628	priv_delset;
629	_priv_delset;
630	priv_emptyset;
631	_priv_emptyset;
632	priv_fillset;
633	_priv_fillset;
634	__priv_free_info;
635	priv_freeset;
636	_priv_freeset;
637	priv_getbyname;
638	_priv_getbyname;
639	__priv_getbyname;
640	priv_getbynum;
641	_priv_getbynum;
642	__priv_getbynum;
643	__priv_getdata;
644	priv_getsetbyname;
645	_priv_getsetbyname;
646	__priv_getsetbyname;
647	priv_getsetbynum;
648	_priv_getsetbynum;
649	__priv_getsetbynum;
650	priv_gettext;
651	_priv_gettext;
652	priv_ineffect;
653	_priv_ineffect;
654	priv_intersect;
655	_priv_intersect;
656	priv_inverse;
657	_priv_inverse;
658	priv_isemptyset;
659	_priv_isemptyset;
660	priv_isequalset;
661	_priv_isequalset;
662	priv_isfullset;
663	_priv_isfullset;
664	priv_ismember;
665	_priv_ismember;
666	priv_issubset;
667	_priv_issubset;
668	__priv_parse_info;
669	priv_set;
670	_priv_set;
671	priv_set_to_str;
672	_priv_set_to_str;
673	__priv_set_to_str;
674	priv_str_to_set;
675	_priv_str_to_set;
676	priv_union;
677	_priv_union;
678	pselect;
679	pthread_attr_getstack;
680	pthread_attr_setstack;
681	pthread_barrierattr_destroy;
682	pthread_barrierattr_getpshared;
683	pthread_barrierattr_init;
684	pthread_barrierattr_setpshared;
685	pthread_barrier_destroy;
686	pthread_barrier_init;
687	pthread_barrier_wait;
688	pthread_condattr_getclock;
689	pthread_condattr_setclock;
690	pthread_mutexattr_getrobust_np	{ FLAGS = NODYNSORT };
691	pthread_mutexattr_setrobust_np	{ FLAGS = NODYNSORT };
692	pthread_mutex_consistent_np	{ FLAGS = NODYNSORT };
693	pthread_mutex_reltimedlock_np;
694	pthread_mutex_timedlock;
695	pthread_rwlock_reltimedrdlock_np;
696	pthread_rwlock_reltimedwrlock_np;
697	pthread_rwlock_timedrdlock;
698	pthread_rwlock_timedwrlock;
699	pthread_setschedprio;
700	pthread_spin_destroy;
701	pthread_spin_init;
702	pthread_spin_lock;
703	pthread_spin_trylock;
704	pthread_spin_unlock;
705	rctlblk_set_recipient_pid;
706	scandir;
707	_scandir;
708	schedctl_exit;
709	schedctl_init;
710	schedctl_lookup;
711	sema_reltimedwait;
712	sema_timedwait;
713	setenv;
714	setpflags;
715	_setpflags;
716	setppriv;
717	_setppriv;
718	strerror_r;
719	strtof;
720	strtoimax;
721	strtold;
722	strtoumax;
723	ucred_free;
724	_ucred_free;
725	ucred_get;
726	_ucred_get;
727	ucred_getegid;
728	_ucred_getegid;
729	ucred_geteuid;
730	_ucred_geteuid;
731	ucred_getgroups;
732	_ucred_getgroups;
733	ucred_getpflags;
734	_ucred_getpflags;
735	ucred_getpid;
736	_ucred_getpid;
737	ucred_getprivset;
738	_ucred_getprivset;
739	ucred_getprojid;
740	_ucred_getprojid;
741	ucred_getrgid;
742	_ucred_getrgid;
743	ucred_getruid;
744	_ucred_getruid;
745	ucred_getsgid;
746	_ucred_getsgid;
747	ucred_getsuid;
748	_ucred_getsuid;
749	ucred_getzoneid;
750	_ucred_getzoneid;
751	ucred_size;
752	_ucred_size;
753	unsetenv;
754	wcstof;
755	wcstoimax;
756	wcstold;
757	wcstoll;
758	wcstoull;
759	wcstoumax;
760
761$if lf64
762	alphasort64;
763	_alphasort64;
764	pselect_large_fdset;
765	scandir64;
766	_scandir64;
767$endif
768
769$if _ELF64
770	walkcontext;
771$endif
772
773$if _sparc
774	# Note: atomic_add_[16,32,64]_nv are also defined above. Here, we add
775	# the NODYNSORT attribute to them. On this platform, they are aliases
776	# for the non-_nv versions. If that is changed, these lines should be
777	# removed.
778	atomic_add_16_nv	{ FLAGS = NODYNSORT };
779	atomic_add_32_nv	{ FLAGS = NODYNSORT };
780	atomic_add_64_nv	{ FLAGS = NODYNSORT };
781$endif
782
783$if i386
784	# Note: atomic_add_64_nv is also defined above. Here, we add the
785	# NODYNSORT attribute to it. On this platform, it is an aliases for
786	# atomic_add_64. If that is changed, this line should be removed.
787	atomic_add_64_nv 	{ FLAGS = NODYNSORT };
788$endif
789
790$if amd64
791	# Exception unwind APIs required by the amd64 ABI
792	_SUNW_Unwind_DeleteException;
793	_SUNW_Unwind_ForcedUnwind;
794	_SUNW_Unwind_GetCFA;
795	_SUNW_Unwind_GetGR;
796	_SUNW_Unwind_GetIP;
797	_SUNW_Unwind_GetLanguageSpecificData;
798	_SUNW_Unwind_GetRegionStart;
799	_SUNW_Unwind_RaiseException;
800	_SUNW_Unwind_Resume;
801	_SUNW_Unwind_SetGR;
802	_SUNW_Unwind_SetIP;
803	_UA_CLEANUP_PHASE;
804	_UA_FORCE_UNWIND;
805	_UA_HANDLER_FRAME;
806	_UA_SEARCH_PHASE;
807	_Unwind_DeleteException;
808	_Unwind_ForcedUnwind;
809	_Unwind_GetCFA;
810	_Unwind_GetGR;
811	_Unwind_GetIP;
812	_Unwind_GetLanguageSpecificData;
813	_Unwind_GetRegionStart;
814	_Unwind_RaiseException;
815	_Unwind_Resume;
816	_Unwind_SetGR;
817	_Unwind_SetIP;
818$endif
819} SUNW_1.21.3;
820
821SYMBOL_VERSION SUNW_1.21.3 {	# SunOS 5.9 (Solaris 9) patch additions
822    protected:
823	forkall;
824} SUNW_1.21.2;
825
826SYMBOL_VERSION SUNW_1.21.2 {	# SunOS 5.9 (Solaris 9) patch additions
827    protected:
828	getustack;
829	_getustack;
830	setustack;
831	_setustack;
832	stack_getbounds;
833	_stack_getbounds;
834	_stack_grow;
835	stack_inbounds;
836	_stack_inbounds;
837	stack_setbounds;
838	_stack_setbounds;
839	stack_violation;
840	_stack_violation;
841
842$if _sparc
843	__makecontext_v2;
844	___makecontext_v2;
845$endif
846} SUNW_1.21.1;
847
848SYMBOL_VERSION SUNW_1.21.1 {	# SunOS 5.9 (Solaris 9) patch additions
849    protected:
850	crypt_gensalt;
851} SUNW_1.21;
852
853SYMBOL_VERSION SUNW_1.21 {	# SunOS 5.9 (Solaris 9)
854    protected:
855	attropen;
856	_attropen;
857	bind_textdomain_codeset;
858	closefrom;
859	_closefrom;
860	cond_reltimedwait;
861	dcngettext;
862	dngettext;
863	fchownat;
864	_fchownat;
865	fdopendir;
866	_fdopendir;
867	fdwalk;
868	_fdwalk;
869	fstatat;
870	_fstatat;
871	futimesat;
872	_futimesat;
873	getcpuid;
874	_getcpuid;
875	gethomelgroup;
876	_gethomelgroup		{ FLAGS = NODYNSORT };
877	getpagesizes;
878	getrctl;
879	_getrctl;
880	issetugid;
881	_issetugid;
882	_lwp_cond_reltimedwait;
883	meminfo;
884	_meminfo;
885	ngettext;
886	openat;
887	_openat;
888	printstack;
889	priocntl;
890	priocntlset;
891	pset_getattr;
892	pset_getloadavg;
893	pset_list;
894	pset_setattr;
895	pthread_cond_reltimedwait_np;
896	rctlblk_get_enforced_value;
897	rctlblk_get_firing_time;
898	rctlblk_get_global_action;
899	rctlblk_get_global_flags;
900	rctlblk_get_local_action;
901	rctlblk_get_local_flags;
902	rctlblk_get_privilege;
903	rctlblk_get_recipient_pid;
904	rctlblk_get_value;
905	rctlblk_set_local_action;
906	rctlblk_set_local_flags;
907	rctlblk_set_privilege;
908	rctlblk_set_value;
909	rctlblk_size;
910	rctl_walk;
911	renameat;
912	setrctl;
913	_setrctl;
914	unlinkat;
915	_unlinkat;
916	vfscanf;
917	_vfscanf;
918	vfwscanf;
919	vscanf;
920	_vscanf;
921	vsscanf;
922	_vsscanf;
923	vswscanf;
924	vwscanf;
925
926$if _ELF32
927	walkcontext;
928$endif
929
930$if lf64
931	attropen64;
932	_attropen64;
933	fstatat64;
934	_fstatat64;
935	openat64;
936	_openat64;
937$endif
938} SUNW_1.20.4;
939
940SYMBOL_VERSION SUNW_1.20.4 {	# SunOS 5.8 (Solaris 8) patch additions
941    protected:
942	semtimedop;
943	_semtimedop;
944} SUNW_1.20.1;
945
946SYMBOL_VERSION SUNW_1.20.1 {	# SunOS 5.8 (Solaris 8) patch additions
947    protected:
948	getacct;
949	_getacct;
950	getprojid;
951	_getprojid;
952	gettaskid;
953	_gettaskid;
954	msgids;
955	_msgids;
956	msgsnap;
957	_msgsnap;
958	putacct;
959	_putacct;
960	semids;
961	_semids;
962	settaskid;
963	_settaskid;
964	shmids;
965	_shmids;
966	wracct;
967	_wracct;
968} SUNW_1.20;
969
970SYMBOL_VERSION SUNW_1.20 {	# SunOS 5.8 (Solaris 8)
971    protected:
972	getextmntent;
973	resetmnttab;
974} SUNW_1.19;
975
976SYMBOL_VERSION SUNW_1.19 {
977    protected:
978	strlcat;
979	strlcpy;
980	umount2;
981	_umount2;
982} SUNW_1.18.1;
983
984SYMBOL_VERSION SUNW_1.18.1 {
985    protected:
986	__fsetlocking;
987} SUNW_1.18;
988
989SYMBOL_VERSION SUNW_1.18 {	# SunOS 5.7 (Solaris 7)
990    protected:
991	btowc;
992	__fbufsize;
993	__flbf;
994	_flushlbf;
995	__fpending;
996	__fpurge;
997	__freadable;
998	__freading;
999	fwide;
1000	fwprintf;
1001	__fwritable;
1002	__fwriting;
1003	fwscanf;
1004	getloadavg;
1005	isaexec;
1006	mbrlen;
1007	mbrtowc;
1008	mbsinit;
1009	mbsrtowcs;
1010	pcsample;
1011	pthread_attr_getguardsize;
1012	pthread_attr_setguardsize;
1013	pthread_getconcurrency;
1014	pthread_mutexattr_gettype;
1015	pthread_mutexattr_settype;
1016	pthread_rwlockattr_destroy;
1017	pthread_rwlockattr_getpshared;
1018	pthread_rwlockattr_init;
1019	pthread_rwlockattr_setpshared;
1020	pthread_rwlock_destroy;
1021	pthread_rwlock_init;
1022	pthread_rwlock_rdlock;
1023	pthread_rwlock_tryrdlock;
1024	pthread_rwlock_trywrlock;
1025	pthread_rwlock_unlock;
1026	pthread_rwlock_wrlock;
1027	pthread_setconcurrency;
1028	swprintf;
1029	swscanf;
1030	__sysconf_xpg5;
1031	vfwprintf;
1032	vswprintf;
1033	vwprintf;
1034	wcrtomb;
1035	wcsrtombs;
1036	wcsstr;
1037	wctob;
1038	wmemchr;
1039	wmemcmp;
1040	wmemcpy;
1041	wmemmove;
1042	wmemset;
1043	wprintf;
1044	wscanf;
1045
1046$if _ELF32
1047	select_large_fdset;
1048$endif
1049} SUNW_1.17;
1050
1051# The empty versions SUNW_1.2 through SUNW_1.17 must be preserved because
1052# applications built on Solaris 2.6 Beta (when they did contain symbols)
1053# may depend on them.  All symbol content for SunOS 5.6 is now in SUNW_1.1
1054
1055SYMBOL_VERSION SUNW_1.17 {
1056    protected:
1057	SUNW_1.17;
1058} SUNW_1.16;
1059
1060SYMBOL_VERSION SUNW_1.16 {
1061    protected:
1062	SUNW_1.16;
1063} SUNW_1.15;
1064
1065SYMBOL_VERSION SUNW_1.15 {
1066    protected:
1067	SUNW_1.15;
1068} SUNW_1.14;
1069
1070SYMBOL_VERSION SUNW_1.14 {
1071    protected:
1072	SUNW_1.14;
1073} SUNW_1.13;
1074
1075SYMBOL_VERSION SUNW_1.13 {
1076    protected:
1077	SUNW_1.13;
1078} SUNW_1.12;
1079
1080SYMBOL_VERSION SUNW_1.12 {
1081    protected:
1082	SUNW_1.12;
1083} SUNW_1.11;
1084
1085SYMBOL_VERSION SUNW_1.11 {
1086    protected:
1087	SUNW_1.11;
1088} SUNW_1.10;
1089
1090SYMBOL_VERSION SUNW_1.10 {
1091    protected:
1092	SUNW_1.10;
1093} SUNW_1.9;
1094
1095SYMBOL_VERSION SUNW_1.9 {
1096    protected:
1097	SUNW_1.9;
1098} SUNW_1.8;
1099
1100SYMBOL_VERSION SUNW_1.8 {
1101    protected:
1102	SUNW_1.8;
1103} SUNW_1.7;
1104
1105SYMBOL_VERSION SUNW_1.7 {
1106    protected:
1107	SUNW_1.7;
1108} SUNW_1.6;
1109
1110SYMBOL_VERSION SUNW_1.6 {
1111    protected:
1112	SUNW_1.6;
1113} SUNW_1.5;
1114
1115SYMBOL_VERSION SUNW_1.5 {
1116    protected:
1117	SUNW_1.5;
1118} SUNW_1.4;
1119
1120SYMBOL_VERSION SUNW_1.4 {
1121    protected:
1122	SUNW_1.4;
1123} SUNW_1.3;
1124
1125SYMBOL_VERSION SUNW_1.3 {
1126    protected:
1127	SUNW_1.3;
1128} SUNW_1.2;
1129
1130SYMBOL_VERSION SUNW_1.2 {
1131    protected:
1132	SUNW_1.2;
1133} SUNW_1.1;
1134
1135SYMBOL_VERSION SUNW_1.1 {	# SunOS 5.6 (Solaris 2.6)
1136    global:
1137	__loc1;
1138    protected:
1139	basename;
1140	bindtextdomain;
1141	bsd_signal;
1142	dbm_clearerr;
1143	dbm_error;
1144	dcgettext;
1145	dgettext;
1146	directio;
1147	dirname;
1148	endusershell;
1149	_exithandle;
1150	fgetwc;
1151	fgetws;
1152	fpgetround;
1153	fpsetround;
1154	fputwc;
1155	fputws;
1156	fseeko;
1157	ftello;
1158	ftrylockfile;
1159	getexecname;
1160	_getexecname;
1161	getpassphrase;
1162	gettext;
1163	getusershell;
1164	getwc;
1165	getwchar;
1166	getws;
1167	isenglish;
1168	isideogram;
1169	isnumber;
1170	isphonogram;
1171	isspecial;
1172	iswalnum;
1173	iswalpha;
1174	iswcntrl;
1175	iswctype;
1176	iswdigit;
1177	iswgraph;
1178	iswlower;
1179	iswprint;
1180	iswpunct;
1181	iswspace;
1182	iswupper;
1183	iswxdigit;
1184	____loc1;
1185	_longjmp;
1186	_lwp_sema_trywait;
1187	ntp_adjtime;
1188	_ntp_adjtime;
1189	ntp_gettime;
1190	_ntp_gettime;
1191	__posix_asctime_r;
1192	__posix_ctime_r;
1193	__posix_getgrgid_r;
1194	__posix_getgrnam_r;
1195	__posix_getlogin_r;
1196	__posix_getpwnam_r;
1197	__posix_getpwuid_r;
1198	__posix_sigwait;
1199	__posix_ttyname_r;
1200	pset_assign;
1201	pset_bind;
1202	pset_create;
1203	pset_destroy;
1204	pset_info;
1205	pthread_atfork;
1206	pthread_attr_destroy;
1207	pthread_attr_getdetachstate;
1208	pthread_attr_getinheritsched;
1209	pthread_attr_getschedparam;
1210	pthread_attr_getschedpolicy;
1211	pthread_attr_getscope;
1212	pthread_attr_getstackaddr;
1213	pthread_attr_getstacksize;
1214	pthread_attr_init;
1215	pthread_attr_setdetachstate;
1216	pthread_attr_setinheritsched;
1217	pthread_attr_setschedparam;
1218	pthread_attr_setschedpolicy;
1219	pthread_attr_setscope;
1220	pthread_attr_setstackaddr;
1221	pthread_attr_setstacksize;
1222	pthread_cancel;
1223	__pthread_cleanup_pop;
1224	__pthread_cleanup_push;
1225	pthread_create;
1226	pthread_detach;
1227	pthread_equal;
1228	pthread_exit;
1229	pthread_getschedparam;
1230	pthread_getspecific;
1231	pthread_join;
1232	pthread_key_create;
1233	pthread_key_delete;
1234	pthread_kill;
1235	pthread_once;
1236	pthread_self;
1237	pthread_setcancelstate;
1238	pthread_setcanceltype;
1239	pthread_setschedparam;
1240	pthread_setspecific;
1241	pthread_sigmask;
1242	pthread_testcancel;
1243	putwc;
1244	putwchar;
1245	putws;
1246	regcmp;
1247	regex;
1248	resolvepath;
1249	_resolvepath;
1250	rwlock_destroy		{ FLAGS = NODYNSORT };
1251	_rwlock_destroy		{ FLAGS = NODYNSORT };
1252	sema_destroy;
1253	_sema_destroy;
1254	_setjmp;
1255	setusershell;
1256	siginterrupt;
1257	sigstack;
1258	snprintf;
1259	strtows;
1260	sync_instruction_memory;
1261	textdomain;
1262	thr_main;
1263	towctrans;
1264	towlower;
1265	towupper;
1266	ungetwc;
1267	vsnprintf;
1268	watoll;
1269	wcscat;
1270	wcschr;
1271	wcscmp;
1272	wcscoll;
1273	wcscpy;
1274	wcscspn;
1275	wcsftime;
1276	wcslen;
1277	wcsncat;
1278	wcsncmp;
1279	wcsncpy;
1280	wcspbrk;
1281	wcsrchr;
1282	wcsspn;
1283	wcstod;
1284	wcstok;
1285	wcstol;
1286	wcstoul;
1287	wcswcs;
1288	wcswidth;
1289	wcsxfrm;
1290	wctrans;
1291	wctype;
1292	wcwidth;
1293	wscasecmp;
1294	wscat;
1295	wschr;
1296	wscmp;
1297	wscol;
1298	wscoll;
1299	wscpy;
1300	wscspn;
1301	wsdup;
1302	wslen;
1303	wsncasecmp;
1304	wsncat;
1305	wsncmp;
1306	wsncpy;
1307	wspbrk;
1308	wsprintf;
1309	wsrchr;
1310	wsscanf;
1311	wsspn;
1312	wstod;
1313	wstok;
1314	wstol;
1315	wstoll;
1316	wstostr;
1317	wsxfrm;
1318	__xpg4_putmsg;
1319	__xpg4_putpmsg;
1320
1321$if lf64
1322	creat64;
1323	_creat64;
1324	fgetpos64;
1325	fopen64;
1326	freopen64;
1327	fseeko64;
1328	fsetpos64;
1329	fstat64;
1330	_fstat64;
1331	fstatvfs64;
1332	_fstatvfs64;
1333	ftello64;
1334	ftruncate64;
1335	_ftruncate64;
1336	ftw64;
1337	_ftw64;
1338	getdents64;
1339	_getdents64;
1340	getrlimit64;
1341	_getrlimit64;
1342	lockf64;
1343	_lockf64;
1344	lseek64;
1345	_lseek64;
1346	lstat64;
1347	_lstat64;
1348	mkstemp64;
1349	_mkstemp64;
1350	mmap64;
1351	_mmap64;
1352	nftw64;
1353	_nftw64;
1354	open64;
1355	_open64;
1356	__posix_readdir_r;
1357	pread64;
1358	_pread64;
1359	pwrite64;
1360	_pwrite64;
1361	readdir64;
1362	_readdir64;
1363	readdir64_r;
1364	_readdir64_r;
1365	setrlimit64;
1366	_setrlimit64;
1367	s_fcntl;
1368	_s_fcntl		{ FLAGS = NODYNSORT };
1369	s_ioctl;
1370	stat64;
1371	_stat64;
1372	statvfs64;
1373	_statvfs64;
1374	tell64;
1375	_tell64;
1376	tmpfile64;
1377	truncate64;
1378	_truncate64;
1379	_xftw64;
1380$endif
1381
1382$if _sparc
1383	__flt_rounds;
1384$endif
1385} SUNW_0.9;
1386
1387SYMBOL_VERSION SUNW_0.9 {	# SunOS 5.5 (Solaris 2.5)
1388    protected:
1389	acl;
1390	bcmp;
1391	bcopy;
1392	bzero;
1393	facl;
1394	ftime;
1395	getdtablesize;
1396	gethostid;
1397	gethostname;
1398	getpagesize;
1399	getpriority;
1400	getrusage;
1401	getwd;
1402	index;
1403	initstate;
1404	killpg;
1405	_nsc_trydoorcall;
1406	pthread_condattr_destroy;
1407	pthread_condattr_getpshared;
1408	pthread_condattr_init;
1409	pthread_condattr_setpshared;
1410	pthread_cond_broadcast;
1411	pthread_cond_destroy;
1412	pthread_cond_init;
1413	pthread_cond_signal;
1414	pthread_cond_timedwait;
1415	pthread_cond_wait;
1416	pthread_mutexattr_destroy;
1417	pthread_mutexattr_getprioceiling;
1418	pthread_mutexattr_getprotocol;
1419	pthread_mutexattr_getpshared;
1420	pthread_mutexattr_init;
1421	pthread_mutexattr_setprioceiling;
1422	pthread_mutexattr_setprotocol;
1423	pthread_mutexattr_setpshared;
1424	pthread_mutex_destroy;
1425	pthread_mutex_getprioceiling;
1426	pthread_mutex_init;
1427	pthread_mutex_lock;
1428	pthread_mutex_setprioceiling;
1429	pthread_mutex_trylock;
1430	pthread_mutex_unlock;
1431	random;
1432	reboot;
1433	re_comp;
1434	re_exec;
1435	rindex;
1436	setbuffer;
1437	sethostname;
1438	setlinebuf;
1439	setpriority;
1440	setregid;
1441	setreuid;
1442	setstate;
1443	srandom;
1444	thr_min_stack;
1445	thr_stksegment;
1446	ualarm;
1447	usleep;
1448	wait3;
1449	wait4;
1450} SUNW_0.8;
1451
1452SYMBOL_VERSION SUNW_0.8 {	# SunOS 5.4 (Solaris 2.4)
1453    global:
1454	__xpg4			{ FLAGS = NODIRECT };
1455    protected:
1456	addsev;
1457	cond_broadcast		{ FLAGS = NODYNSORT };
1458	cond_destroy		{ FLAGS = NODYNSORT };
1459	cond_init;
1460	cond_signal		{ FLAGS = NODYNSORT };
1461	cond_timedwait;
1462	cond_wait;
1463	confstr;
1464	fnmatch;
1465	_getdate_err_addr;
1466	glob;
1467	globfree;
1468	iconv;
1469	iconv_close;
1470	iconv_open;
1471	lfmt;
1472	mutex_destroy		{ FLAGS = NODYNSORT };
1473	mutex_init;
1474	mutex_lock		{ FLAGS = NODYNSORT };
1475	mutex_trylock		{ FLAGS = NODYNSORT };
1476	mutex_unlock		{ FLAGS = NODYNSORT };
1477	pfmt;
1478	regcomp;
1479	regerror;
1480	regexec;
1481	regfree;
1482	rwlock_init;
1483	rw_rdlock		{ FLAGS = NODYNSORT };
1484	rw_read_held;
1485	rw_tryrdlock		{ FLAGS = NODYNSORT };
1486	rw_trywrlock		{ FLAGS = NODYNSORT };
1487	rw_unlock		{ FLAGS = NODYNSORT };
1488	rw_write_held;
1489	rw_wrlock		{ FLAGS = NODYNSORT };
1490	sema_held;
1491	sema_init;
1492	sema_post;
1493	sema_trywait;
1494	sema_wait;
1495	setcat;
1496	sigfpe;
1497	strfmon;
1498	strptime;
1499	thr_continue;
1500	thr_create;
1501	thr_exit;
1502	thr_getconcurrency;
1503	thr_getprio;
1504	thr_getspecific;
1505	thr_join;
1506	thr_keycreate;
1507	thr_kill;
1508	thr_self		{ FLAGS = NODYNSORT };
1509	thr_setconcurrency;
1510	thr_setprio;
1511	thr_setspecific;
1512	thr_sigsetmask;
1513	thr_suspend;
1514	thr_yield;
1515	vlfmt;
1516	vpfmt;
1517	wordexp;
1518	wordfree;
1519} SUNW_0.7;
1520
1521SYMBOL_VERSION SUNW_0.7 {	# SunOS 5.3 (Solaris 2.3)
1522    global:
1523	altzone;
1524	_ctype;
1525	isnanf			{ TYPE = FUNCTION; FILTER = libm.so.2 };
1526	lone;
1527	lten;
1528	lzero;
1529	memalign		{ FLAGS = NODIRECT };
1530	modff			{ TYPE = FUNCTION; FILTER = libm.so.2 };
1531	nss_default_finders;
1532	_sibuf;
1533	_sobuf;
1534	_sys_buslist;
1535	_sys_cldlist;
1536	_sys_fpelist;
1537	_sys_illlist;
1538	_sys_segvlist;
1539	_sys_siginfolistp;
1540	_sys_siglist;
1541	_sys_siglistn;
1542	_sys_siglistp;
1543	_sys_traplist;
1544	valloc			{ FLAGS = NODIRECT };
1545
1546$if _ELF32
1547	_bufendtab;
1548	_lastbuf;
1549	sys_errlist;
1550	sys_nerr;
1551	_sys_nsig;
1552$endif
1553
1554    protected:
1555	a64l;
1556	adjtime;
1557	ascftime;
1558	_assert;
1559	atoll;
1560	brk;
1561	__builtin_alloca;
1562	cftime;
1563	closelog;
1564	csetcol;
1565	csetlen;
1566	ctermid_r;
1567	dbm_close;
1568	dbm_delete;
1569	dbm_fetch;
1570	dbm_firstkey;
1571	dbm_nextkey;
1572	dbm_open;
1573	dbm_store;
1574	decimal_to_double;
1575	decimal_to_extended;
1576	decimal_to_quadruple;
1577	decimal_to_single;
1578	double_to_decimal;
1579	drand48;
1580	econvert;
1581	ecvt;
1582	endnetgrent;
1583	endspent;
1584	endutent;
1585	endutxent;
1586	erand48;
1587	euccol;
1588	euclen;
1589	eucscol;
1590	extended_to_decimal;
1591	fchroot;
1592	fconvert;
1593	fcvt;
1594	ffs;
1595	fgetspent;
1596	fgetspent_r;
1597	_filbuf;
1598	file_to_decimal;
1599	finite;
1600	_flsbuf;
1601	fork1			{ FLAGS = NODYNSORT };
1602	fpclass;
1603	fpgetmask;
1604	fpgetsticky;
1605	fpsetmask;
1606	fpsetsticky;
1607	fstatfs;
1608	ftruncate;
1609	ftw;
1610	func_to_decimal;
1611	gconvert;
1612	gcvt;
1613	getdents;
1614	gethrtime;
1615	gethrvtime;
1616	getmntany;
1617	getmntent;
1618	getnetgrent;
1619	getnetgrent_r;
1620	getpw;
1621	getspent;
1622	getspent_r;
1623	getspnam;
1624	getspnam_r;
1625	getutent;
1626	getutid;
1627	getutline;
1628	getutmp;
1629	getutmpx;
1630	getutxent;
1631	getutxid;
1632	getutxline;
1633	getvfsany;
1634	getvfsent;
1635	getvfsfile;
1636	getvfsspec;
1637	getwidth;
1638	gsignal;
1639	hasmntopt;
1640	innetgr;
1641	insque;
1642	_insque;
1643	jrand48;
1644	l64a;
1645	ladd;
1646	lckpwdf;
1647	lcong48;
1648	ldivide;
1649	lexp10;
1650	llabs;
1651	lldiv;
1652	llog10;
1653	llseek;
1654	lltostr;
1655	lmul;
1656	lrand48;
1657	lshiftl;
1658	lsub;
1659	_lwp_cond_broadcast;
1660	_lwp_cond_signal;
1661	_lwp_cond_timedwait;
1662	_lwp_cond_wait;
1663	_lwp_continue;
1664	_lwp_info;
1665	_lwp_kill;
1666	_lwp_mutex_lock;
1667	_lwp_mutex_trylock;
1668	_lwp_mutex_unlock;
1669	_lwp_self;
1670	_lwp_sema_init;
1671	_lwp_sema_post;
1672	_lwp_sema_wait;
1673	_lwp_suspend;
1674	madvise;
1675	__major;
1676	__makedev;
1677	mincore;
1678	__minor;
1679	mkstemp;
1680	_mkstemp;
1681	mlockall;
1682	mrand48;
1683	munlockall;
1684	_mutex_held		{ FLAGS = NODYNSORT };
1685	_mutex_lock		{ FLAGS = NODYNSORT };
1686	nrand48;
1687	_nss_netdb_aliases;
1688	_nss_XbyY_buf_alloc;
1689	_nss_XbyY_buf_free;
1690	__nsw_extended_action;
1691	__nsw_freeconfig;
1692	__nsw_getconfig;
1693	openlog;
1694	plock;
1695	p_online;
1696	pread;
1697	__priocntl;
1698	__priocntlset;
1699	processor_bind;
1700	processor_info;
1701	psiginfo;
1702	psignal;
1703	putpwent;
1704	putspent;
1705	pututline;
1706	pututxline;
1707	pwrite;
1708	qeconvert;
1709	qecvt;
1710	qfconvert;
1711	qfcvt;
1712	qgconvert;
1713	qgcvt;
1714	quadruple_to_decimal;
1715	realpath;
1716	remque;
1717	_remque;
1718	_rw_read_held;
1719	_rw_write_held;
1720	seconvert;
1721	seed48;
1722	select;
1723	_sema_held;
1724	setegid;
1725	seteuid;
1726	setlogmask;
1727	setnetgrent;
1728	setspent;
1729	settimeofday;
1730	setutent;
1731	setutxent;
1732	sfconvert;
1733	sgconvert;
1734	sig2str;
1735	sigwait;
1736	single_to_decimal;
1737	srand48;
1738	ssignal;
1739	statfs;
1740	str2sig;
1741	strcasecmp;
1742	string_to_decimal;
1743	strncasecmp;
1744	strsignal;
1745	strtoll;
1746	strtoull;
1747	swapctl;
1748	_syscall;
1749	sysfs;
1750	syslog;
1751	_syslog;
1752	tmpnam_r;
1753	truncate;
1754	ttyslot;
1755	uadmin;
1756	ulckpwdf;
1757	ulltostr;
1758	unordered;
1759	updwtmp;
1760	updwtmpx;
1761	ustat;
1762	utimes;
1763	utmpname;
1764	utmpxname;
1765	vfork;
1766	vhangup;
1767	vsyslog;
1768	yield;
1769
1770$if i386
1771	# Note: _syscall is also defined above. Here, we add the NODYNSORT
1772	# attribute to it. On this platform, it is an alias to syscall.
1773	# If that is changed, this lines should be removed.
1774	_syscall		{ FLAGS = NODYNSORT };
1775$endif
1776
1777# The 32-bit sparc ABI requires SISCD_2.3. On other platforms, those symbols
1778# go directly into SUNW_0.7.
1779$if sparc32
1780} SISCD_2.3;
1781
1782SYMBOL_VERSION SISCD_2.3 {
1783$endif
1784
1785    global:
1786	errno			{ FLAGS = NODIRECT };
1787	_iob;
1788
1789    protected:
1790	addseverity;
1791	_addseverity;
1792	asctime_r;
1793	crypt;
1794	_crypt;
1795	ctime_r;
1796	encrypt;
1797	_encrypt;
1798	endgrent;
1799	endpwent;
1800	___errno;
1801	fgetgrent;
1802	fgetgrent_r;
1803	fgetpwent;
1804	fgetpwent_r;
1805	flockfile;
1806	funlockfile;
1807	getchar_unlocked;
1808	getc_unlocked;
1809	getgrent;
1810	getgrent_r;
1811	getgrgid_r;
1812	getgrnam_r;
1813	getitimer;
1814	_getitimer;
1815	getlogin_r;
1816	getpwent;
1817	getpwent_r;
1818	getpwnam_r;
1819	getpwuid_r;
1820	gettimeofday;
1821	_gettimeofday;
1822	gmtime_r;
1823	localtime_r;
1824	putchar_unlocked;
1825	putc_unlocked;
1826	rand_r;
1827	readdir_r;
1828	setgrent;
1829	setitimer;
1830	_setitimer;
1831	setkey;
1832	_setkey;
1833	setpwent;
1834	strtok_r;
1835	sysinfo;
1836	_sysinfo;
1837	ttyname_r;
1838
1839$if _ELF32
1840	__div64;
1841	__mul64;
1842	__rem64;
1843	__udiv64;
1844	__urem64;
1845$endif
1846
1847$if sparc32
1848	__dtoll;
1849	__dtoull;
1850	__ftoll;
1851	__ftoull;
1852	_Q_lltoq;
1853	_Q_qtoll;
1854	_Q_qtoull;
1855	_Q_ulltoq;
1856	sbrk;
1857	_sbrk;
1858	__umul64		{ FLAGS = NODYNSORT };	# Same address as __mul64
1859$endif
1860
1861# On 32-bit platforms, the following symbols go into SYSVABI_1.3, but on
1862# other platforms they go directly into the current version (which will be
1863# either SUNW_0.7, or SISCD_2.3, depending on the similar issue described above.
1864$if _ELF32
1865} SYSVABI_1.3;
1866
1867SYMBOL_VERSION SYSVABI_1.3 {
1868$endif
1869
1870    global:
1871	_altzone;
1872	calloc			{ FLAGS = NODIRECT };
1873	__ctype;
1874	daylight;
1875	_daylight;
1876	environ			{ FLAGS = NODIRECT };
1877	_environ		{ FLAGS = NODIRECT };
1878	free			{ FLAGS = NODIRECT };
1879	frexp			{ TYPE = FUNCTION; FILTER = libm.so.2 };
1880	getdate_err;
1881	_getdate_err;
1882	getenv;
1883	__huge_val;
1884	__iob;
1885	isnan			{ TYPE = FUNCTION; FILTER = libm.so.2 };
1886	_isnan			{ TYPE = FUNCTION; FILTER = libm.so.2 };
1887	isnand			{ TYPE = FUNCTION; FILTER = libm.so.2 };
1888	_isnand			{ TYPE = FUNCTION; FILTER = libm.so.2 };
1889	ldexp			{ TYPE = FUNCTION; FILTER = libm.so.2 };
1890	logb			{ TYPE = FUNCTION; FILTER = libm.so.2 };
1891	malloc			{ FLAGS = NODIRECT };
1892	memcmp;
1893	memcpy;
1894	memmove;
1895	memset;
1896	modf			{ TYPE = FUNCTION; FILTER = libm.so.2 };
1897	_modf			{ TYPE = FUNCTION; FILTER = libm.so.2 };
1898	nextafter		{ TYPE = FUNCTION; FILTER = libm.so.2 };
1899	_nextafter		{ TYPE = FUNCTION; FILTER = libm.so.2 };
1900	_numeric;
1901	optarg;
1902	opterr;
1903	optind;
1904	optopt;
1905	realloc			{ FLAGS = NODIRECT };
1906	scalb			{ TYPE = FUNCTION; FILTER = libm.so.2 };
1907	_scalb			{ TYPE = FUNCTION; FILTER = libm.so.2 };
1908	timezone;
1909	_timezone;
1910	tzname;
1911	_tzname;
1912$if i386
1913	_fp_hw;
1914$endif
1915
1916    protected:
1917	abort;
1918	abs;
1919	access;
1920	_access;
1921	acct;
1922	_acct;
1923	alarm;
1924	_alarm;
1925	asctime;
1926	__assert;
1927	atexit;
1928	atof;
1929	atoi;
1930	atol;
1931	bsearch;
1932	catclose;
1933	_catclose;
1934	catgets;
1935	_catgets;
1936	catopen;
1937	_catopen;
1938	cfgetispeed;
1939	_cfgetispeed;
1940	cfgetospeed;
1941	_cfgetospeed;
1942	cfsetispeed;
1943	_cfsetispeed;
1944	cfsetospeed;
1945	_cfsetospeed;
1946	chdir;
1947	_chdir;
1948	chmod;
1949	_chmod;
1950	chown;
1951	_chown;
1952	chroot;
1953	_chroot;
1954	_cleanup;
1955	clearerr;
1956	clock;
1957	_close;
1958	close;
1959	closedir;
1960	_closedir;
1961	creat;
1962	_creat;
1963	ctermid;
1964	ctime;
1965	cuserid;
1966	_cuserid;
1967	difftime;
1968	div;
1969	dup;
1970	_dup;
1971	dup2;
1972	_dup2;
1973	execl;
1974	_execl;
1975	execle;
1976	_execle;
1977	execlp;
1978	_execlp;
1979	execv;
1980	_execv;
1981	execve;
1982	_execve;
1983	execvp;
1984	_execvp;
1985	exit;
1986	_exit;
1987	fattach;
1988	_fattach;
1989	fchdir;
1990	_fchdir;
1991	fchmod;
1992	_fchmod;
1993	fchown;
1994	_fchown;
1995	fclose;
1996	fcntl;
1997	_fcntl;
1998	fdetach;
1999	_fdetach;
2000	fdopen;
2001	_fdopen;
2002	feof;
2003	ferror;
2004	fflush;
2005	fgetc;
2006	fgetpos;
2007	fgets;
2008	__filbuf;
2009	fileno;
2010	_fileno;
2011	__flsbuf;
2012	fmtmsg;
2013	_fmtmsg;
2014	fopen;
2015	_fork;
2016	fork;
2017	fpathconf;
2018	_fpathconf;
2019	fprintf;
2020	fputc;
2021	fputs;
2022	fread;
2023	freopen;
2024	fscanf;
2025	fseek;
2026	fsetpos;
2027	fstat;
2028	_fstat;
2029	fstatvfs;
2030	_fstatvfs;
2031	fsync;
2032	_fsync;
2033	ftell;
2034	ftok;
2035	_ftok;
2036	fwrite;
2037	getc;
2038	getchar;
2039	getcontext;
2040	_getcontext;
2041	getcwd;
2042	_getcwd;
2043	getdate;
2044	_getdate;
2045	getegid;
2046	_getegid;
2047	geteuid;
2048	_geteuid;
2049	getgid;
2050	_getgid;
2051	getgrgid;
2052	getgrnam;
2053	getgroups;
2054	_getgroups;
2055	getlogin;
2056	getmsg;
2057	_getmsg;
2058	getopt;
2059	_getopt;
2060	getpass;
2061	_getpass;
2062	getpgid;
2063	_getpgid;
2064	getpgrp;
2065	_getpgrp;
2066	getpid;
2067	_getpid;
2068	getpmsg;
2069	_getpmsg;
2070	getppid;
2071	_getppid;
2072	getpwnam;
2073	getpwuid;
2074	getrlimit;
2075	_getrlimit;
2076	gets;
2077	getsid;
2078	_getsid;
2079	getsubopt;
2080	_getsubopt;
2081	gettxt;
2082	_gettxt;
2083	getuid;
2084	_getuid;
2085	getw;
2086	_getw;
2087	gmtime;
2088	grantpt;
2089	_grantpt;
2090	hcreate;
2091	_hcreate;
2092	hdestroy;
2093	_hdestroy;
2094	hsearch;
2095	_hsearch;
2096	initgroups;
2097	_initgroups;
2098	ioctl;
2099	_ioctl;
2100	isalnum;
2101	isalpha;
2102	isascii;
2103	_isascii;
2104	isastream;
2105	_isastream;
2106	isatty;
2107	_isatty;
2108	iscntrl;
2109	isdigit;
2110	isgraph;
2111	islower;
2112	isprint;
2113	ispunct;
2114	isspace;
2115	isupper;
2116	isxdigit;
2117	kill;
2118	_kill;
2119	labs;
2120	lchown;
2121	_lchown;
2122	ldiv;
2123	lfind;
2124	_lfind;
2125	link;
2126	_link;
2127	localeconv;
2128	localtime;
2129	lockf;
2130	_lockf;
2131	longjmp;
2132	lsearch;
2133	_lsearch;
2134	lseek;
2135	_lseek;
2136	lstat;
2137	_lstat;
2138	makecontext;
2139	_makecontext;
2140	mblen;
2141	mbstowcs;
2142	mbtowc;
2143	memccpy;
2144	_memccpy;
2145	memchr;
2146	memcntl;
2147	_memcntl;
2148	mkdir;
2149	_mkdir;
2150	mkfifo;
2151	_mkfifo;
2152	mknod;
2153	_mknod;
2154	mktemp;
2155	_mktemp;
2156	mktime;
2157	mlock;
2158	_mlock;
2159	mmap;
2160	_mmap;
2161	monitor;
2162	_monitor;
2163	mount;
2164	_mount;
2165	mprotect;
2166	_mprotect;
2167	msgctl;
2168	_msgctl;
2169	msgget;
2170	_msgget;
2171	msgrcv;
2172	_msgrcv;
2173	msgsnd;
2174	_msgsnd;
2175	msync;
2176	_msync;
2177	munlock;
2178	_munlock;
2179	munmap;
2180	_munmap;
2181	nftw;
2182	_nftw;
2183	nice;
2184	_nice;
2185	nl_langinfo;
2186	_nl_langinfo;
2187	open;
2188	_open;
2189	opendir;
2190	_opendir;
2191	pathconf;
2192	_pathconf;
2193	pause;
2194	_pause;
2195	pclose;
2196	_pclose;
2197	perror;
2198	pipe;
2199	_pipe;
2200	poll;
2201	_poll;
2202	popen;
2203	_popen;
2204	printf;
2205	profil;
2206	_profil;
2207	ptsname;
2208	_ptsname;
2209	putc;
2210	putchar;
2211	putenv;
2212	_putenv;
2213	putmsg;
2214	_putmsg;
2215	putpmsg;
2216	_putpmsg;
2217	puts;
2218	putw;
2219	_putw;
2220	qsort;
2221	raise;
2222	rand;
2223	read;
2224	_read;
2225	readdir;
2226	_readdir;
2227	readlink;
2228	_readlink;
2229	readv;
2230	_readv;
2231	remove;
2232	rename;
2233	_rename;
2234	rewind;
2235	rewinddir;
2236	_rewinddir;
2237	rmdir;
2238	_rmdir;
2239	scanf;
2240	seekdir;
2241	_seekdir;
2242	semctl;
2243	_semctl;
2244	semget;
2245	_semget;
2246	semop;
2247	_semop;
2248	setbuf;
2249	setcontext;
2250	_setcontext		{ FLAGS = NODYNSORT };
2251	setgid;
2252	_setgid;
2253	setgroups;
2254	_setgroups;
2255	setjmp;
2256	setlabel;
2257	setlocale;
2258	setpgid;
2259	_setpgid;
2260	setpgrp;
2261	_setpgrp;
2262	setrlimit;
2263	_setrlimit;
2264	setsid;
2265	_setsid;
2266	setuid;
2267	_setuid;
2268	setvbuf;
2269	shmat;
2270	_shmat;
2271	shmctl;
2272	_shmctl;
2273	shmdt;
2274	_shmdt;
2275	shmget;
2276	_shmget;
2277	sigaction;
2278	_sigaction		{ FLAGS = NODYNSORT };
2279	sigaddset;
2280	_sigaddset;
2281	sigaltstack;
2282	_sigaltstack;
2283	sigdelset;
2284	_sigdelset;
2285	sigemptyset;
2286	_sigemptyset;
2287	sigfillset;
2288	_sigfillset;
2289	sighold;
2290	_sighold;
2291	sigignore;
2292	_sigignore;
2293	sigismember;
2294	_sigismember;
2295	siglongjmp;
2296	_siglongjmp;
2297	signal;
2298	sigpause;
2299	_sigpause;
2300	sigpending;
2301	_sigpending;
2302	sigprocmask;
2303	_sigprocmask;
2304	sigrelse;
2305	_sigrelse;
2306	sigsend;
2307	_sigsend;
2308	sigsendset;
2309	_sigsendset;
2310	sigset;
2311	_sigset;
2312	sigsetjmp;
2313	_sigsetjmp		{ FLAGS = NODYNSORT };
2314	sigsuspend;
2315	_sigsuspend;
2316	sleep;
2317	_sleep;
2318	sprintf;
2319	srand;
2320	sscanf;
2321	stat;
2322	_stat;
2323	statvfs;
2324	_statvfs;
2325	stime;
2326	_stime;
2327	strcat;
2328	strchr;
2329	strcmp;
2330	strcoll;
2331	strcpy;
2332	strcspn;
2333	strdup;
2334	_strdup;
2335	strerror;
2336	strftime;
2337	strlen;
2338	strncat;
2339	strncmp;
2340	strncpy;
2341	strpbrk;
2342	strrchr;
2343	strspn;
2344	strstr;
2345	strtod;
2346	strtok;
2347	strtol;
2348	strtoul;
2349	strxfrm;
2350	swab;
2351	_swab;
2352	swapcontext;
2353	_swapcontext;
2354	symlink;
2355	_symlink;
2356	sync;
2357	_sync;
2358	sysconf;
2359	_sysconf;
2360	system;
2361	tcdrain;
2362	_tcdrain;
2363	tcflow;
2364	_tcflow;
2365	tcflush;
2366	_tcflush;
2367	tcgetattr;
2368	_tcgetattr;
2369	tcgetpgrp;
2370	_tcgetpgrp;
2371	tcgetsid;
2372	_tcgetsid;
2373	tcsendbreak;
2374	_tcsendbreak;
2375	tcsetattr;
2376	_tcsetattr;
2377	tcsetpgrp;
2378	_tcsetpgrp;
2379	tdelete;
2380	_tdelete;
2381	tell;
2382	_tell;
2383	telldir;
2384	_telldir;
2385	tempnam;
2386	_tempnam;
2387	tfind;
2388	_tfind;
2389	time;
2390	_time;
2391	times;
2392	_times;
2393	tmpfile;
2394	tmpnam;
2395	toascii;
2396	_toascii;
2397	tolower;
2398	_tolower;
2399	toupper;
2400	_toupper;
2401	tsearch;
2402	_tsearch;
2403	ttyname;
2404	twalk;
2405	_twalk;
2406	tzset;
2407	_tzset;
2408	ulimit;
2409	_ulimit;
2410	umask;
2411	_umask;
2412	umount;
2413	_umount;
2414	uname;
2415	_uname;
2416	ungetc;
2417	unlink;
2418	_unlink;
2419	unlockpt;
2420	_unlockpt;
2421	utime;
2422	_utime;
2423	vfprintf;
2424	vprintf;
2425	vsprintf;
2426	wait;
2427	_wait;
2428	waitid;
2429	_waitid;
2430	waitpid;
2431	_waitpid;
2432	wcstombs;
2433	wctomb;
2434	write;
2435	_write;
2436	writev;
2437	_writev;
2438	_xftw;
2439
2440$if _ELF32
2441	ptrace;
2442	_ptrace;
2443$endif
2444
2445$if i386
2446	_fxstat;
2447	_lxstat;
2448	nuname;
2449	_nuname;
2450	_xmknod;
2451	_xstat;
2452$endif
2453
2454$if !sparc32
2455	sbrk;
2456$endif
2457
2458$if _sparc
2459	__dtou;
2460	__ftou;
2461$endif
2462
2463$if sparc32
2464	.div;
2465	.mul;
2466	.rem;
2467	.stret1;
2468	.stret2;
2469	.stret4;
2470	# .stret4 and .stret8 are the same thing
2471	.stret8			{ FLAGS = NODYNSORT };
2472	.udiv;
2473	.umul;
2474	.urem;
2475	_Q_add;
2476	_Q_cmp;
2477	_Q_cmpe;
2478	_Q_div;
2479	_Q_dtoq;
2480	_Q_feq;
2481	_Q_fge;
2482	_Q_fgt;
2483	_Q_fle;
2484	_Q_flt;
2485	_Q_fne;
2486	_Q_itoq;
2487	_Q_mul;
2488	_Q_neg;
2489	_Q_qtod;
2490	_Q_qtoi;
2491	_Q_qtos;
2492	_Q_qtou;
2493	_Q_sqrt;
2494	_Q_stoq;
2495	_Q_sub;
2496	_Q_utoq;
2497$endif
2498
2499$if sparcv9
2500	# __align_cpy_1 is an alias for memcpy. Filter it out of
2501	# the .SUNW_dynsymsort section
2502	__align_cpy_1		{ FLAGS = NODYNSORT };
2503	__align_cpy_16;
2504	__align_cpy_2;
2505	__align_cpy_4;
2506	# __align_cpy_8 is same as __align_cpy_16
2507	__align_cpy_8		{ FLAGS = NODYNSORT };
2508	__dtoul;
2509	__ftoul;
2510	_Qp_add;
2511	_Qp_cmp;
2512	_Qp_cmpe;
2513	_Qp_div;
2514	_Qp_dtoq;
2515	_Qp_feq;
2516	_Qp_fge;
2517	_Qp_fgt;
2518	_Qp_fle;
2519	_Qp_flt;
2520	_Qp_fne;
2521	_Qp_itoq;
2522	_Qp_mul;
2523	_Qp_neg;
2524	_Qp_qtod;
2525	_Qp_qtoi;
2526	_Qp_qtos;
2527	_Qp_qtoui;
2528	_Qp_qtoux;
2529	_Qp_qtox;
2530	_Qp_sqrt;
2531	_Qp_stoq;
2532	_Qp_sub;
2533	_Qp_uitoq;
2534	_Qp_uxtoq;
2535	_Qp_xtoq;
2536	__sparc_utrap_install;
2537$endif
2538
2539# On amd64, we also have SYSVABI_1.3, but it contains a small subset of
2540# the symbols put in that version on other platforms.
2541$if amd64
2542} SYSVABI_1.3;
2543
2544SYMBOL_VERSION SYSVABI_1.3 {
2545$endif
2546    global:
2547$if !_sparc
2548	__flt_rounds;
2549$endif
2550
2551    protected:
2552	_ctermid;
2553	_getgrgid;
2554	_getgrnam;
2555	_getlogin;
2556	_getpwnam;
2557	_getpwuid;
2558	_ttyname;
2559
2560$if !sparc32
2561	_sbrk;
2562$endif
2563
2564$if _x86
2565	_fpstart;
2566	__fpstart;
2567$endif
2568};
2569
2570
2571
2572# There should never be more than one SUNWprivate version.
2573# Don't add any more.  Add new private symbols to SUNWprivate_1.1
2574
2575SYMBOL_VERSION SUNWprivate_1.1 {
2576    global:
2577	___Argv			{ FLAGS = NODIRECT };
2578	cfree			{ FLAGS = NODIRECT };
2579	_cswidth;
2580	__ctype_mask;
2581	__environ_lock		{ FLAGS = NODIRECT };
2582	__inf_read;
2583	__inf_written;
2584	__i_size;
2585	_isnanf			{ TYPE = FUNCTION; FILTER = libm.so.2 };
2586	__iswrune;
2587	__libc_threaded;
2588	_lib_version		{ FLAGS = NODIRECT };
2589	_logb			{ TYPE = FUNCTION; FILTER = libm.so.2 };
2590	_lone			{ FLAGS = NODYNSORT };
2591	_lten			{ FLAGS = NODYNSORT };
2592	_lzero			{ FLAGS = NODYNSORT };
2593	__malloc_lock;
2594	_memcmp;
2595	_memcpy			{ FLAGS = NODYNSORT };
2596	_memmove;
2597	_memset;
2598	_modff			{ TYPE = FUNCTION; FILTER = libm.so.2 };
2599	__nan_read;
2600	__nan_written;
2601	__nextwctype;
2602	__nis_debug_bind;
2603	__nis_debug_calls;
2604	__nis_debug_file;
2605	__nis_debug_rpc;
2606	__nis_prefsrv;
2607	__nis_preftype;
2608	__nis_server;
2609	_nss_default_finders;
2610	__progname		{ FLAGS = NODIRECT };
2611	_smbuf;
2612	_sp;
2613	__strdupa_str		{ FLAGS = NODIRECT };
2614	__strdupa_len		{ FLAGS = NODIRECT };
2615	_tdb_bootstrap;
2616	__threaded;
2617	thr_probe_getfunc_addr;
2618	__trans_lower;
2619	__trans_upper;
2620	_uberdata;
2621	__xpg6			{ FLAGS = NODIRECT };
2622
2623$if _ELF32
2624	_dladdr			{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2625	_dladdr1		{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2626	_dlclose		{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2627	_dldump			{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2628	_dlerror		{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2629	_dlinfo			{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2630	_dlmopen		{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2631	_dlopen			{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2632	_dlsym			{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2633	_ld_libc		{ TYPE = FUNCTION; FILTER = /usr/lib/ld.so.1 };
2634	_sys_errlist;
2635	_sys_errs;
2636	_sys_index;
2637	_sys_nerr		{ FLAGS = NODYNSORT };
2638	_sys_num_err;
2639$elif sparcv9
2640	_dladdr		{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2641	_dladdr1	{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2642	_dlclose	{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2643	_dldump		{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2644	_dlerror	{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2645	_dlinfo		{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2646	_dlmopen	{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2647	_dlopen		{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2648	_dlsym		{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2649	_ld_libc	{ TYPE = FUNCTION; FILTER = /usr/lib/sparcv9/ld.so.1 };
2650$elif amd64
2651	_dladdr		{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2652	_dladdr1	{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2653	_dlamd64getunwind { TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2654	_dlclose	{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2655	_dldump		{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2656	_dlerror	{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2657	_dlinfo		{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2658	_dlmopen	{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2659	_dlopen		{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2660	_dlsym		{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2661	_ld_libc	{ TYPE = FUNCTION; FILTER = /usr/lib/amd64/ld.so.1 };
2662$else
2663$error unknown platform
2664$endif
2665
2666$if _sparc
2667	__lyday_to_month;
2668	__mon_lengths;
2669	__yday_to_month;
2670$endif
2671$if i386
2672	_sse_hw;
2673$endif
2674
2675    protected:
2676	acctctl;
2677	allocids;
2678	_assert_c99;
2679	__assert_c99;
2680	_assfail;
2681	attr_count;
2682	attr_to_data_type;
2683	attr_to_name;
2684	attr_to_option;
2685	attr_to_xattr_view;
2686	_autofssys;
2687	_bufsync;
2688	_cladm;
2689	__class_quadruple;
2690	core_get_default_content;
2691	core_get_default_path;
2692	core_get_global_content;
2693	core_get_global_path;
2694	core_get_options;
2695	core_get_process_content;
2696	core_get_process_path;
2697	core_set_default_content;
2698	core_set_default_path;
2699	core_set_global_content;
2700	core_set_global_path;
2701	core_set_options;
2702	core_set_process_content;
2703	core_set_process_path;
2704	dbm_close_status;
2705	dbm_do_nextkey;
2706	dbm_setdefwrite;
2707	_D_cplx_div;
2708	_D_cplx_div_ix;
2709	_D_cplx_div_rx;
2710	_D_cplx_mul;
2711	defclose_r;
2712	defcntl;
2713	defcntl_r;
2714	defopen;
2715	defopen_r;
2716	defread;
2717	defread_r;
2718	_delete;
2719	_dgettext;
2720	_doprnt;
2721	_doscan;
2722	_errfp;
2723	_errxfp;
2724	exportfs;
2725	_F_cplx_div;
2726	_F_cplx_div_ix;
2727	_F_cplx_div_rx;
2728	_F_cplx_mul;
2729	__fgetwc_xpg5;
2730	__fgetws_xpg5;
2731	_findbuf;
2732	_findiop;
2733	__fini_daemon_priv;
2734	_finite;
2735	_fork1			{ FLAGS = NODYNSORT };
2736	_forkall		{ FLAGS = NODYNSORT };
2737	_fpclass;
2738	_fpgetmask;
2739	_fpgetround;
2740	_fpgetsticky;
2741	_fprintf;
2742	_fpsetmask;
2743	_fpsetround;
2744	_fpsetsticky;
2745	__fputwc_xpg5;
2746	__fputws_xpg5;
2747	_ftw;
2748	_gcvt;
2749	_getarg;
2750	__getcontext;
2751	_getdents;
2752	_get_exit_frame_monitor;
2753	_getfp;
2754	_getgroupsbymember;
2755	_getlogin_r;
2756	_getsp;
2757	__gettsp;
2758	getvmusage;
2759	__getwchar_xpg5;
2760	__getwc_xpg5;
2761	gtty;
2762	__idmap_flush_kcache;
2763	__idmap_reg;
2764	__idmap_unreg;
2765	__init_daemon_priv;
2766	__init_suid_priv;
2767	_insert;
2768	inst_sync;
2769	_iswctype;
2770	klpd_create;
2771	klpd_getpath;
2772	klpd_getport;
2773	klpd_getucred;
2774	klpd_register;
2775	klpd_register_id;
2776	klpd_unregister;
2777	klpd_unregister_id;
2778	_lgrp_home_fast		{ FLAGS = NODYNSORT };
2779	_lgrpsys;
2780	_lltostr;
2781	_lock_clear;
2782	_lock_try;
2783	_ltzset;
2784	lwp_self;
2785	makeut;
2786	makeutx;
2787	_mbftowc;
2788	mcfiller;
2789	mntopt;
2790	modctl;
2791	modutx;
2792	msgctl64;
2793	__multi_innetgr;
2794	_mutex_destroy		{ FLAGS = NODYNSORT };
2795	mutex_held;
2796	_mutex_init		{ FLAGS = NODYNSORT };
2797	_mutex_unlock		{ FLAGS = NODYNSORT };
2798	name_to_attr;
2799	nfs_getfh;
2800	nfssvc;
2801	_nfssys;
2802	__nis_get_environment;
2803	_nss_db_state_destr;
2804	nss_default_key2str;
2805	nss_delete;
2806	nss_endent;
2807	nss_getent;
2808	_nss_initf_group;
2809	_nss_initf_netgroup;
2810	_nss_initf_passwd;
2811	_nss_initf_shadow;
2812	nss_packed_arg_init;
2813	nss_packed_context_init;
2814	nss_packed_getkey;
2815	nss_packed_set_status;
2816	nss_search;
2817	nss_setent;
2818	_nss_XbyY_fgets;
2819	__nsw_extended_action_v1;
2820	__nsw_freeconfig_v1;
2821	__nsw_getconfig_v1;
2822	__nthreads;
2823	__openattrdirat;
2824	option_to_attr;
2825	__priv_bracket;
2826	__priv_relinquish;
2827	pset_assign_forced;
2828	pset_bind_lwp;
2829	_psignal;
2830	_pthread_setcleanupinit;
2831	__putwchar_xpg5;
2832	__putwc_xpg5;
2833	rctlctl;
2834	rctllist;
2835	_realbufend;
2836	_resume;
2837	_resume_ret;
2838	_rpcsys;
2839	_sbrk_grow_aligned;
2840	scrwidth;
2841	semctl64;
2842	_semctl64;
2843	set_setcontext_enforcement;
2844	_setbufend;
2845	__set_errno;
2846	setprojrctl;
2847	_setregid;
2848	_setreuid;
2849	setsigacthandler;
2850	shmctl64;
2851	_shmctl64;
2852	sigflag;
2853	_signal;
2854	_sigoff;
2855	_sigon;
2856	_so_accept;
2857	_so_bind;
2858	_sockconfig;
2859	_so_connect;
2860	_so_getpeername;
2861	_so_getsockname;
2862	_so_getsockopt;
2863	_so_listen;
2864	_so_recv;
2865	_so_recvfrom;
2866	_so_recvmsg;
2867	_so_send;
2868	_so_sendmsg;
2869	_so_sendto;
2870	_so_setsockopt;
2871	_so_shutdown;
2872	_so_socket;
2873	_so_socketpair;
2874	str2group;
2875	str2passwd;
2876	str2spwd;
2877	__strptime_dontzero;
2878	stty;
2879	syscall;
2880	_sysconfig;
2881	__systemcall;
2882	thr_continue_allmutators;
2883	_thr_continue_allmutators;
2884	thr_continue_mutator;
2885	_thr_continue_mutator;
2886	thr_getstate;
2887	_thr_getstate;
2888	thr_mutators_barrier;
2889	_thr_mutators_barrier;
2890	thr_probe_setup;
2891	_thr_schedctl;
2892	thr_setmutator;
2893	_thr_setmutator;
2894	thr_setstate;
2895	_thr_setstate;
2896	thr_sighndlrinfo;
2897	_thr_sighndlrinfo;
2898	_thr_slot_offset;
2899	thr_suspend_allmutators;
2900	_thr_suspend_allmutators;
2901	thr_suspend_mutator;
2902	_thr_suspend_mutator;
2903	thr_wait_mutator;
2904	_thr_wait_mutator;
2905	__tls_get_addr;
2906	tpool_create;
2907	tpool_dispatch;
2908	tpool_destroy;
2909	tpool_wait;
2910	tpool_suspend;
2911	tpool_suspended;
2912	tpool_resume;
2913	tpool_member;
2914	_ttyname_dev;
2915	_ucred_alloc;
2916	ucred_getamask;
2917	_ucred_getamask;
2918	ucred_getasid;
2919	_ucred_getasid;
2920	ucred_getatid;
2921	_ucred_getatid;
2922	ucred_getauid;
2923	_ucred_getauid;
2924	_ulltostr;
2925	_uncached_getgrgid_r;
2926	_uncached_getgrnam_r;
2927	_uncached_getpwnam_r;
2928	_uncached_getpwuid_r;
2929	__ungetwc_xpg5;
2930	_unordered;
2931	utssys;
2932	_verrfp;
2933	_verrxfp;
2934	_vwarnfp;
2935	_vwarnxfp;
2936	_warnfp;
2937	_warnxfp;
2938	__wcsftime_xpg5;
2939	__wcstok_xpg5;
2940	wdbindf;
2941	wdchkind;
2942	wddelim;
2943	_wrtchk;
2944	_xflsbuf;
2945	_xgetwidth;
2946	zone_add_datalink;
2947	zone_boot;
2948	zone_check_datalink;
2949	zone_create;
2950	zone_destroy;
2951	zone_enter;
2952	zone_getattr;
2953	zone_get_id;
2954	zone_list;
2955	zone_list_datalink;
2956	zonept;
2957	zone_remove_datalink;
2958	zone_setattr;
2959	zone_shutdown;
2960	zone_version;
2961
2962$if _ELF32
2963	__divdi3;
2964	_file_set;
2965	_fprintf_c89;
2966	_fscanf_c89;
2967	_fwprintf_c89;
2968	_fwscanf_c89;
2969	_imaxabs_c89;
2970	_imaxdiv_c89;
2971	__moddi3;
2972	_printf_c89;
2973	_scanf_c89;
2974	_snprintf_c89;
2975	_sprintf_c89;
2976	_sscanf_c89;
2977	_strtoimax_c89;
2978	_strtoumax_c89;
2979	_swprintf_c89;
2980	_swscanf_c89;
2981	__udivdi3;
2982	__umoddi3;
2983	_vfprintf_c89;
2984	_vfscanf_c89;
2985	_vfwprintf_c89;
2986	_vfwscanf_c89;
2987	_vprintf_c89;
2988	_vscanf_c89;
2989	_vsnprintf_c89;
2990	_vsprintf_c89;
2991	_vsscanf_c89;
2992	_vswprintf_c89;
2993	_vswscanf_c89;
2994	_vwprintf_c89;
2995	_vwscanf_c89;
2996	_wcstoimax_c89;
2997	_wcstoumax_c89;
2998	_wprintf_c89;
2999	_wscanf_c89;
3000$endif
3001
3002$if _sparc
3003	_cerror;
3004	install_utrap;
3005	_install_utrap;
3006	nop;
3007	_Q_cplx_div;
3008	_Q_cplx_div_ix;
3009	_Q_cplx_div_rx;
3010	_Q_cplx_lr_div;
3011	_Q_cplx_lr_div_ix;
3012	_Q_cplx_lr_div_rx;
3013	_Q_cplx_lr_mul;
3014	_Q_cplx_mul;
3015	_QgetRD;
3016	_xregs_clrptr;
3017$endif
3018
3019$if sparc32
3020	__ashldi3;
3021	__ashrdi3;
3022	_cerror64;
3023	__cmpdi2;
3024	__floatdidf;
3025	__floatdisf;
3026	__floatundidf;
3027	__floatundisf;
3028	__lshrdi3;
3029	__muldi3;
3030	__ucmpdi2;
3031$endif
3032
3033$if _x86
3034	_D_cplx_lr_div;
3035	_D_cplx_lr_div_ix;
3036	_D_cplx_lr_div_rx;
3037	_F_cplx_lr_div;
3038	_F_cplx_lr_div_ix;
3039	_F_cplx_lr_div_rx;
3040	__fltrounds;
3041	sysi86;
3042	_sysi86;
3043	_X_cplx_div;
3044	_X_cplx_div_ix;
3045	_X_cplx_div_rx;
3046	_X_cplx_lr_div;
3047	_X_cplx_lr_div_ix;
3048	_X_cplx_lr_div_rx;
3049	_X_cplx_mul;
3050	__xgetRD;
3051	__xtol;
3052	__xtoll;
3053	__xtoul;
3054	__xtoull;
3055$endif
3056
3057$if i386
3058	__divrem64;
3059	___tls_get_addr;
3060	__udivrem64;
3061$endif
3062
3063# The following functions should not be exported from libc,
3064# but /lib/libm.so.2, some older versions of the Studio
3065# compiler/debugger components, and some ancient programs
3066# found in /usr/dist reference them.  When we no longer
3067# care about these old and broken binary objects, these
3068# symbols should be deleted.
3069	_brk					{ FLAGS = NODYNSORT };
3070	_cond_broadcast				{ FLAGS = NODYNSORT };
3071	_cond_init				{ FLAGS = NODYNSORT };
3072	_cond_signal				{ FLAGS = NODYNSORT };
3073	_cond_wait				{ FLAGS = NODYNSORT };
3074	_ecvt					{ FLAGS = NODYNSORT };
3075	_fcvt					{ FLAGS = NODYNSORT };
3076	_getc_unlocked				{ FLAGS = NODYNSORT };
3077	_llseek					{ FLAGS = NODYNSORT };
3078	_pthread_attr_getdetachstate		{ FLAGS = NODYNSORT };
3079	_pthread_attr_getinheritsched		{ FLAGS = NODYNSORT };
3080	_pthread_attr_getschedparam		{ FLAGS = NODYNSORT };
3081	_pthread_attr_getschedpolicy		{ FLAGS = NODYNSORT };
3082	_pthread_attr_getscope			{ FLAGS = NODYNSORT };
3083	_pthread_attr_getstackaddr		{ FLAGS = NODYNSORT };
3084	_pthread_attr_getstacksize		{ FLAGS = NODYNSORT };
3085	_pthread_attr_init			{ FLAGS = NODYNSORT };
3086	_pthread_condattr_getpshared		{ FLAGS = NODYNSORT };
3087	_pthread_condattr_init			{ FLAGS = NODYNSORT };
3088	_pthread_cond_init			{ FLAGS = NODYNSORT };
3089	_pthread_create				{ FLAGS = NODYNSORT };
3090	_pthread_getschedparam			{ FLAGS = NODYNSORT };
3091	_pthread_join				{ FLAGS = NODYNSORT };
3092	_pthread_key_create			{ FLAGS = NODYNSORT };
3093	_pthread_mutexattr_getprioceiling	{ FLAGS = NODYNSORT };
3094	_pthread_mutexattr_getprotocol		{ FLAGS = NODYNSORT };
3095	_pthread_mutexattr_getpshared		{ FLAGS = NODYNSORT };
3096	_pthread_mutexattr_init			{ FLAGS = NODYNSORT };
3097	_pthread_mutex_getprioceiling		{ FLAGS = NODYNSORT };
3098	_pthread_mutex_init			{ FLAGS = NODYNSORT };
3099	_pthread_sigmask			{ FLAGS = NODYNSORT };
3100	_rwlock_init				{ FLAGS = NODYNSORT };
3101	_rw_rdlock				{ FLAGS = NODYNSORT };
3102	_rw_unlock				{ FLAGS = NODYNSORT };
3103	_rw_wrlock				{ FLAGS = NODYNSORT };
3104	_sbrk_unlocked				{ FLAGS = NODYNSORT };
3105	_select					{ FLAGS = NODYNSORT };
3106	_sema_init				{ FLAGS = NODYNSORT };
3107	_sema_post				{ FLAGS = NODYNSORT };
3108	_sema_trywait				{ FLAGS = NODYNSORT };
3109	_sema_wait				{ FLAGS = NODYNSORT };
3110	_sysfs					{ FLAGS = NODYNSORT };
3111	_thr_create				{ FLAGS = NODYNSORT };
3112	_thr_exit				{ FLAGS = NODYNSORT };
3113	_thr_getprio				{ FLAGS = NODYNSORT };
3114	_thr_getspecific			{ FLAGS = NODYNSORT };
3115	_thr_join				{ FLAGS = NODYNSORT };
3116	_thr_keycreate				{ FLAGS = NODYNSORT };
3117	_thr_kill				{ FLAGS = NODYNSORT };
3118	_thr_main				{ FLAGS = NODYNSORT };
3119	_thr_self				{ FLAGS = NODYNSORT };
3120	_thr_setspecific			{ FLAGS = NODYNSORT };
3121	_thr_sigsetmask				{ FLAGS = NODYNSORT };
3122	_thr_stksegment				{ FLAGS = NODYNSORT };
3123	_ungetc_unlocked			{ FLAGS = NODYNSORT };
3124
3125    local:
3126	__imax_lldiv				{ FLAGS = NODYNSORT };
3127	_ti_thr_self				{ FLAGS = NODYNSORT };
3128	*;
3129
3130$if lf64
3131	_seekdir64		{ FLAGS = NODYNSORT };
3132	_telldir64		{ FLAGS = NODYNSORT };
3133$endif
3134
3135$if _sparc
3136	__cerror		{ FLAGS = NODYNSORT };
3137$endif
3138
3139$if sparc32
3140	__cerror64		{ FLAGS = NODYNSORT };
3141$endif
3142
3143$if sparcv9
3144	__cleanup		{ FLAGS = NODYNSORT };
3145$endif
3146
3147$if i386
3148	_syscall6		{ FLAGS = NODYNSORT };
3149	__systemcall6		{ FLAGS = NODYNSORT };
3150$endif
3151
3152$if amd64
3153	___tls_get_addr		{ FLAGS = NODYNSORT };
3154$endif
3155};
3156