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