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