diff options
| author | Petr Vorel <pvorel@suse.cz> | 2020-07-13 19:36:35 +0200 |
|---|---|---|
| committer | Florian Weimer <fweimer@redhat.com> | 2020-07-13 19:36:35 +0200 |
| commit | 5500cdba4018ddbda7909bc7f4f9718610b43cf0 (patch) | |
| tree | b7b3e48b06eb294cdac28b2828d97d94a028429e | |
| parent | 3486924dc749d87ca7e5983b59baab474c6808a8 (diff) | |
| download | glibc-5500cdba4018ddbda7909bc7f4f9718610b43cf0.tar.xz glibc-5500cdba4018ddbda7909bc7f4f9718610b43cf0.zip | |
Remove --enable-obsolete-rpc configure flag
Sun RPC was removed from glibc. This includes rpcgen program, librpcsvc,
and Sun RPC headers. Also test for bug #20790 was removed
(test for rpcgen).
Backward compatibility for old programs is kept only for architectures
and ABIs that have been added in or before version 2.28.
libtirpc is mature enough, librpcsvc and rpcgen are provided in
rpcsvc-proto project.
NOTE: libnsl code depends on Sun RPC (installed libnsl headers use
installed Sun RPC headers), thus --enable-obsolete-rpc was a dependency
for --enable-obsolete-nsl (removed in a previous commit).
The arc ABI list file has to be updated because the port was added
with the sunrpc symbols
Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
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 |
