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