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