diff options
43 files changed, 35 insertions, 9603 deletions
@@ -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@ @@ -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) |
