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