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