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