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