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