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