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