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