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