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