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