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