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