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