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