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