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