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