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