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