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