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