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