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