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