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