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