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