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