aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS8
-rw-r--r--benchtests/strcoll-inputs/filelist#en_US.UTF-829
-rw-r--r--config.h.in4
-rw-r--r--config.make.in1
-rwxr-xr-xconfigure18
-rw-r--r--configure.ac11
-rw-r--r--include/libc-symbols.h7
-rw-r--r--include/shlib-compat.h8
-rw-r--r--malloc/thread-freeres.c5
-rw-r--r--manual/nss.texi4
-rwxr-xr-xscripts/build-many-glibcs.py6
-rw-r--r--sunrpc/Makefile152
-rw-r--r--sunrpc/bug20790.x1
-rw-r--r--sunrpc/proto.h65
-rw-r--r--sunrpc/rpc_clntout.c333
-rw-r--r--sunrpc/rpc_cout.c811
-rw-r--r--sunrpc/rpc_hout.c607
-rw-r--r--sunrpc/rpc_main.c1451
-rw-r--r--sunrpc/rpc_parse.c687
-rw-r--r--sunrpc/rpc_parse.h165
-rw-r--r--sunrpc/rpc_sample.c336
-rw-r--r--sunrpc/rpc_scan.c544
-rw-r--r--sunrpc/rpc_scan.h104
-rw-r--r--sunrpc/rpc_svcout.c1093
-rw-r--r--sunrpc/rpc_tblout.c178
-rw-r--r--sunrpc/rpc_util.c525
-rw-r--r--sunrpc/rpc_util.h154
-rw-r--r--sunrpc/rpcgen.c2
-rw-r--r--sunrpc/rpcsvc/bootparam.h23
-rw-r--r--sunrpc/rpcsvc/bootparam_prot.x97
-rw-r--r--sunrpc/rpcsvc/key_prot.x283
-rw-r--r--sunrpc/rpcsvc/klm_prot.x130
-rw-r--r--sunrpc/rpcsvc/mount.x161
-rw-r--r--sunrpc/rpcsvc/nfs_prot.x352
-rw-r--r--sunrpc/rpcsvc/nlm_prot.x203
-rw-r--r--sunrpc/rpcsvc/rex.x229
-rw-r--r--sunrpc/rpcsvc/rquota.x61
-rw-r--r--sunrpc/rpcsvc/rstat.x145
-rw-r--r--sunrpc/rpcsvc/rusers.x228
-rw-r--r--sunrpc/rpcsvc/sm_inter.x110
-rw-r--r--sunrpc/rpcsvc/spray.x84
-rw-r--r--sunrpc/rpcsvc/yppasswd.x61
-rw-r--r--sysdeps/unix/sysv/linux/arc/libc.abilist162
43 files changed, 35 insertions, 9603 deletions
diff --git a/NEWS b/NEWS
index f69d48a38f..81b014a7ee 100644
--- a/NEWS
+++ b/NEWS
@@ -91,6 +91,14 @@ Major new features:
Deprecated and removed features, and other changes affecting compatibility:
+* Remove configure option --enable-obsolete-rpc. Sun RPC is removed
+ from glibc. This includes the rpcgen program, librpcsvc, and the Sun
+ RPC header files. Backward compatibility for old programs is kept
+ only for architectures and ABIs that have been added in or before
+ glibc 2.31. New programs need to use TI-RPC
+ <http://git.linux-nfs.org/?p=steved/libtirpc.git;a=summary> and
+ rpcsvc-proto <https://github.com/thkukuk/rpcsvc-proto>.
+
* Remove configure option --enable-obsolete-nsl. libnsl is only built
as shared library for backward compatibility and the NSS modules "nis"
and "nisplus" are not built at all and libnsl's headers aren't
diff --git a/benchtests/strcoll-inputs/filelist#en_US.UTF-8 b/benchtests/strcoll-inputs/filelist#en_US.UTF-8
index aa44107ad6..2f4ef195bb 100644
--- a/benchtests/strcoll-inputs/filelist#en_US.UTF-8
+++ b/benchtests/strcoll-inputs/filelist#en_US.UTF-8
@@ -14107,40 +14107,20 @@ nptl
bits
manual
sunrpc
-rpc_hout.c
tst-xdrmem2.c
-rpc_util.h
getrpcbynumber_r.c
xdr_intXX_t.c
-rpc_tblout.c
svc.c
-rpc_svcout.c
get_myaddr.c
getrpcport.c
auth_unix.c
rpc_prot.c
svcauth_des.c
-rpc_clntout.c
des_soft.c
thrsvc.c
xdr_rec.c
rpcinfo.c
rpcsvc
-sm_inter.x
-spray.x
-nfs_prot.x
-bootparam.h
-klm_prot.x
-key_prot.x
-rstat.x
-rusers.x
-rex.x
-yppasswd.x
-mount.x
-bootparam_prot.x
-rquota.x
-nlm_prot.x
-rpc_main.c
pmap_prot.c
pmap_prot2.c
rtime.c
@@ -14150,7 +14130,6 @@ svc_simple.c
svc_raw.c
getrpcent.c
pmap_rmt.c
-rpc_sample.c
pm_getport.c
openchild.c
xdr_stdio.c
@@ -14187,11 +14166,8 @@ clnt.h
pmap_clnt.c
xdr.c
bindrsvprt.c
-rpc_parse.c
Makefile
-rpc_util.c
des_crypt.c
-rpc_parse.h
key_call.c
authdes_prot.c
xdr_float.c
@@ -14201,7 +14177,6 @@ clnt_gen.c
getrpcbyname_r.c
getrpcbyname.c
clnt_udp.c
-proto.h
publickey.c
svc_auth.c
etc.rpc
@@ -14212,20 +14187,16 @@ getrpcent_r.c
rpc_common.c
rpc_dtable.c
clnt_unix.c
-rpcgen.c
auth_none.c
-rpc_scan.c
authuxprot.c
svc_udp.c
Versions
test-rpcent.c
svc_run.c
key_prot.c
-rpc_cout.c
pm_getmaps.c
xdr_ref.c
getrpcbynumber.c
-rpc_scan.h
ChangeLog.old-ports-arm
libc-abis
configure.ac
diff --git a/config.h.in b/config.h.in
index 4693234552..b823c8e080 100644
--- a/config.h.in
+++ b/config.h.in
@@ -169,10 +169,6 @@
/* Define if multi-arch DSOs should be generated. */
#undef USE_MULTIARCH
-/* Define if obsolete RPC code should be made available for user-level code
- to link against. */
-#undef LINK_OBSOLETE_RPC
-
/* Define if Systemtap <sys/sdt.h> probes should be defined. */
#undef USE_STAP_PROBE
diff --git a/config.make.in b/config.make.in
index cefb6d4a90..1ac9417245 100644
--- a/config.make.in
+++ b/config.make.in
@@ -96,7 +96,6 @@ build-profile = @profile@
build-static-nss = @static_nss@
cross-compiling = @cross_compiling@
force-install = @force_install@
-link-obsolete-rpc = @link_obsolete_rpc@
build-crypt = @build_crypt@
build-nscd = @build_nscd@
use-nscd = @use_nscd@
diff --git a/configure b/configure
index 793c0068cc..4795e721e5 100755
--- a/configure
+++ b/configure
@@ -673,7 +673,6 @@ base_machine
have_tunables
build_pt_chown
build_nscd
-link_obsolete_rpc
libc_cv_static_nss_crypt
libc_cv_nss_crypt
build_crypt
@@ -784,7 +783,6 @@ enable_multi_arch
enable_experimental_malloc
enable_crypt
enable_nss_crypt
-enable_obsolete_rpc
enable_systemtap
enable_build_nscd
enable_nscd
@@ -1455,8 +1453,6 @@ Optional Features:
--disable-crypt do not build nor install the passphrase hashing
library, libcrypt
--enable-nss-crypt enable libcrypt to use nss
- --enable-obsolete-rpc build and install the obsolete RPC code for
- link-time usage
--enable-systemtap enable systemtap static probe points [default=no]
--disable-build-nscd disable building and installing the nscd daemon
--disable-nscd library functions will not contact the nscd daemon
@@ -3636,20 +3632,6 @@ fi
-# Check whether --enable-obsolete-rpc was given.
-if test "${enable_obsolete_rpc+set}" = set; then :
- enableval=$enable_obsolete_rpc; link_obsolete_rpc=$enableval
-else
- link_obsolete_rpc=no
-fi
-
-
-
-if test "$link_obsolete_rpc" = yes; then
- $as_echo "#define LINK_OBSOLETE_RPC 1" >>confdefs.h
-
-fi
-
# Check whether --enable-systemtap was given.
if test "${enable_systemtap+set}" = set; then :
enableval=$enable_systemtap; systemtap=$enableval
diff --git a/configure.ac b/configure.ac
index 33a1189804..93e68fb696 100644
--- a/configure.ac
+++ b/configure.ac
@@ -376,17 +376,6 @@ AC_SUBST(libc_cv_nss_crypt)
AC_SUBST(libc_cv_static_nss_crypt)
-AC_ARG_ENABLE([obsolete-rpc],
- AC_HELP_STRING([--enable-obsolete-rpc],
- [build and install the obsolete RPC code for link-time usage]),
- [link_obsolete_rpc=$enableval],
- [link_obsolete_rpc=no])
-AC_SUBST(link_obsolete_rpc)
-
-if test "$link_obsolete_rpc" = yes; then
- AC_DEFINE(LINK_OBSOLETE_RPC)
-fi
-
AC_ARG_ENABLE([systemtap],
[AS_HELP_STRING([--enable-systemtap],
[enable systemtap static probe points @<:@default=no@:>@])],
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index 29483779fe..60153bb50d 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -625,12 +625,7 @@ for linking")
# define libc_hidden_tls_proto(name, attrs...) hidden_tls_proto (name, ##attrs)
# define libc_hidden_def(name) hidden_def (name)
# define libc_hidden_weak(name) hidden_weak (name)
-# ifdef LINK_OBSOLETE_RPC
- /* libc_hidden_nolink_sunrpc should only get used in sunrpc code. */
-# define libc_hidden_nolink_sunrpc(name, version) hidden_def (name)
-# else
-# define libc_hidden_nolink_sunrpc(name, version) hidden_nolink (name, libc, version)
-# endif
+# define libc_hidden_nolink_sunrpc(name, version) hidden_nolink (name, libc, version)
# define libc_hidden_ver(local, name) hidden_ver (local, name)
# define libc_hidden_data_def(name) hidden_data_def (name)
# define libc_hidden_tls_def(name) hidden_tls_def (name)
diff --git a/include/shlib-compat.h b/include/shlib-compat.h
index c8fc6925a0..b58281857a 100644
--- a/include/shlib-compat.h
+++ b/include/shlib-compat.h
@@ -127,15 +127,9 @@
#define compat_symbol_reference_2(local, symbol, name) \
symbol_version_reference (local, symbol, name)
-# ifdef LINK_OBSOLETE_RPC
-/* Export the symbol for both static and dynamic linking. */
-# define libc_sunrpc_symbol(name, aliasname, version) \
- strong_alias (name, aliasname)
-# else
/* Export the symbol only for shared-library compatibility. */
-# define libc_sunrpc_symbol(name, aliasname, version) \
+#define libc_sunrpc_symbol(name, aliasname, version) \
compat_symbol (libc, name, aliasname, version);
-# endif
/* The TEST_COMPAT macro acts just like the SHLIB_COMPAT macro except
that it does not check IS_IN. It is used by tests that are testing
diff --git a/malloc/thread-freeres.c b/malloc/thread-freeres.c
index eb29d53310..268f1c3688 100644
--- a/malloc/thread-freeres.c
+++ b/malloc/thread-freeres.c
@@ -22,6 +22,7 @@
#include <rpc/rpc.h>
#include <string.h>
#include <tls-internal.h>
+#include <shlib-compat.h>
/* Thread shutdown function. Note that this function must be called
for threads during shutdown for correctness reasons. Unlike
@@ -30,7 +31,9 @@
void
__libc_thread_freeres (void)
{
- call_function_static_weak (__rpc_thread_destroy);
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_32)
+ __rpc_thread_destroy ();
+#endif
call_function_static_weak (__res_thread_freeres);
__glibc_tls_internal_free ();
diff --git a/manual/nss.texi b/manual/nss.texi
index 80e730768e..3aaa7786f8 100644
--- a/manual/nss.texi
+++ b/manual/nss.texi
@@ -335,9 +335,7 @@ with a @code{+} character was found NIS was used. This kind of lookup
was removed and now the default value for the services is @code{files}.
libnss_compat no longer depends on libnsl and can be used without NIS.
-For all other databases the default value is @code{files} unless
-@theglibc{} was configured with @code{--enable-obsolete-rpc} option, in
-which case it the default value is @code{nis [NOTFOUND=return] files}.
+For all other databases the default value is @code{files}.
@cindex optimizing NSS
A second point is that the user should try to optimize the lookup
diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
index 00ba6f6b11..8010716d36 100755
--- a/scripts/build-many-glibcs.py
+++ b/scripts/build-many-glibcs.py
@@ -404,8 +404,6 @@ class Context(object):
{'arch': 'i686', 'ccopts': '-m32 -march=i686'}],
extra_glibcs=[{'variant': 'disable-multi-arch',
'cfg': ['--disable-multi-arch']},
- {'variant': 'enable-obsolete',
- 'cfg': ['--enable-obsolete-rpc']},
{'variant': 'static-pie',
'cfg': ['--enable-static-pie']},
{'variant': 'x32-static-pie',
@@ -419,10 +417,6 @@ class Context(object):
'arch': 'i686',
'ccopts': '-m32 -march=i686',
'cfg': ['--disable-multi-arch']},
- {'variant': 'enable-obsolete',
- 'arch': 'i686',
- 'ccopts': '-m32 -march=i686',
- 'cfg': ['--enable-obsolete-rpc']},
{'arch': 'i486',
'ccopts': '-m32 -march=i486'},
{'arch': 'i586',
diff --git a/sunrpc/Makefile b/sunrpc/Makefile
index 2d1861f3dc..82710b379a 100644
--- a/sunrpc/Makefile
+++ b/sunrpc/Makefile
@@ -22,11 +22,13 @@ subdir := sunrpc
include ../Makeconfig
+ifdef have-GLIBC_2.31
+
# The code in this subdirectory is taken from Sun's RPCSRC-4.0
# distribution with some additional changes from the TI-RPC package
# which is also available from Sun. The files are heavily changed to
# compile cleanly and to fit in the GNU environment. All the code
-# from Sun's rpc, etc, and rpcgen subdirectories is in this directory;
+# from Sun's rpc and etc subdirectories is in this directory;
# the rpc subdirectory contains only the header files. Other than
# that, several files were renamed so as not to exceed 14-character
# file name limits:
@@ -44,23 +46,6 @@ include ../Makeconfig
# svc_auth_unix.c -> svc_authux.c
# xdr_reference.c -> xdr_ref.c
-rpcsvc = bootparam_prot.x nlm_prot.x rstat.x \
- yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
- rusers.x spray.x nfs_prot.x rquota.x key_prot.x
-headers-sunrpc = $(addprefix rpc/,auth.h auth_unix.h clnt.h pmap_clnt.h \
- pmap_prot.h pmap_rmt.h rpc.h rpc_msg.h \
- svc.h svc_auth.h types.h xdr.h auth_des.h \
- key_prot.h) \
- $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
-headers = rpc/netdb.h
-generated += $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
- $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
-generated-dirs += rpcsvc
-
-ifeq ($(link-obsolete-rpc),yes)
-headers += $(headers-sunrpc)
-endif
-
ifeq ($(build-shared),yes)
need-export-routines := auth_des auth_unix clnt_gen clnt_perr clnt_tcp \
clnt_udp get_myaddr key_call netname pm_getport \
@@ -75,20 +60,9 @@ routines := auth_none authuxprot clnt_raw clnt_simp \
des_crypt des_impl des_soft key_prot openchild rtime svcauth_des \
clnt_unix svc_unix create_xid $(need-export-routines) \
rpc_gethostbyname
-ifneq ($(link-obsolete-rpc),yes)
# We only add the RPC for compatibility to libc.so.
shared-only-routines = $(routines)
endif
-endif
-
-ifeq ($(link-obsolete-rpc),yes)
-install-bin := rpcgen
-rpcgen-objs = rpc_main.o rpc_hout.o rpc_cout.o rpc_parse.o \
- rpc_scan.o rpc_util.o rpc_svcout.o rpc_clntout.o \
- rpc_tblout.o rpc_sample.o
-extra-objs = $(rpcgen-objs) $(addprefix cross-,$(rpcgen-objs))
-others += rpcgen
-endif
tests = tst-xdrmem tst-xdrmem2 test-rpcent tst-udp-error tst-udp-timeout \
tst-udp-nonblocking
@@ -100,22 +74,6 @@ tests += tst-udp-garbage
tests-internal += tst-svc_register
endif
-ifeq ($(run-built-tests),yes)
-ifeq ($(link-obsolete-rpc),yes)
-rpcgen-tests := $(objpfx)bug20790.out
-tests-special += $(rpcgen-tests)
-endif
-endif
-
-ifeq ($(link-obsolete-rpc),yes)
-headers += $(rpcsvc:%.x=rpcsvc/%.h)
-extra-libs := librpcsvc
-extra-libs-others := librpcsvc # Make it in `others' pass, not `lib' pass.
-librpcsvc-routines = $(rpcsvc:%.x=x%)
-librpcsvc-inhibit-o = .os # Build no shared rpcsvc library.
-omit-deps = $(librpcsvc-routines)
-endif
-
ifeq (yes,$(build-shared))
rpc-compat-routines = $(addprefix compat-,$(need-export-routines))
rpc-compat-routines.os = $(addprefix $(objpfx), \
@@ -133,19 +91,6 @@ $(rpc-compat-routines.os): $(objpfx)compat-%.os: %.c $(before-compile)
$(compile-command.c) -DEXPORT_RPC_SYMBOLS
endif
-CFLAGS-xbootparam_prot.c += -Wno-unused $(PIC-ccflag)
-CFLAGS-xnlm_prot.c += -Wno-unused $(PIC-ccflag)