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