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