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