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