Commit 384ca55174 from 2007 added this to
nss/XXX-lookup.c:
+#ifndef NO_COMPAT
+int
+internal_function attribute_compat_text_section
+DB_COMPAT_FCT (service_user **ni, const char *fct_name, void **fctp)
+{
+ return DB_LOOKUP_FCT (ni, fct_name, NULL, fctp);
+}
+#endif
That is, it adds a pseudo-compat function with an internal_function
attribute. The function it was supposed to replace did not have the
attribute:
extern int DB_LOOKUP_FCT (service_user **ni, const char *fct_name,
- void **fctp) internal_function;
+ const char *fct2_name, void **fctp)
+ internal_function;
This changed the calling convention on i386 for the following
functions in the public ABI:
__nss_passwd_lookup
__nss_group_lookup
__nss_hosts_lookup
This commit replaces the functions with always-failing stubs,
with true compat symbols. Due to a happy accident, the calling
convention of the stub is identical for the internal_function
and non-internal_function case on i386.
In addition, this commit auto-generates the __nss_*_lookup2
function declarations as part of <nsswitch.h>.
Every file that uses libc_hidden_nolink_sunrpc or
libnsl_hidden_nolink_def needs to include shlib-compat.h. Currently,
most of them are getting it via stdio.h, because libio.h refers to
SHLIB_COMPAT when _LIBC is defined, so it includes shlib-compat.h. My
experimental patch to not install libio.h breaks that chain; stdio.h
no longer pulls in libio.h even for internal users.
Accordingly, this patch adds #include <shlib-compat.h> to many files
in sunrpc/ and nis/. There are also a small number of really obvious
fixups to includes that caught my eye while proofreading the patch -
not including headers twice in a row, not worrying about portability
to Ultrix anymore, sort of thing.
* nis/nis_add.c, nis/nis_addmember.c, nis/nis_call.c
* nis/nis_checkpoint.c, nis/nis_clone_dir.c, nis/nis_clone_obj.c
* nis/nis_clone_res.c, nis/nis_creategroup.c, nis/nis_defaults.c
* nis/nis_destroygroup.c, nis/nis_domain_of.c
* nis/nis_domain_of_r.c, nis/nis_error.c, nis/nis_file.c
* nis/nis_free.c, nis/nis_getservlist.c, nis/nis_ismember.c
* nis/nis_local_names.c, nis/nis_lookup.c, nis/nis_mkdir.c
* nis/nis_modify.c, nis/nis_ping.c, nis/nis_print.c
* nis/nis_print_group_entry.c, nis/nis_remove.c
* nis/nis_removemember.c, nis/nis_rmdir.c, nis/nis_server.c
* nis/nis_subr.c, nis/nis_table.c, nis/nis_util.c
* nis/nis_verifygroup.c, nis/nis_xdr.c, nis/yp_xdr.c
* nis/ypclnt.c, nis/ypupdate_xdr.c, sunrpc/auth_des.c
* sunrpc/auth_none.c, sunrpc/auth_unix.c, sunrpc/authdes_prot.c
* sunrpc/authuxprot.c, sunrpc/clnt_gen.c, sunrpc/clnt_perr.c
* sunrpc/clnt_raw.c, sunrpc/clnt_simp.c, sunrpc/clnt_tcp.c
* sunrpc/clnt_udp.c, sunrpc/clnt_unix.c, sunrpc/des_crypt.c
* sunrpc/des_soft.c, sunrpc/get_myaddr.c, sunrpc/key_call.c
* sunrpc/key_prot.c, sunrpc/netname.c, sunrpc/pm_getmaps.c
* sunrpc/pm_getport.c, sunrpc/pmap_clnt.c, sunrpc/pmap_prot.c
* sunrpc/pmap_prot2.c, sunrpc/pmap_rmt.c, sunrpc/publickey.c
* sunrpc/rpc_cmsg.c, sunrpc/rpc_dtable.c, sunrpc/rpc_prot.c
* sunrpc/rpc_thread.c, sunrpc/rtime.c, sunrpc/svc.c
* sunrpc/svc_auth.c, sunrpc/svc_raw.c, sunrpc/svc_run.c
* sunrpc/svc_tcp.c, sunrpc/svc_udp.c, sunrpc/svc_unix.c
* sunrpc/svcauth_des.c, sunrpc/xdr.c, sunrpc/xdr_array.c
* sunrpc/xdr_float.c, sunrpc/xdr_intXX_t.c, sunrpc/xdr_mem.c
* sunrpc/xdr_rec.c, sunrpc/xdr_ref.c, sunrpc/xdr_sizeof.c
* sunrpc/xdr_stdio.c: Include shlib-compat.h.
* sunrpc/des_crypt.c, sunrpc/des_soft.c: No need to include
abi-versions.h as well as shlib-compat.h.
* sunrpc/get_myaddr.c: Remove obsolete comment.
* sunrpc/pmap_rmt.c: Remove obsolete comment and #undef.
* sunrpc/rpc_thread.c: Include libc-lock.h only once.
* resolv/res_libc.c: Include shlib-compat.h only once.
New configure option --enable-obsolete-rpc makes the deprecated RPC
headers and functions available at compile time as they were before
version 2.14. This option will be removed at some time in the future
after the TI-RPC library becomes fully sufficient for the needs of
existing applications.
gethstbynm3_r.
* nscd/gethstbynm2_r.c: Remove.
* nscd/gethstbynm3_r.c: New file.
* nscd/aicache.c (addhstaiX): Use __gethostbyaddr2_r instead of
__gethostbyaddr_r.
* nscd/gethstbyad_r.c: Generate __gethostbyaddr2_r function. Define
__gethostbyaddr_r compatibility wrapper.
* nscd/hstcache.c (cache_addhst): Add ttl parameter. Use it when
determining timeout of entry.
(lookup): Take new parameter and pass it to __gethostbyname3_r and
__gethostbyaddr2_r.
(addhstbyX): Pass reference to variable for TTL to lookup and
cache_addhst.
* nss/Versions [glibc] (GLIBC_PRIVATE): Export __nss_passwd_lookup2,
__nss_group_lookup2, __nss_hosts_lookup2, __nss_services_lookup2,
and __nss_next2. Remove __nss_services_lookup.
* nss/XXX-lookup.c: Name function now *_lookup2. Add new parameter.
Add compat wrapper.
* nss/getXXbyYY_r.c: Changes to call new *_lookup2 functions and
__nss_next2.
* nss/getXXent_r.c: Likewise.
* nss/getnssent_r.c: Likewise.
* nss/nsswitch.c (__nss_lookup): Add new parameter. If first function
does not exist in module, try the optional second name.
(__nss_next2): New function.
(__nss_next): Now wrapper around __nss_next2.
* nss/nsswitch.h: Adjust __nss_lookup prototype.
Declare __nss_next2.
Adjust definition of db_lookup_function type.
* nss/service-lookup.c: Define NO_COMPAT.
* include/netdb.h: Declare __gethostbyaddr2_r and __gethostbyname3_r.
* inet/ether_hton.c: Use __nss_next2 instead of __nss_next.
* inet/ether_ntoh.c: Likewise.
* sunrpc/netname.c: Likewise.
* sunrpc/publickey.c: Likewise.
* inet/getnetgrent.c: Likewise. Adjust calls to __nss_lookup.
* inet/gethstbyad_r.c (DB_LOOKUP_FCT): Change to __nss_hosts_lookup2.
* inet/gethstbynm2_r.c (DB_LOOKUP_FCT): Likewise.
* inet/gethstbynm_r.c (DB_LOOKUP_FCT): Likewise.
* inet/gethstent_r.c (DB_LOOKUP_FCT): Likewise.
* nscd/aicache.c (addhstaiX): Fix default TTL handling.
* inet/getnetgrent.c (setup): Encrypt static pointer.
2002-04-02 Jakub Jelinek <jakub@redhat.com>
* inet/ether_ntoh.c (__nss_ethers_lookup): Add internal_function.
* inet/ether_hton.c (__nss_ethers_lookup): Likewise.
* inet/getnetgrent_r.c (__nss_netgroup_lookup): Likewise.
* sunrpc/netname.c (__nss_publickey_lookup): Likewise.
* sunrpc/publickey.c (__nss_publickey_lookup): Likewise.
2002-03-30 Jakub Jelinek <jakub@redhat.com>
* elf/dynamic-link.h (elf_get_dynamic_info): Don't abort on unknown
dynamic tags.
2002-03-29 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/fpu/s_fabs.S: New file.
* sysdeps/i386/fpu/s_fabsf.S: New file.
* sysdeps/i386/fpu/s_fabsl.S: New file.
* sysdeps/sparc/sparc64/fpu/s_fabs.c: New file.
* sysdeps/sparc/sparc64/fpu/s_fabsf.c: New file.
* sysdeps/sparc/sparc64/fpu/s_fabsl.c: New file.
2002-04-02 Ulrich Drepper <drepper@redhat.com>
* rt/tst-shm.c (do_test): Add one more test for size of shared
memory object.
2002-03-29 Wolfram Gloger <wg@malloc.de>
* malloc/malloc.c: Add short description and prototypes for
malloc_get_state, malloc_set_state and posix_memalign, for
consistency and to avoid warnings with -Wstrict-prototypes.
Reported by Andreas Jaeger <aj@suse.de>.
2002-04-02 Ulrich Drepper <drepper@redhat.com>
* po/gl.po: Update from translation team.
2001-07-06 Paul Eggert <eggert@twinsun.com>
* manual/argp.texi: Remove ignored LGPL copyright notice; it's
not appropriate for documentation anyway.
* manual/libc-texinfo.sh: "Library General Public License" ->
"Lesser General Public License".
2001-07-06 Andreas Jaeger <aj@suse.de>
* All files under GPL/LGPL version 2: Place under LGPL version
2.1.
* inet/ether_hton.c: Likewise
* inet/ether_ntoh.c: Likewise.
* nis/nss_nis/nis-ethers.c (_nss_nis_getntohost_r): Fix
declaration to match prototype.
* include/netinet/ether.h (struct etherent): Declare here so that
all implementations use the same struct.
* nis/nss_nis/nis-ethers.c: Include netinet/ether.h to get
prototypes.
(struct ether): Removed.
Use struct etherent instead of ether everywhere.
* include/rpc/auth.h (DECLARE_NSS_PROTOTYPES): New.
* include/rpc/auth_des.h (DECLARE_NSS_PROTOTYPES): New.
* sunrpc/publickey.c: Include auth_des.h for prototypes.
1998-06-01 Gordon Matzigkeit <gord@profitpress.com>
* hurd/Makefile (routines): Add cthreads.
1998-05-31 Mark Kettenis <kettenis@phys.uva.nl>
* login/login.c (login): Let pututline take care of finding the
positin to insert the UTMP entry. This corrects a bug where ssh
was not reusing UTMP entries marked as DEAD_PROCESS.
Reported by Herbert Xu <herbert@gondor.apana.org.au>.
1998-05-31 Mark Kettenis <kettenis@phys.uva.nl>
* login/Makefile (tests): New variable, add tst-utmp and
tst-utmpx.
* login/tst-utmp.c: New file.
* login/tst-utmpx.c: New file.
1998-06-01 Gordon Matzigkeit <gord@profitpress.com>
* sysdeps/mach/hurd/errlist.c (sys_nerr, _sys_nerr): Make weak
aliases for _hurd_nerr, for programs that don't use sys_errlist,
but need sys_err.
1998-05-31 Mark Kettenis <kettenis@phys.uva.nl>
* sysdeps/generic/updwtmpx.c: Rename function to updwtmpx.
* libc.map: Add updwtmpx and utmpxname to GLIBC_2.1.
1998-05-31 Mark Kettenis <kettenis@phys.uva.nl>
* sysdeps/mach/hurd/read.c: Rename function to __libc_read and
make __read a weak alias. Use ANSI-style function definition.
* sysdeps/mach/hurd/write.c: Likewise.
1998-05-31 Mark Kettenis <kettenis@phys.uva.nl>
* sysdeps/mach/hurd/err_hurd.sub: Use _hurd_errlist instead of
_sys_errlist.
1998-05-30 Mark Kettenis <kettenis@phys.uva.nl>
* sysdeps/mach/hurd/Makefile ($(objpfx)librtld.os):
Renamed from librtld.so.
1998-06-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* libc.map: Remove _IO_getline_info which was erroneously
introduced in section GLIBC_2.0.
Noticed by Horst von Brand <vonbrand@sleipnir.valparaiso.cl>.
1998-06-01 Gordon Matzigkeit <gord@profitpress.com>
* sysdeps/generic/socket.c (__socket): Renamed from socket, and
created a weak alias.
* sysdeps/mach/hurd/socket.c (__socket): Likewise.
1998-05-31 Gordon Matzigkeit <gord@profitpress.com>
* sysdeps/mach/hurd/ftruncate.c (__ftruncate): Rename from old
ftruncate function, and create a weak alias to ftruncate.
1998-06-01 Gordon Matzigkeit <gord@profitpress.com>
* grp/fgetgrent_r.c: Use &errno instead of __errno_location ().
* inet/getnetgrent_r.c: Likewise.
* nss/getXXbyYY_r.c: Likewise.
* nss/getXXent_r.c: Likewise.
* pwd/fgetpwent_r.c: Likewise.
* shadow/sgetspent_r.c: Likewise.
* shadow/fgetspent_r.c: Likewise.
* sunrpc/publickey.c: Likewise.
1998-06-01 Gordon Matzigkeit <gord@profitpress.com>
* hurd/libhurduser.map: New file.
* mach/libmachuser.map: Likewise.
* libc.map: Add Hurd-specific functions to version 2.1.
Add __flshfp and __fillbf.
1998-05-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/signal.texi (Basic Signal Handling): Fix typo.
* manual/errno.texi (Error Codes): Likewise.
1998-06-02 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/netipx/ipx.h: Include <bits/sockaddr.h>
instead of <sys/socket.h>.
Patch by NIIBE Yutaka <gniibe@mri.co.jp>
* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c (DL_FIND_ARG_COMPONENTS):
Finally make it working.
Patch by Mark Hatle <fray@kernel.crashing.org>.
1998-03-22 Paul Eggert <eggert@twinsun.com>
* posix/regex.c: Include <wchar.h> before <wctype.h>, to work around
a Solaris 2.6 bug.
Sun Nov 10 23:28:16 1996 Ulrich Drepper <drepper@cygnus.com>
* inet/getprtname_r.c: Reformat copyright.
* nss/Makefile (databases): Add key.
(libnss_files-routines): Exclude key database.
(libnss_db-routines): Likewise.
* nss/key-lookup.c: New file.
* nss/getXXent_r.c (last_nip): Remember last service used since
last setXXent call.
(SETFUNC): Don't force to work through whole list of services in
call to __nss_next.
Update last_nip if necessary.
(ENDFUNC): Only process endXXent function up to currently used
last service.
(GETFUNC): Update last_nip if necessary.
* nss/nss_files/files-netgrp.c (_nss_netgroup_parseline): Don't
make static.
* rpc/auth_des.h: New file.
* sunrpc/Makefile (headers): Add auth_des.h.
(routines): Add publickey.
* sunrpc/publickey.c: New file. Interface to public key handling.
* sunrpc/rpc/auth_des.h: New file.
* sunrpc/rpc/netdb.h: Really include <rpc/auth_des.h>.