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#
23# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
24#
25
26# This file provides exceptions to the usual rules applied to shared
27# objects by interface_cmp. All strings are Perl regular expressions
28# that are compared to file, version, and symbol names. In addition
29# to the standard Perl syntax, there is one extension:
30#
31#	MACH(dir)
32#
33# is expanded into a regular expression that matches the given
34# directory, or a 64-bit subdirectory of the directory with the
35# name of a 64-bit architecture. For example, MACH(lib) will match
36# any of the following:
37#
38#	lib
39#	lib/amd64
40#	lib/sparcv9
41#
42
43
44## libbsm
45#
46# - Removed interfaces: setauclassfile, setaueventfile setauuserfile testac
47#	4686423 undocumented interfaces are not used
48# - Removed interfaces: auditsvc
49#	6638707 implement the removal of auditsvc(2) as noted in PSARC/2002/665
50#
51DELSYM	^(auditsvc|setauclassfile|setaueventfile|setauuserfile|testac)$	\
52	^SUNW_(0\.[7-8]|1\.[1-2])$	\
53	^MACH(lib)/libbsm\.so\.1$
54#
55# - Removed interfaces: getauusernam(3bsm)
56# 6914742 remove audit_user phase 1
57#	PSARC/2010/003 EOL and removal of audit_user(4) and getauusernam(3bsm)
58#
59DELSYM	^(getauuserent_r|getauusernam_r)$	\
60	^SUNW_(0\.8|1\.[1-2])$	\
61	^MACH(lib)/libbsm\.so\.1$
62DELSYM	^(endauuser|getauuserent|getauusernam|setauuser)$	\
63	^SUNW_(0\.[7-8]|1\.[1-2])$	\
64	^MACH(lib)/libbsm\.so\.1$
65#
66# - Removed interfaces: setac, getacna, getacmin, getacflg, getacdir, endac
67#	6875456 Solaris Audit configuration in SMF - phase 2
68#		(PSARC/2009/636, PSARC/2009/642)
69#
70DELSYM	^(setac|getacna|getacmin|getacflg|getacdir|endac)$	\
71	^SUNW_(0\.[7-8]|1\.[1-2])$	\
72	^MACH(lib)/libbsm\.so\.1$
73
74
75## libmalloc / libmapmalloc
76#
77# - Objects that provide malloc implementations had functions intentionally
78#   removed by:
79#	6464344 malloc library cleanup
80#	PSARC 2006/477 malloc library cleanup
81#
82DELSYM	^(_cfree|_mallinfo|_mallopt)$	\
83	^SUNW_1\.1$	\
84	^usr/MACH(lib)/libmalloc\.so\.1$
85DELSYM	^(mallinfo|mallopt)$	\
86	^SUNW_(0\.7|1\.1)$	\
87	^usr/MACH(lib)/libmapmalloc\.so\.1$
88DELSYM	^(_cfree|_?mallinfo|_?mallopt|_memalign|_valloc)$	\
89	^SUNW_1\.1$	\
90	^usr/MACH(lib)/watchmalloc\.so\.1$
91
92
93## libc
94#
95# - In Solaris 10, libc version SUNW_1.23 was incorrectly defined. In a
96#   subsequent update, those symbols were properly transfered to SUNW_1.22.4.
97#   However, SUNW_1.23 had to remain in place as an empty version to satisfy
98#   executables already in the field that were bound to it.
99#	6763000 libc versioning needs a little tlc in Solaris 10
100#   The following excludes an empty top version SUNW_1.23 from triggering
101#   a flood of "added interface" errors.
102#
103EMPTY_TOPVERSION	^SUNW_1\.23$	^MACH(lib)/libc\.so\.1$
104EMPTY_TOPVERSION	^SUNW_1\.23$	^usr/lib/libc/libc_hwcap\d+\.so\.1$
105
106
107## libnsl
108#
109# - The function _inet_aton was removed from libnsl.so.1 as part of
110#	6700179 expunge synonyms.h
111#	PSARC 2008/309 expunge synonyms.h
112# - Version SUN_1.10 was vacated when inet_aton was backported into SUNW_1.9.1
113#	4944187 getaddrinfo doesn't convert broadcast address if dns
114#		isn't in nsswitch.conf
115#	6747055 Solaris 10 apps using recent version of libnsl.so do
116#		not run on Nevada
117#
118DELSYM	^_inet_aton$	^SUNW_1\.9\.1$	^MACH(lib)/libnsl\.so\.1$
119EMPTY_TOPVERSION	^SUNW_1\.10$	^MACH(lib)/libnsl\.so\.1$
120
121
122## libnsl
123#
124# The following functions are removed from libnsl.so.1 as part of
125#	6874309 Remove NIS+ from Solaris
126#	PSARC 2009/530 Removal of NIS+
127#
128DELSYM  ^nis_add$       \
129	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
130	^MACH(lib)/libnsl\.so\.1$
131DELSYM  ^nis_add_entry$ \
132	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
133	^MACH(lib)/libnsl\.so\.1$
134DELSYM  ^nis_addmember$ \
135	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
136	^MACH(lib)/libnsl\.so\.1$
137DELSYM  ^nis_checkpoint$        \
138	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
139	^MACH(lib)/libnsl\.so\.1$
140DELSYM  ^nis_creategroup$       \
141	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
142	^MACH(lib)/libnsl\.so\.1$
143DELSYM  ^nis_destroygroup$      \
144	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
145	^MACH(lib)/libnsl\.so\.1$
146DELSYM  ^nis_first_entry$       \
147	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
148	^MACH(lib)/libnsl\.so\.1$
149DELSYM  ^nis_freenames$ \
150	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
151	^MACH(lib)/libnsl\.so\.1$
152DELSYM  ^nis_freeresult$        \
153	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
154	^MACH(lib)/libnsl\.so\.1$
155DELSYM  ^nis_freeservlist$      \
156	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
157	^MACH(lib)/libnsl\.so\.1$
158DELSYM  ^nis_freetags$  \
159	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
160	^MACH(lib)/libnsl\.so\.1$
161DELSYM  ^nis_getnames$  \
162	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
163	^MACH(lib)/libnsl\.so\.1$
164DELSYM  ^nis_getservlist$       \
165	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
166	^MACH(lib)/libnsl\.so\.1$
167DELSYM  ^nis_ismember$  \
168	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
169	^MACH(lib)/libnsl\.so\.1$
170DELSYM  ^nis_lerror$    \
171	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
172	^MACH(lib)/libnsl\.so\.1$
173DELSYM  ^nis_list$      \
174	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
175	^MACH(lib)/libnsl\.so\.1$
176DELSYM  ^nis_local_principal$   \
177	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
178	^MACH(lib)/libnsl\.so\.1$
179DELSYM  ^nis_lookup$    \
180	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
181	^MACH(lib)/libnsl\.so\.1$
182DELSYM  ^nis_mkdir$     \
183	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
184	^MACH(lib)/libnsl\.so\.1$
185DELSYM  ^nis_modify$    \
186	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
187	^MACH(lib)/libnsl\.so\.1$
188DELSYM  ^nis_modify_entry$      \
189	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
190	^MACH(lib)/libnsl\.so\.1$
191DELSYM  ^nis_next_entry$        \
192	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
193	^MACH(lib)/libnsl\.so\.1$
194DELSYM  ^nis_perror$    \
195	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
196	^MACH(lib)/libnsl\.so\.1$
197DELSYM  ^nis_ping$      \
198	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
199	^MACH(lib)/libnsl\.so\.1$
200DELSYM  ^nis_print_group_entry$ \
201	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
202	^MACH(lib)/libnsl\.so\.1$
203DELSYM  ^nis_print_object$      \
204	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
205	^MACH(lib)/libnsl\.so\.1$
206DELSYM  ^nis_remove$    \
207	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
208	^MACH(lib)/libnsl\.so\.1$
209DELSYM  ^nis_remove_entry$      \
210	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
211	^MACH(lib)/libnsl\.so\.1$
212DELSYM  ^nis_removemember$      \
213	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
214	^MACH(lib)/libnsl\.so\.1$
215DELSYM  ^nis_rmdir$     \
216	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
217	^MACH(lib)/libnsl\.so\.1$
218DELSYM  ^nis_servstate$ \
219	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
220	^MACH(lib)/libnsl\.so\.1$
221DELSYM  ^nis_sperrno$   \
222	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
223	^MACH(lib)/libnsl\.so\.1$
224DELSYM  ^nis_sperror$   \
225	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
226	^MACH(lib)/libnsl\.so\.1$
227DELSYM  ^nis_sperror_r$ \
228	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
229	^MACH(lib)/libnsl\.so\.1$
230DELSYM  ^nis_stats$	\
231	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
232	^MACH(lib)/libnsl\.so\.1$
233DELSYM  ^nis_verifygroup$       \
234	^SUNW_(0\.[7-9])|(1\.[1-9](\.1)?)$      \
235	^MACH(lib)/libnsl\.so\.1$
236
237
238## libpapi
239#
240# - FSG_1.0 is a label for the Free Standards Group, version 1 of this library
241#	6346505 print commands should use PAPI for service interaction
242#		(LSARC/2003/547)
243#
244EMPTY_TOPVERSION	^FSG_1\.0$	^usr/lib/libpapi.so.0$
245
246
247## libresolv2
248#
249# - Version SUNW_2.3 is empty
250#	6689937 libresolv2's mapfile-vers needs updating to line up
251#		with S10 changes
252#
253EMPTY_TOPVERSION	^SUNW_2\.3$	^MACH(lib)/libresolv\.so\.2$
254
255
256## librtld_db
257#
258# - rd_fix_phdrs() was introduced into Solaris 10 to support branded zones,
259#   and was removed as part of:
260#	6599700 librtld_db needs better plugin support
261#
262DELSYM	^rd_fix_phdrs$	^SUNW_1\.1$	^MACH(lib)/librtld_db\.so\.1$
263
264
265## libtecla
266#
267#    - gl_completion_action() was renamed pca_path_completions()
268#    - gl_set_term_size was moved from tecla_1.4 to tecla_l.5
269#    - The version tecla_l.5 (note the "el" (l) instead of a one (1) is
270#      intentional. See the libtecla mapfile for details.
271#
272DELSYM	^gl_completion_action$	\
273	^tecla_1\.[2-4]$	\
274	^usr/MACH(lib)/libtecla\.so\.1$
275DELSYM	^gl_set_term_size$	\
276	^tecla_1\.4$		\
277	^usr/MACH(lib)/libtecla\.so\.1$
278ADDSYM	^pca_path_completions$		\
279	^(tecla_1\.[2346]|tecla_l\.5)$	\
280	^usr/MACH(lib)/libtecla\.so\.1$
281