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