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