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