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