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