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