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