summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog128
-rw-r--r--include/netinet/in.h4
-rw-r--r--include/rpc/auth.h9
-rw-r--r--include/rpc/clnt.h22
-rw-r--r--include/rpc/svc.h17
-rw-r--r--include/rpc/svc_auth.h4
-rw-r--r--include/sys/socket.h54
-rw-r--r--inet/rcmd.c4
-rw-r--r--inet/rexec.c4
-rw-r--r--locale/programs/localedef.c2
-rw-r--r--locale/programs/localedef.h4
-rw-r--r--locale/programs/locarchive.c178
-rw-r--r--locale/programs/locfile.c2
-rw-r--r--malloc/malloc.c3
-rw-r--r--sunrpc/auth_des.c3
-rw-r--r--sunrpc/auth_none.c1
-rw-r--r--sunrpc/auth_unix.c4
-rw-r--r--sunrpc/bindrsvprt.c3
-rw-r--r--sunrpc/clnt_gen.c7
-rw-r--r--sunrpc/clnt_raw.c4
-rw-r--r--sunrpc/clnt_simp.c2
-rw-r--r--sunrpc/clnt_tcp.c5
-rw-r--r--sunrpc/clnt_udp.c25
-rw-r--r--sunrpc/clnt_unix.c9
-rw-r--r--sunrpc/key_call.c14
-rw-r--r--sunrpc/pm_getmaps.c4
-rw-r--r--sunrpc/pm_getport.c5
-rw-r--r--sunrpc/pmap_clnt.c10
-rw-r--r--sunrpc/pmap_rmt.c16
-rw-r--r--sunrpc/rtime.c8
-rw-r--r--sunrpc/svc.c14
-rw-r--r--sunrpc/svc_auth.c1
-rw-r--r--sunrpc/svc_run.c2
-rw-r--r--sunrpc/svc_simple.c14
-rw-r--r--sunrpc/svc_tcp.c8
-rw-r--r--sunrpc/svc_udp.c37
-rw-r--r--sunrpc/svc_unix.c12
-rw-r--r--sysdeps/generic/bind.c5
-rw-r--r--sysdeps/generic/getsockname.c5
-rw-r--r--sysdeps/generic/listen.c5
-rw-r--r--sysdeps/generic/recvfrom.c6
-rw-r--r--sysdeps/generic/recvmsg.c6
-rw-r--r--sysdeps/generic/sendmsg.c6
-rw-r--r--sysdeps/generic/sendto.c6
-rw-r--r--sysdeps/generic/setsockopt.c6
-rw-r--r--sysdeps/generic/unwind-dw2-fde.c22
-rw-r--r--sysdeps/mach/hurd/bind.c4
-rw-r--r--sysdeps/mach/hurd/getsockname.c6
-rw-r--r--sysdeps/mach/hurd/listen.c7
-rw-r--r--sysdeps/mach/hurd/recvfrom.c6
-rw-r--r--sysdeps/mach/hurd/recvmsg.c3
-rw-r--r--sysdeps/mach/hurd/sendmsg.c3
-rw-r--r--sysdeps/mach/hurd/sendto.c14
-rw-r--r--sysdeps/mach/hurd/setsockopt.c13
-rw-r--r--sysdeps/unix/inet/syscalls.list14
-rw-r--r--sysdeps/unix/sysv/aix/getsockname.c6
-rw-r--r--sysdeps/unix/sysv/aix/recvfrom.c8
-rw-r--r--sysdeps/unix/sysv/aix/recvmsg.c6
-rw-r--r--sysdeps/unix/sysv/aix/sendmsg.c7
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscalls.list4
-rw-r--r--sysdeps/unix/sysv/linux/bind.S1
-rw-r--r--sysdeps/unix/sysv/linux/getsockname.S1
-rw-r--r--sysdeps/unix/sysv/linux/hppa/syscalls.list4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/syscalls.list4
-rw-r--r--sysdeps/unix/sysv/linux/listen.S1
-rw-r--r--sysdeps/unix/sysv/linux/recvfrom.S1
-rw-r--r--sysdeps/unix/sysv/linux/recvmsg.S1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list4
-rw-r--r--sysdeps/unix/sysv/linux/sendmsg.S1
-rw-r--r--sysdeps/unix/sysv/linux/sendto.S1
-rw-r--r--sysdeps/unix/sysv/linux/setsockopt.S1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/syscalls.list4
72 files changed, 636 insertions, 199 deletions
diff --git a/ChangeLog b/ChangeLog
index a334247972..6eec316c0b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,133 @@
+2002-05-11 Jakub Jelinek <jakub@redhat.com>
+
+ * include/netinet/in.h (bindresvport_internal): Add prototype.
+ * include/rpc/auth.h (authunix_create_internal,
+ authunix_create_default_internal, authnone_create_internal,
+ authdes_pk_create_internal): Add prototypes.
+ * include/rpc/clnt.h (clnt_create_internal, clnttcp_create_internal,
+ clntudp_create_internal, clntudp_bufcreate_internal,
+ clntunix_create_internal): Add prototypes.
+ * include/rpc/svc.h (svc_sendreply_internal, svcerr_decode_internal,
+ svc_getreq_internal, svc_getreq_common_internal,
+ svc_getreqset_internal, svc_getreq_poll_internal,
+ svc_register_internal, svc_unregister_internal,
+ svcudp_create_internal, svcudp_bufcreate_internal): Add prototypes.
+ * include/rpc/svc_auth.h (_authenticate_internal): Add prototype.
+ * include/sys/socket.h (__sendto, __recvfrom, __sendmsg, __recvmsg,
+ __setsockopt, __getsockname, __bind, __listen): Add prototypes.
+ * inet/rexec.c (rexec_af): Use __listen and __getsockname.
+ * inet/rcmd.c (rcmd_af): Use __listen.
+ (rresvport_af): Use __bind.
+ * sunrpc/clnt_udp.c: Use INTUSE calls to bindresvport,
+ authunix_create, authunix_create_default, authnone_create,
+ authdes_pk_create, clnt_create, clnttcp_create, clntudp_create,
+ clntudp_bufcreate, clntunix_create svc_sendreply, svcerr_decode,
+ svc_getreq, svc_getreq_common, svc_getreqset, svc_getreq_poll,
+ svc_register, svc_unregister, svcudp_create, svcudp_bufcreate,
+ _authenticate, add INTDEF after such function definitions.
+ Use __listen, __bind, __sendto, __recvfrom, __sendmsg, __recvmsg,
+ __setsockopt, __getsockname instead of non-__ variants.
+ * sunrpc/pmap_rmt.c: Likewise.
+ * sunrpc/rtime.c: Likewise.
+ * sunrpc/svc_udp.c: Likewise.
+ * sunrpc/clnt_unix.c: Likewise.
+ * sunrpc/svc_unix.c: Likewise.
+ * sunrpc/bindrsvprt.c: Likewise.
+ * sunrpc/svc_tcp.c: Likewise.
+ * sunrpc/auth_none.c: Likewise.
+ * sunrpc/clnt_raw.c: Likewise.
+ * sunrpc/clnt_tcp.c: Likewise.
+ * sunrpc/auth_unix.c: Likewise.
+ * sunrpc/key_call.c: Likewise.
+ * sunrpc/clnt_gen.c: Likewise.
+ * sunrpc/pm_getmaps.c: Likewise.
+ * sunrpc/clnt_simp.c: Likewise.
+ * sunrpc/pmap_clnt.c: Likewise.
+ * sunrpc/svc_run.c: Likewise.
+ * sunrpc/svc.c: Likewise.
+ * sunrpc/svc_simple.c: Likewise.
+ * sunrpc/pm_getport.c: Likewise.
+ * sunrpc/auth_des.c: Likewise.
+ * sunrpc/svc_auth.c: Likewise.
+ * sysdeps/generic/unwind-dw2-fde.c (__register_frame_info_bases,
+ __register_frame_info_table_bases, __deregister_frame_info_bases):
+ Add INTDEF.
+ (__register_frame_info_bases_internal,
+ __register_frame_info_table_bases_internal,
+ __deregister_frame_info_bases_internal): Add prototypes.
+ (__register_frame_info, __register_frame): Use INTUSE in call to
+ __register_frame_info_bases.
+ (__register_frame_info_table): Similarly.
+ (__deregister_frame_info, __deregister_frame): Similarly.
+ * sysdeps/generic/sendto.c (__sendto): Renamed from sendto, add
+ sendto as weak alias.
+ * sysdeps/mach/hurd/sendto.c: Likewise.
+ * sysdeps/generic/recvfrom.c (__recvfrom): Renamed from recvfrom, add
+ recvfrom as weak alias.
+ * sysdeps/mach/hurd/recvfrom.c: Likewise.
+ * sysdeps/unix/sysv/aix/recvfrom.c: Likewise.
+ * sysdeps/generic/recvmsg.c (__recvmsg): Renamed from recvmsg, add
+ recvmsg as weak alias.
+ * sysdeps/unix/sysv/aix/recvmsg.c: Likewise.
+ * sysdeps/generic/sendmsg.c (__sendmsg): Renamed from sendmsg, add
+ sendmsg as weak alias.
+ * sysdeps/unix/sysv/aix/sendmsg.c: Likewise.
+ * sysdeps/generic/setsockopt.c (__setsockopt): Renamed from
+ setsockopt, add setsockopt as weak alias.
+ * sysdeps/mach/hurd/setsockopt.c: Likewise.
+ * sysdeps/generic/bind.c (__bind): Renamed from bind, add bind as
+ weak alias.
+ * sysdeps/mach/hurd/bind.c: Likewise.
+ * sysdeps/generic/listen.c (__listen): Renamed from listen, add listen
+ as weak alias.
+ * sysdeps/mach/hurd/listen.c: Likewise.
+ * sysdeps/generic/getsockname.c (__getsockname): Renamed from
+ getsockname, add getsockname as weak alias.
+ * sysdeps/mach/hurd/getsockname.c: Likewise.
+ * sysdeps/unix/sysv/aix/getsockname.c: Likewise.
+ * sysdeps/mach/hurd/recvmsg.c (__recvmsg): Add weak alias.
+ * sysdeps/mach/hurd/sendmsg.c (__sendmsg): Add weak alias.
+ * sysdeps/unix/inet/syscalls.list (__bind, __listen, __recvmsg,
+ __recvfrom, __sendmsg, __sendto, __setsockopt): Add aliases.
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list (__recvmsg, __sendmsg):
+ Add aliases.
+ * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list: Likewise.
+ * sysdeps/unix/sysv/linux/hppa/syscalls.list: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise.
+ * sysdeps/unix/sysv/linux/recvfrom.S (__recvfrom): Add weak alias.
+ * sysdeps/unix/sysv/linux/recvmsg.S (__recvmsg): Likewise.
+ * sysdeps/unix/sysv/linux/sendmsg.S (__sendmsg): Likewise.
+ * sysdeps/unix/sysv/linux/sendto.S (__sendto): Likewise.
+ * sysdeps/unix/sysv/linux/setsockopt.S (__setsockopt): Likewise.
+ * sysdeps/unix/sysv/linux/bind.S (__bind): Likewise.
+ * sysdeps/unix/sysv/linux/listen.S (__listen): Likewise.
+ * sysdeps/unix/sysv/linux/getsockname.S (__getsockname): Likewise.
+
+2002-05-10 Jakub Jelinek <jakub@redhat.com>
+
+ * locale/programs/localedef.h (show_archive_content): Add verbose
+ argument.
+ * locale/programs/localedef.c (main): Adjust caller.
+ * locale/programs/locarchive.c (struct nameent, struct dataent): New.
+ (nameentcmp, dataentcmp): New functions.
+ (xstrcmp): Remove.
+ (show_archive_content): Print verbose listing with --list-archive -v.
+
2002-05-14 Ulrich Drepper <drepper@redhat.com>
+ * locale/programs/locarchive.c (open_archive): Take extra argument
+ readonly. If true open file with O_RDONLY and don't create the
+ archive if it doesn't exist.
+ Adapt all callers.
+ (close_archive): Don't do anything if fd element is -1.
+ * locale/programs/localedef.h (open_archive): Adjust prototype.
+ * locale/programs/locfile.c (write_all_categories): Adjust open_archive
+ call.
+
+ * malloc/malloc.c (__posix_memalign): Correct check for size of
+ alignment value [PR libc/3444].
+
* include/stdio.h: Remove references to old stdio implementation.
* libio/Makefile (bug-ungetwc2-ENV): Define.
diff --git a/include/netinet/in.h b/include/netinet/in.h
index b85d938181..2a57aceb5e 100644
--- a/include/netinet/in.h
+++ b/include/netinet/in.h
@@ -1,3 +1,7 @@
#include <inet/netinet/in.h>
extern const struct in6_addr in6addr_any_internal attribute_hidden;
+
+/* Bind socket to a privileged IP port. */
+extern int bindresvport_internal (int __sockfd,
+ struct sockaddr_in *__sock_in) attribute_hidden;
diff --git a/include/rpc/auth.h b/include/rpc/auth.h
index bc19049291..9bfde8331b 100644
--- a/include/rpc/auth.h
+++ b/include/rpc/auth.h
@@ -19,4 +19,13 @@ DECLARE_NSS_PROTOTYPES (nisplus)
extern bool_t xdr_des_block_internal (XDR *__xdrs, des_block *__blkp);
extern bool_t xdr_opaque_auth_internal (XDR *, struct opaque_auth *);
+extern AUTH *authunix_create_internal (char *__machname, __uid_t __uid,
+ __gid_t __gid, int __len,
+ __gid_t *__aup_gids) attribute_hidden;
+extern AUTH *authunix_create_default_internal (void) attribute_hidden;
+extern AUTH *authnone_create_internal (void) attribute_hidden;
+extern AUTH *authdes_pk_create_internal (const char *, netobj *, u_int,
+ struct sockaddr *,
+ des_block *) attribute_hidden;
+
#endif
diff --git a/include/rpc/clnt.h b/include/rpc/clnt.h
index 071c008eb6..13844962be 100644
--- a/include/rpc/clnt.h
+++ b/include/rpc/clnt.h
@@ -4,4 +4,26 @@
/* Now define the internal interfaces. */
extern int _openchild (const char *command, FILE **fto, FILE **ffrom);
+extern CLIENT *clnt_create_internal (__const char *__host,
+ __const u_long __prog,
+ __const u_long __vers,
+ __const char *__prot) attribute_hidden;
+extern CLIENT *clnttcp_create_internal (struct sockaddr_in *__raddr,
+ u_long __prog, u_long __version,
+ int *__sockp, u_int __sendsz,
+ u_int __recvsz) attribute_hidden;
+extern CLIENT *clntudp_create_internal (struct sockaddr_in *__raddr,
+ u_long __program, u_long __version,
+ struct timeval __wait_resend,
+ int *__sockp) attribute_hidden;
+extern CLIENT *clntudp_bufcreate_internal (struct sockaddr_in *__raddr,
+ u_long __program, u_long __version,
+ struct timeval __wait_resend,
+ int *__sockp, u_int __sendsz,
+ u_int __recvsz) attribute_hidden;
+extern CLIENT *clntunix_create_internal (struct sockaddr_un *__raddr,
+ u_long __program, u_long __version,
+ int *__sockp, u_int __sendsz,
+ u_int __recvsz) attribute_hidden;
+
#endif
diff --git a/include/rpc/svc.h b/include/rpc/svc.h
index bf948d51e2..063e6f3976 100644
--- a/include/rpc/svc.h
+++ b/include/rpc/svc.h
@@ -10,5 +10,22 @@ extern SVCXPRT *svcfd_create (int fd, u_int sendsize, u_int recvsize);
extern int svcudp_enablecache (SVCXPRT *transp, u_long size);
extern SVCXPRT *svcunixfd_create (int fd, u_int sendsize, u_int recvsize);
+extern bool_t svc_sendreply_internal (SVCXPRT *xprt, xdrproc_t __xdr_results,
+ caddr_t __xdr_location) attribute_hidden;
+extern void svcerr_decode_internal (SVCXPRT *__xprt) attribute_hidden;
+extern void svc_getreq_internal (int __rdfds) attribute_hidden;
+extern void svc_getreq_common_internal (const int __fd) attribute_hidden;
+extern void svc_getreqset_internal (fd_set *__readfds) attribute_hidden;
+extern void svc_getreq_poll_internal (struct pollfd *,
+ const int) attribute_hidden;
+extern bool_t svc_register_internal (SVCXPRT *__xprt, rpcprog_t __prog,
+ rpcvers_t __vers,
+ __dispatch_fn_t __dispatch,
+ rpcprot_t __protocol) attribute_hidden;
+extern void svc_unregister_internal (rpcprog_t __prog,
+ rpcvers_t __vers) attribute_hidden;
+extern SVCXPRT *svcudp_create_internal (int __sock) attribute_hidden;
+extern SVCXPRT *svcudp_bufcreate_internal (int __sock, u_int __sendsz,
+ u_int __recvsz) attribute_hidden;
#endif
diff --git a/include/rpc/svc_auth.h b/include/rpc/svc_auth.h
index 9d2462bacb..bf5ce91b68 100644
--- a/include/rpc/svc_auth.h
+++ b/include/rpc/svc_auth.h
@@ -6,7 +6,7 @@ extern enum auth_stat _svcauth_unix (struct svc_req *rqst,
struct rpc_msg *msg);
extern enum auth_stat _svcauth_short (struct svc_req *rqst,
struct rpc_msg *msg);
-
-
+extern enum auth_stat _authenticate_internal (struct svc_req *__rqst,
+ struct rpc_msg *__msg) attribute_hidden;
#endif
diff --git a/include/sys/socket.h b/include/sys/socket.h
index 5a8169ffc8..b97c354276 100644
--- a/include/sys/socket.h
+++ b/include/sys/socket.h
@@ -2,22 +2,24 @@
#include <socket/sys/socket.h>
/* Now define the internal interfaces. */
-extern int __socket (int __domain, int __type, int __protocol);
+extern int __socket (int __domain, int __type,
+ int __protocol) attribute_hidden;
/* Create two new sockets, of type TYPE in domain DOMAIN and using
protocol PROTOCOL, which are connected to each other, and put file
descriptors for them in FDS[0] and FDS[1]. If PROTOCOL is zero,
one will be chosen automatically. Returns 0 on success, -1 for errors. */
extern int __socketpair (int __domain, int __type, int __protocol,
- int __fds[2]);
+ int __fds[2]) attribute_hidden;
/* Return a socket of any type. The socket can be used in subsequent
ioctl calls to talk to the kernel. */
-extern int __opensock (void) internal_function;
+extern int __opensock (void) internal_function attribute_hidden;
/* Put the address of the peer connected to socket FD into *ADDR
(which is *LEN bytes long), and its actual length into *LEN. */
-extern int __getpeername (int __fd, __SOCKADDR_ARG __addr, socklen_t *__len);
+extern int __getpeername (int __fd, __SOCKADDR_ARG __addr,
+ socklen_t *__len) attribute_hidden;
/* Send N bytes of BUF to socket FD. Returns the number sent or -1. */
extern ssize_t __send (int __fd, __const void *__buf, size_t __n, int __flags);
@@ -30,6 +32,50 @@ extern int __connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len);
extern int __connect_internal (int __fd, __CONST_SOCKADDR_ARG __addr,
socklen_t __len) attribute_hidden;
+/* Send N bytes of BUF on socket FD to peer at address ADDR (which is
+ ADDR_LEN bytes long). Returns the number sent, or -1 for errors. */
+extern ssize_t __sendto (int __fd, __const void *__buf, size_t __n,
+ int __flags, __CONST_SOCKADDR_ARG __addr,
+ socklen_t __addr_len) attribute_hidden;
+
+/* Read N bytes into BUF through socket FD.
+ If ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of
+ the sender, and store the actual size of the address in *ADDR_LEN.
+ Returns the number of bytes read or -1 for errors. */
+extern ssize_t __recvfrom (int __fd, void *__restrict __buf, size_t __n,
+ int __flags, __SOCKADDR_ARG __addr,
+ socklen_t *__restrict __addr_len) attribute_hidden;
+
+/* Send a message described MESSAGE on socket FD.
+ Returns the number of bytes sent, or -1 for errors. */
+extern ssize_t __sendmsg (int __fd, __const struct msghdr *__message,
+ int __flags) attribute_hidden;
+
+/* Receive a message as described by MESSAGE from socket FD.
+ Returns the number of bytes read or -1 for errors. */
+extern ssize_t __recvmsg (int __fd, struct msghdr *__message,
+ int __flags) attribute_hidden;
+
+/* Set socket FD's option OPTNAME at protocol level LEVEL
+ to *OPTVAL (which is OPTLEN bytes long).
+ Returns 0 on success, -1 for errors. */
+extern int __setsockopt (int __fd, int __level, int __optname,
+ __const void *__optval,
+ socklen_t __optlen) attribute_hidden;
+
+/* Put the local address of FD into *ADDR and its length in *LEN. */
+extern int __getsockname (int __fd, __SOCKADDR_ARG __addr,
+ socklen_t *__restrict __len) attribute_hidden;
+
+/* Give the socket FD the local address ADDR (which is LEN bytes long). */
+extern int __bind (int __fd, __CONST_SOCKADDR_ARG __addr,
+ socklen_t __len) attribute_hidden;
+
+/* Prepare to accept connections on socket FD.
+ N connection requests will be queued before further requests are refused.
+ Returns 0 on success, -1 for errors. */
+extern int __listen (int __fd, int __n) attribute_hidden;
+
/* Return the length of a `sockaddr' structure. */
#ifdef _HAVE_SA_LEN
# define SA_LEN(_x) (_x)->sa_len
diff --git a/inet/rcmd.c b/inet/rcmd.c
index 4010bacfb0..8ad6f31e4f 100644
--- a/inet/rcmd.c
+++ b/inet/rcmd.c
@@ -268,7 +268,7 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
if (s2 < 0)
goto bad;
- listen(s2, 1);
+ __listen(s2, 1);
(void)__snprintf(num, sizeof(num), "%d", lport);
if (__write(s, num, strlen(num)+1) != (ssize_t)strlen(num)+1) {
char *buf = NULL;
@@ -444,7 +444,7 @@ rresvport_af(alport, family)
for (;;) {
*sport = htons((uint16_t) *alport);
- if (bind(s, (struct sockaddr *)&ss, len) >= 0)
+ if (__bind(s, (struct sockaddr *)&ss, len) >= 0)
return s;
if (errno != EADDRINUSE) {
(void)__close(s);
diff --git a/inet/rexec.c b/inet/rexec.c
index c22e53d474..e8ecf79c54 100644
--- a/inet/rexec.c
+++ b/inet/rexec.c
@@ -115,9 +115,9 @@ retry:
(void) __close(s);
return (-1);
}
- listen(s2, 1);
+ __listen(s2, 1);
sa2len = sizeof (sa2);
- if (getsockname(s2, (struct sockaddr *)&sa2, &sa2len) < 0) {
+ if (__getsockname(s2, (struct sockaddr *)&sa2, &sa2len) < 0) {
perror("getsockname");
(void) __close(s2);
goto bad;
diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
index 37b52b08c6..c1d347b06a 100644
--- a/locale/programs/localedef.c
+++ b/locale/programs/localedef.c
@@ -202,7 +202,7 @@ main (int argc, char *argv[])
/* Handle a few special cases. */
if (list_archive)
- show_archive_content ();
+ show_archive_content (verbose);
if (add_to_archive)
return add_locales_to_archive (argc - remaining, &argv[remaining],
replace_archive);
diff --git a/locale/programs/localedef.h b/locale/programs/localedef.h
index 9567845080..3217338ee7 100644
--- a/locale/programs/localedef.h
+++ b/locale/programs/localedef.h
@@ -159,7 +159,7 @@ extern struct localedef_t *load_locale (int locale, const char *name,
/* Open the locale archive. */
-extern void open_archive (struct locarhandle *ah);
+extern void open_archive (struct locarhandle *ah, bool readonly);
/* Close the locale archive. */
extern void close_archive (struct locarhandle *ah);
@@ -175,6 +175,6 @@ extern int add_locales_to_archive (size_t nlist, char *list[], bool replace);
extern int delete_locales_from_archive (size_t nlist, char *list[]);
/* List content of locale archive. */
-extern void show_archive_content (void);
+extern void show_archive_content (int verbose);
#endif /* localedef.h */
diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
index be5514790e..9ef373a2e5 100644
--- a/locale/programs/locarchive.c
+++ b/locale/programs/locarchive.c
@@ -142,7 +142,7 @@ create_archive (const char *archivefname, struct locarhandle *ah)
{
/* There is already an archive. Must have been a localedef run
which happened in parallel. Simply open this file then. */
- open_archive (ah);
+ open_archive (ah, false);
return;
}
@@ -334,7 +334,7 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head)
void
-open_archive (struct locarhandle *ah)
+open_archive (struct locarhandle *ah, bool readonly)
{
struct stat64 st;
struct stat64 st2;
@@ -350,13 +350,27 @@ open_archive (struct locarhandle *ah)
again:
/* Open the archive. We must have exclusive write access. */
- fd = open64 (archivefname, O_RDWR);
+ fd = open64 (archivefname, readonly ? O_RDONLY : O_RDWR);
if (fd == -1)
{
/* Maybe the file does not yet exist. */
if (errno == ENOENT)
{
- create_archive (archivefname, ah);
+ if (readonly)
+ {
+ static const struct locarhead nullhead =
+ {
+ .namehash_used = 0,
+ .namehash_offset = 0,
+ .namehash_size = 0
+ };
+
+ ah->addr = (void *) &nullhead;
+ ah->fd = -1;
+ }
+ else
+ create_archive (archivefname, ah);
+
return;
}
else
@@ -368,7 +382,7 @@ open_archive (struct locarhandle *ah)
error (EXIT_FAILURE, errno, _("cannot stat locale archive \"%s\""),
archivefname);
- if (lockf64 (fd, F_LOCK, st.st_size) == -1)
+ if (!readonly && lockf64 (fd, F_LOCK, sizeof (struct locarhead)) == -1)
{
close (fd);
@@ -394,13 +408,17 @@ open_archive (struct locarhandle *ah)
|| st.st_dev != st2.st_dev
|| st.st_ino != st2.st_ino)
{
+ (void) lockf64 (fd, F_ULOCK, sizeof (struct locarhead));
close (fd);
goto again;
}
/* Read the header. */
if (TEMP_FAILURE_RETRY (read (fd, &head, sizeof (head))) != sizeof (head))
- error (EXIT_FAILURE, errno, _("cannot read archive header"));
+ {
+ (void) lockf64 (fd, F_ULOCK, sizeof (struct locarhead));
+ error (EXIT_FAILURE, errno, _("cannot read archive header"));
+ }
ah->fd = fd;
ah->len = (head.sumhash_offset
@@ -408,17 +426,24 @@ open_archive (struct locarhandle *ah)
/* Now we know how large the administrative information part is.
Map all of it. */
- ah->addr = mmap64 (NULL, ah->len, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+ ah->addr = mmap64 (NULL, ah->len, PROT_READ | (readonly ? 0 : PROT_WRITE),
+ MAP_SHARED, fd, 0);
if (ah->addr == MAP_FAILED)
- error (EXIT_FAILURE, errno, _("cannot map archive header"));
+ {
+ (void) lockf64 (fd, F_ULOCK, sizeof (struct locarhead));
+ error (EXIT_FAILURE, errno, _("cannot map archive header"));
+ }
}
void
close_archive (struct locarhandle *ah)
{
- munmap (ah->addr, ah->len);
- close (ah->fd);
+ if (ah->fd != -1)
+ {
+ munmap (ah->addr, ah->len);
+ close (ah->fd);
+ }
}
@@ -648,7 +673,7 @@ add_locales_to_archive (nlist, list, replace)
/* Open the archive. This call never returns if we cannot
successfully open the archive. */
- open_archive (&ah);
+ open_archive (&ah, false);
while (nlist-- > 0)
{
@@ -847,7 +872,7 @@ delete_locales_from_archive (nlist, list)
/* Open the archive. This call never returns if we cannot
successfully open the archive. */
- open_archive (&ah);
+ open_archive (&ah, false);
head = ah.addr;
namehashtab = (struct namehashent *) ((char *) ah.addr
@@ -897,30 +922,62 @@ delete_locales_from_archive (nlist, list)
}
+struct nameent
+{
+ char *name;
+ uint32_t locrec_offset;
+};
+
+
+struct dataent
+{
+ const unsigned char *sum;
+ uint32_t file_offset;
+ uint32_t nlink;
+};
+
+
+static int
+nameentcmp (const void *a, const void *b)
+{
+ return strcmp (((const struct nameent *) a)->name,
+ ((const struct nameent *) b)->name);
+}
+
+
static int
-xstrcmp (const void *a, const void *b)
+dataentcmp (const void *a, const void *b)
{
- return strcmp (*(const char **) a, *(const char **) b);
+ if (((const struct dataent *) a)->file_offset
+ < ((const struct dataent *) b)->file_offset)
+ return -1;
+
+ if (((const struct dataent *) a)->file_offset
+ > ((const struct dataent *) b)->file_offset)
+ return 1;
+
+ return 0;
}
void
-show_archive_content (void)
+show_archive_content (int verbose)
{
struct locarhandle ah;
struct locarhead *head;
struct namehashent *namehashtab;
+ struct nameent *names;
int cnt;
- char **names;
int used;
/* Open the archive. This call never returns if we cannot
successfully open the archive. */
- open_archive (&ah);
+ open_archive (&ah, true);
head = ah.addr;
- names = (char **) xmalloc (head->namehash_used * sizeof (char *));
+ names = (struct nameent *) xmalloc (head->namehash_used
+ * sizeof (struct nameent));
namehashtab = (struct namehashent *) ((char *) ah.addr
+ head->namehash_offset);
@@ -928,14 +985,91 @@ show_archive_content (void)
if (namehashtab[cnt].locrec_offset != 0)
{
assert (used < head->namehash_used);
- names[used++] = ah.addr + namehashtab[cnt].name_offset;
+ names[used].name = ah.addr + namehashtab[cnt].name_offset;
+ names[used++].locrec_offset = namehashtab[cnt].locrec_offset;
}
/* Sort the names. */
- qsort (names, used, sizeof (char *), xstrcmp);
+ qsort (names, used, sizeof (struct nameent), nameentcmp);
+
+ if (verbose)
+ {
+ struct dataent *files;
+ struct sumhashent *sumhashtab;
+ int sumused;
+
+ files = (struct dataent *) xmalloc (head->sumhash_used
+ * sizeof (struct sumhashent));
+
+ sumhashtab = (struct sumhashent *) ((char *) ah.addr
+ + head->sumhash_offset);
+ for (cnt = sumused = 0; cnt < head->sumhash_size; ++cnt)
+ if (sumhashtab[cnt].file_offset != 0)
+ {
+ assert (sumused < head->sumhash_used);
+ files[sumused].sum = (const unsigned char *) sumhashtab[cnt].sum;
+ files[sumused].file_offset = sumhashtab[cnt].file_offset;
+ files[sumused++].nlink = 0;
+ }
+
+ /* Sort by file locations. */
+ qsort (files, sumused, sizeof (struct dataent), dataentcmp);
+
+ /* Compute nlink fields. */
+ for (cnt = 0; cnt < used; ++cnt)
+ {
+ struct locrecent *locrec;
+ int idx;
+
+ locrec = (struct locrecent *) ((char *) ah.addr
+ + names[cnt].locrec_offset);
+ for (idx = 0; idx < __LC_LAST; ++idx)
+ if (idx != LC_ALL)
+ {
+ struct dataent *data, dataent;
+
+ dataent.file_offset = locrec->record[idx].offset;
+ data = (struct dataent *) bsearch (&dataent, files, sumused,
+ sizeof (struct dataent),
+ dataentcmp);
+ assert (data != NULL);
+ ++data->nlink;
+ }
+ }
- for (cnt = 0; cnt < used; ++cnt)
- puts (names[cnt]);
+ /* Print it. */
+ for (cnt = 0; cnt < used; ++cnt)
+ {
+ struct locrecent *locrec;
+ int idx, i;
+
+ locrec = (struct locrecent *) ((char *) ah.addr
+ + names[cnt].locrec_offset);
+ for (idx = 0; idx < __LC_LAST; ++idx)
+ if (idx != LC_ALL)
+ {
+ struct dataent *data, dataent;
+
+ dataent.file_offset = locrec->record[idx].offset;
+ data = (struct dataent *) bsearch (&dataent, files, sumused,
+ sizeof (struct dataent),
+ dataentcmp);
+ printf ("%6d %7x %3d ",
+ locrec->record[idx].len, locrec->record[idx].offset,
+ data->nlink);
+ for (i = 0; i < 16; i += 4)
+ printf ("%02x%02x%02x%02x",
+ data->sum[i], data->sum[i + 1],
+ data->sum[i + 2], data->sum[i + 3]);
+ printf (" %s/%s\n", names[cnt].name,
+ idx == LC_MESSAGES ? "LC_MESSAGES/SYS_LC_MESSAGES"
+ : locnames[idx]);
+ }
+ }
+ }
+ else
+ for (cnt = 0; cnt < used; ++cnt)
+ puts (names[cnt].name);
close_archive (&ah);
diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c
index 4d978d12a1..389adf1ee3 100644
--- a/locale/programs/locfile.c
+++ b/locale/programs/locfile.c
@@ -337,7 +337,7 @@ write_all_categories (struct localedef_t *definitions,
/* Open the archive. This call never returns if we cannot
successfully open the archive. */
- open_archive (&ah);
+ open_archive (&ah, false);
if (add_locale_to_archive (&ah, locname, to_archive, true) != 0)
error (EXIT_FAILURE, errno, _("cannot add to locale archive"));
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 4057f56132..d588941159 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -5273,6 +5273,7 @@ int mALLOPt(param_number, value) int param_number; int value;
#ifdef _LIBC
+# include <sys/param.h>
/* We need a wrapper function for one of the additions of POSIX. */
int
@@ -5282,7 +5283,7 @@ __posix_memalign (void **memptr, size_t alignment, size_t size)
/* Test whether the SIZE argument is valid. It must be a power of
two multiple of sizeof (void *). */
- if (size % sizeof (void *) != 0 || (size & (size - 1)) != 0)
+ if (alignment % sizeof (void *) != 0 || !powerof2 (alignment) != 0)
return EINVAL;
mem = __libc_memalign (alignment, size);
diff --git a/sunrpc/auth_des.c b/sunrpc/auth_des.c
index bf1b8a6eeb..fc5956dcd7 100644
--- a/sunrpc/auth_des.c
+++ b/sunrpc/auth_des.c
@@ -115,7 +115,7 @@ authdes_create (const char *servername, u_int window,
pkey.n_bytes = (char *) pkey_data;
pkey.n_len = strlen ((char *) pkey_data) + 1;
- return authdes_pk_create (servername, &pkey, window, syncaddr, ckey);
+ return INTUSE(authdes_pk_create) (servername, &pkey, window, syncaddr, ckey);
}
AUTH *
@@ -206,6 +206,7 @@ failed:
}
return NULL;
}
+INTDEF(authdes_pk_create)
/*
* Implement the five authentication operations
diff --git a/sunrpc/auth_none.c b/sunrpc/auth_none.c
index 4a1b46f274..9c4d3fde66 100644
--- a/sunrpc/auth_none.c
+++ b/sunrpc/auth_none.c
@@ -96,6 +96,7 @@ authnone_create (void)
__libc_once (authnone_private_guard, authnone_create_once);
return &authnone_private.no_client;
}
+INTDEF (authnone_create)
static bool_t
authnone_marshal (AUTH *client, XDR *xdrs)
diff --git a/sunrpc/auth_unix.c b/sunrpc/auth_unix.c
index aae372c4fb..8c1134fba4 100644
--- a/sunrpc/auth_unix.c
+++ b/sunrpc/auth_unix.c
@@ -156,6 +156,7 @@ no_memory:
marshal_new_auth (auth);
return auth;
}
+INTDEF (authunix_create)
/*
* Returns an auth handle with parameters determined by doing lots of
@@ -182,8 +183,9 @@ authunix_create_default (void)
/* This braindamaged Sun code forces us here to truncate the
list of groups to NGRPS members since the code in
authuxprot.c transforms a fixed array. Grrr. */
- return authunix_create (machname, uid, gid, MIN (NGRPS, len), gids);
+ return INTUSE(authunix_create) (machname, uid, gid, MIN (NGRPS, len), gids);
}
+INTDEF (authunix_create_default)
/*
* authunix operations
diff --git a/sunrpc/bindrsvprt.c b/sunrpc/bindrsvprt.c
index 0acfd69e09..ba3309a4b3 100644
--- a/sunrpc/bindrsvprt.c
+++ b/sunrpc/bindrsvprt.c
@@ -78,8 +78,9 @@ bindresvport (int sd, struct sockaddr_in *sin)
{
port = STARTPORT;
}
- res = bind (sd, sin, sizeof (struct sockaddr_in));
+ res = __bind (sd, sin, sizeof (struct sockaddr_in));
}
return res;
}
+INTDEF (bindresvport)
diff --git a/sunrpc/clnt_gen.c b/sunrpc/clnt_gen.c
index 251ad88ee5..bd5545025d 100644
--- a/sunrpc/clnt_gen.c
+++ b/sunrpc/clnt_gen.c
@@ -66,7 +66,7 @@ clnt_create (const char *hostname, u_long prog, u_long vers,
sun.sun_family = AF_UNIX;
strcpy (sun.sun_path, hostname);
sock = RPC_ANYSOCK;
- client = clntunix_create (&sun, prog, vers, &sock, 0, 0);
+ client = INTUSE(clntunix_create) (&sun, prog, vers, &sock, 0, 0);
if (client == NULL)
return NULL;
#if 0
@@ -136,7 +136,7 @@ clnt_create (const char *hostname, u_long prog, u_long vers,
case IPPROTO_UDP:
tv.tv_sec = 5;
tv.tv_usec = 0;
- client = clntudp_create (&sin, prog, vers, tv, &sock);
+ client = INTUSE(clntudp_create) (&sin, prog, vers, tv, &sock);
if (client == NULL)
{
return NULL;
@@ -150,7 +150,7 @@ clnt_create (const char *hostname, u_long prog, u_long vers,
#endif
break;
case IPPROTO_TCP:
- client = clnttcp_create (&sin, prog, vers, &sock, 0, 0);
+ client = INTUSE(clnttcp_create) (&sin, prog, vers, &sock, 0, 0);
if (client == NULL)
{
return NULL;
@@ -174,3 +174,4 @@ clnt_create (const char *hostname, u_long prog, u_long vers,
}
return client;
}
+INTDEF (clnt_create)
diff --git a/sunrpc/clnt_raw.c b/sunrpc/clnt_raw.c
index 110141fcc8..082a76abeb 100644
--- a/sunrpc/clnt_raw.c
+++ b/sunrpc/clnt_raw.c
@@ -128,7 +128,7 @@ clntraw_create (u_long prog, u_long vers)
* create client handle
*/
client->cl_ops = &client_ops;
- client->cl_auth = authnone_create ();
+ client->cl_auth = INTUSE(authnone_create) ();
return client;
}
@@ -170,7 +170,7 @@ call_again:
* We have to call server input routine here because this is
* all going on in one process. Yuk.
*/
- svc_getreq (1);
+ INTUSE(svc_getreq) (1);
/*
* get results
diff --git a/sunrpc/clnt_simp.c b/sunrpc/clnt_simp.c
index 5c11b479b2..373eeed1a6 100644
--- a/sunrpc/clnt_simp.c
+++ b/sunrpc/clnt_simp.c
@@ -125,7 +125,7 @@ callrpc (const char *host, u_long prognum, u_long versnum, u_long procnum,
memcpy ((char *) &server_addr.sin_addr, hp->h_addr, hp->h_length);
server_addr.sin_family = AF_INET;
server_addr.sin_port = 0;
- if ((crp->client = clntudp_create (&server_addr, (u_long) prognum,
+ if ((crp->client = INTUSE(clntudp_create) (&server_addr, (u_long) prognum,
(u_long) versnum, timeout, &crp->socket)) == NULL)
return (int) get_rpc_createerr().cf_stat;
crp->valid = 1;
diff --git a/sunrpc/clnt_tcp.c b/sunrpc/clnt_tcp.c
index 8c09a15c66..5d02cd99cb 100644
--- a/sunrpc/clnt_tcp.c
+++ b/sunrpc/clnt_tcp.c
@@ -201,7 +201,7 @@ clnttcp_create (struct sockaddr_in *raddr, u_long prog, u_long vers,
* pre-serialize the static part of the call msg and stash it away
*/
INTUSE(xdrmem_create) (&(ct->ct_xdrs), ct->ct_mcall, MCALL_MSG_SIZE,
- XDR_ENCODE);
+ XDR_ENCODE);
if (!INTUSE(xdr_callhdr) (&(ct->ct_xdrs), &call_msg))
{
if (ct->ct_closeit)
@@ -221,7 +221,7 @@ clnttcp_create (struct sockaddr_in *raddr, u_long prog, u_long vers,
(caddr_t) ct, readtcp, writetcp);
h->cl_ops = &tcp_ops;
h->cl_private = (caddr_t) ct;
- h->cl_auth = authnone_create ();
+ h->cl_auth = INTUSE(authnone_create) ();
return h;
fooy:
@@ -232,6 +232,7 @@ fooy:
mem_free ((caddr_t) h, sizeof (CLIENT));
return ((CLIENT *) NULL);
}
+INTDEF (clnttcp_create)
static enum clnt_stat
clnttcp_call (h, proc, xdr_args, args_ptr, xdr_results, results_ptr, timeout)
diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c
index 82fd3eee51..8f6d269db6 100644
--- a/sunrpc/clnt_udp.c
+++ b/sunrpc/clnt_udp.c
@@ -191,13 +191,13 @@ clntudp_bufcreate (struct sockaddr_in *raddr, u_long program, u_long version,
goto fooy;
}
/* attempt to bind to prov port */
- (void) bindresvport (*sockp, (struct sockaddr_in *) 0);
+ (void) INTUSE(bindresvport) (*sockp, (struct sockaddr_in *) 0);
/* the sockets rpc controls are non-blocking */
(void) __ioctl (*sockp, FIONBIO, (char *) &dontblock);
#ifdef IP_RECVERR
{
int on = 1;
- setsockopt(*sockp, SOL_IP, IP_RECVERR, &on, sizeof(on));
+ __setsockopt (*sockp, SOL_IP, IP_RECVERR, &on, sizeof(on));
}
#endif
cu->cu_closeit = TRUE;
@@ -207,7 +207,7 @@ clntudp_bufcreate (struct sockaddr_in *raddr, u_long program, u_long version,
cu->cu_closeit = FALSE;
}
cu->cu_sock = *sockp;
- cl->cl_auth = authnone_create ();
+ cl->cl_auth = INTUSE(authnone_create) ();
return cl;
fooy:
if (cu)
@@ -216,6 +216,7 @@ fooy:
mem_free ((caddr_t) cl, sizeof (CLIENT));
return (CLIENT *) NULL;
}
+INTDEF (clntudp_bufcreate)
CLIENT *
clntudp_create (raddr, program, version, wait, sockp)
@@ -225,10 +226,10 @@ clntudp_create (raddr, program, version, wait, sockp)
struct timeval wait;
int *sockp;
{
-
- return clntudp_bufcreate (raddr, program, version, wait, sockp,
- UDPMSGSIZE, UDPMSGSIZE);
+ return INTUSE(clntudp_bufcreate) (raddr, program, version, wait, sockp,
+ UDPMSGSIZE, UDPMSGSIZE);
}
+INTDEF (clntudp_create)
static int
is_network_up (int sock)
@@ -312,8 +313,8 @@ call_again:
outlen = (int) XDR_GETPOS (xdrs);
send_again:
- if (sendto (cu->cu_sock, cu->cu_outbuf, outlen, 0,
- (struct sockaddr *) &(cu->cu_raddr), cu->cu_rlen)
+ if (__sendto (cu->cu_sock, cu->cu_outbuf, outlen, 0,
+ (struct sockaddr *) &(cu->cu_raddr), cu->cu_rlen)
!= outlen)
{
cu->cu_error.re_errno = errno;
@@ -395,7 +396,7 @@ send_again:
msg.msg_flags = 0;
msg.msg_control = cbuf;
msg.msg_controllen = 256;
- ret = recvmsg (cu->cu_sock, &msg, MSG_ERRQUEUE);
+ ret = __recvmsg (cu->cu_sock, &msg, MSG_ERRQUEUE);
if (ret >= 0
&& memcmp (cbuf + 256, cu->cu_outbuf, ret) == 0
&& (msg.msg_flags & MSG_ERRQUEUE)
@@ -419,9 +420,9 @@ send_again:
do
{
fromlen = sizeof (struct sockaddr);
- inlen = recvfrom (cu->cu_sock, cu->cu_inbuf,
- (int) cu->cu_recvsz, 0,
- (struct sockaddr *) &from, &fromlen);
+ inlen = __recvfrom (cu->cu_sock, cu->cu_inbuf,
+ (int) cu->cu_recvsz, 0,
+ (struct sockaddr *) &from, &fromlen);
}
while (inlen < 0 && errno == EINTR);
if (inlen < 0)
diff --git a/sunrpc/clnt_unix.c b/sunrpc/clnt_unix.c
index 8c2fa40f80..fae1cd8229 100644
--- a/sunrpc/clnt_unix.c
+++ b/sunrpc/clnt_unix.c
@@ -200,7 +200,7 @@ clntunix_create (struct sockaddr_un *raddr, u_long prog, u_long vers,
(caddr_t) ct, readunix, writeunix);
h->cl_ops = &unix_ops;
h->cl_private = (caddr_t) ct;
- h->cl_auth = authnone_create ();
+ h->cl_auth = INTUSE(authnone_create) ();
return h;
fooy:
@@ -211,6 +211,7 @@ fooy:
mem_free ((caddr_t) h, sizeof (CLIENT));
return (CLIENT *) NULL;
}
+INTDEF (clntunix_create)
static enum clnt_stat
clntunix_call (h, proc, xdr_args, args_ptr, xdr_results, results_ptr, timeout)
@@ -466,13 +467,13 @@ __msgread (int sock, void *data, size_t cnt)
#ifdef SO_PASSCRED
{
int on = 1;
- if (setsockopt (sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof (on)))
+ if (__setsockopt (sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof (on)))
return -1;
}
#endif
restart:
- len = recvmsg (sock, &msg, 0);
+ len = __recvmsg (sock, &msg, 0);
if (len >= 0)
{
if (msg.msg_flags & MSG_CTRUNC || len == 0)
@@ -523,7 +524,7 @@ __msgwrite (int sock, void *data, size_t cnt)
msg.msg_flags = 0;
restart:
- len = sendmsg (sock, &msg, 0);
+ len = __sendmsg (sock, &msg, 0);
if (len >= 0)
return len;
if (errno == EINTR)
diff --git a/sunrpc/key_call.c b/sunrpc/key_call.c
index 61c13ec335..93117fd03f 100644
--- a/sunrpc/key_call.c
+++ b/sunrpc/key_call.c
@@ -215,9 +215,9 @@ key_gendes (des_block *key)
sin.sin_addr.s_addr = htonl (INADDR_LOOPBACK);
__bzero (sin.sin_zero, sizeof (sin.sin_zero));
socket = RPC_ANYSOCK;
- client = clntudp_bufcreate (&sin, (u_long) KEY_PROG, (u_long) KEY_VERS,
- trytimeout, &socket, RPCSMALLMSGSIZE,
- RPCSMALLMSGSIZE);
+ client = INTUSE(clntudp_bufcreate) (&sin, (u_long) KEY_PROG,
+ (u_long) KEY_VERS, trytimeout, &socket,
+ RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
if (client == NULL)
return -1;
@@ -425,7 +425,7 @@ getkeyserv_handle (int vers)
kcp->uid = __geteuid ();
auth_destroy (kcp->client->cl_auth);
kcp->client->cl_auth =
- authunix_create ((char *)"", kcp->uid, 0, 0, NULL);
+ INTUSE(authunix_create) ((char *)"", kcp->uid, 0, 0, NULL);
if (kcp->client->cl_auth == NULL)
{
clnt_destroy (kcp->client);
@@ -440,14 +440,16 @@ getkeyserv_handle (int vers)
if ((kcp->client == (CLIENT *) NULL))
/* Use the AF_UNIX transport */
- kcp->client = clnt_create ("/var/run/keyservsock", KEY_PROG, vers, "unix");
+ kcp->client = INTUSE(clnt_create) ("/var/run/keyservsock", KEY_PROG, vers,
+ "unix");
if (kcp->client == (CLIENT *) NULL)
return (CLIENT *) NULL;
kcp->uid = __geteuid ();
kcp->pid = __getpid ();
- kcp->client->cl_auth = authunix_create ((char *)"", kcp->uid, 0, 0, NULL);
+ kcp->client->cl_auth = INTUSE(authunix_create) ((char *)"", kcp->uid, 0, 0,
+ NULL);
if (kcp->client->cl_auth == NULL)
{
clnt_destroy (kcp->client);
diff --git a/sunrpc/pm_getmaps.c b/sunrpc/pm_getmaps.c
index 987ed5fe09..d1d4ca8769 100644
--- a/sunrpc/pm_getmaps.c
+++ b/sunrpc/pm_getmaps.c
@@ -63,8 +63,8 @@ pmap_getmaps (struct sockaddr_in *address)
minutetimeout.tv_sec = 60;
minutetimeout.tv_usec = 0;
address->sin_port = htons (PMAPPORT);
- client = clnttcp_create (address, PMAPPROG,
- PMAPVERS, &socket, 50, 500);
+ client = INTUSE(clnttcp_create) (address, PMAPPROG,
+ PMAPVERS, &socket, 50, 500);
if (client != (CLIENT *) NULL)
{
if (CLNT_CALL (client, PMAPPROC_DUMP, (xdrproc_t)INTUSE(xdr_void), NULL,
diff --git a/sunrpc/pm_getport.c b/sunrpc/pm_getport.c
index c26183d75c..cd65307ee9 100644
--- a/sunrpc/pm_getport.c
+++ b/sunrpc/pm_getport.c
@@ -66,8 +66,9 @@ pmap_getport (address, program, version, protocol)
struct pmap parms;
address->sin_port = htons (PMAPPORT);
- client = clntudp_bufcreate (address, PMAPPROG,
- PMAPVERS, timeout, &socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
+ client = INTUSE(clntudp_bufcreate) (address, PMAPPROG, PMAPVERS, timeout,
+ &socket, RPCSMALLMSGSIZE,
+ RPCSMALLMSGSIZE);
if (client != (CLIENT *) NULL)
{
struct rpc_createerr *ce = &get_rpc_createerr ();
diff --git a/sunrpc/pmap_clnt.c b/sunrpc/pmap_clnt.c
index 6e2c035a69..fa9bbf9373 100644
--- a/sunrpc/pmap_clnt.c
+++ b/sunrpc/pmap_clnt.c
@@ -121,8 +121,9 @@ pmap_set (u_long program, u_long version, int protocol, u_short port)
if (!__get_myaddress (&myaddress))
return FALSE;
- client = clntudp_bufcreate (&myaddress, PMAPPROG, PMAPVERS,
- timeout, &socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
+ client = INTUSE(clntudp_bufcreate) (&myaddress, PMAPPROG, PMAPVERS,
+ timeout, &socket, RPCSMALLMSGSIZE,
+ RPCSMALLMSGSIZE);
if (client == (CLIENT *) NULL)
return (FALSE);
parms.pm_prog = program;
@@ -156,8 +157,9 @@ pmap_unset (u_long program, u_long version)
if (!__get_myaddress (&myaddress))
return FALSE;
- client = clntudp_bufcreate (&myaddress, PMAPPROG, PMAPVERS,
- timeout, &socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
+ client = INTUSE(clntudp_bufcreate) (&myaddress, PMAPPROG, PMAPVERS,
+ timeout, &socket, RPCSMALLMSGSIZE,
+ RPCSMALLMSGSIZE);
if (client == (CLIENT *) NULL)
return FALSE;
parms.pm_prog = program;
diff --git a/sunrpc/pmap_rmt.c b/sunrpc/pmap_rmt.c
index 2f7592eb8e..c02f546b36 100644
--- a/sunrpc/pmap_rmt.c
+++ b/sunrpc/pmap_rmt.c
@@ -84,7 +84,7 @@ pmap_rmtcall (addr, prog, vers, proc, xdrargs, argsp, xdrres, resp, tout, port_p
enum clnt_stat stat;
addr->sin_port = htons (PMAPPORT);
- client = clntudp_create (addr, PMAPPROG, PMAPVERS, timeout, &socket);
+ client = INTUSE(clntudp_create) (addr, PMAPPROG, PMAPVERS, timeout, &socket);
if (client != (CLIENT *) NULL)
{
a.prog = prog;
@@ -239,7 +239,7 @@ clnt_broadcast (prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
resultproc_t eachresult; /* call with each result obtained */
{
enum clnt_stat stat = RPC_FAILED;
- AUTH *unix_auth = authunix_create_default ();
+ AUTH *unix_auth = INTUSE(authunix_create_default) ();
XDR xdr_stream;
XDR *xdrs = &xdr_stream;
struct timeval t;
@@ -271,7 +271,7 @@ clnt_broadcast (prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
goto done_broad;
}
#ifdef SO_BROADCAST
- if (setsockopt (sock, SOL_SOCKET, SO_BROADCAST, &on, sizeof (on)) < 0)
+ if (__setsockopt (sock, SOL_SOCKET, SO_BROADCAST, &on, sizeof (on)) < 0)
{
perror (_("Cannot set socket option SO_BROADCAST"));
stat = RPC_CANTSEND;
@@ -321,9 +321,9 @@ clnt_broadcast (prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
for (i = 0; i < nets; i++)
{
baddr.sin_addr = addrs[i];
- if (sendto (sock, outbuf, outlen, 0,
- (struct sockaddr *) &baddr,
- sizeof (struct sockaddr)) != outlen)
+ if (__sendto (sock, outbuf, outlen, 0,
+ (struct sockaddr *) &baddr,
+ sizeof (struct sockaddr)) != outlen)
{
perror (_("Cannot send broadcast packet"));
stat = RPC_CANTSEND;
@@ -357,8 +357,8 @@ clnt_broadcast (prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
} /* end of poll results switch */
try_again:
fromlen = sizeof (struct sockaddr);
- inlen = recvfrom (sock, inbuf, UDPMSGSIZE, 0,
- (struct sockaddr *) &raddr, &fromlen);
+ inlen = __recvfrom (sock, inbuf, UDPMSGSIZE, 0,
+ (struct sockaddr *) &raddr, &fromlen);
if (inlen < 0)
{
if (errno == EINTR)
diff --git a/sunrpc/rtime.c b/sunrpc/rtime.c
index 536d018c90..0c6d2effe0 100644
--- a/sunrpc/rtime.c
+++ b/sunrpc/rtime.c
@@ -96,8 +96,8 @@ rtime (struct sockaddr_in *addrp, struct rpc_timeval *timep,
addrp->sin_port = htons (IPPORT_TIMESERVER);
if (type == SOCK_DGRAM)
{
- res = sendto (s, (char *) &thetime, sizeof (thetime), 0,
- (struct sockaddr *) addrp, sizeof (*addrp));
+ res = __sendto (s, (char *) &thetime, sizeof (thetime), 0,
+ (struct sockaddr *) addrp, sizeof (*addrp));
if (res < 0)
{
do_close (s);
@@ -117,8 +117,8 @@ rtime (struct sockaddr_in *addrp, struct rpc_timeval *timep,
return (-1);
}
fromlen = sizeof (from);
- res = recvfrom (s, (char *) &thetime, sizeof (thetime), 0,
- (struct sockaddr *) &from, &fromlen);
+ res = __recvfrom (s, (char *) &thetime, sizeof (thetime), 0,
+ (struct sockaddr *) &from, &fromlen);
do_close (s);
if (res < 0)
return -1;
diff --git a/sunrpc/svc.c b/sunrpc/svc.c
index 5260634ae2..932813b1c6 100644
--- a/sunrpc/svc.c
+++ b/sunrpc/svc.c
@@ -192,6 +192,7 @@ pmap_it:
return TRUE;
}
+INTDEF (svc_register)
/* Remove a service program from the callout list. */
void
@@ -213,6 +214,7 @@ svc_unregister (rpcprog_t prog, rpcvers_t vers)
/* now unregister the information with the local binder service */
pmap_unset (prog, vers);
}
+INTDEF (svc_unregister)
/* ******************* REPLY GENERATION ROUTINES ************ */
@@ -231,6 +233,7 @@ svc_sendreply (register SVCXPRT *xprt, xdrproc_t xdr_results,
rply.acpted_rply.ar_results.proc = xdr_results;
return SVC_REPLY (xprt, &rply);
}
+INTDEF (svc_sendreply)
/* No procedure error reply */
void
@@ -257,6 +260,7 @@ svcerr_decode (register SVCXPRT *xprt)
rply.acpted_rply.ar_stat = GARBAGE_ARGS;
SVC_REPLY (xprt, &rply);
}
+INTDEF (svcerr_decode)
/* Some system error */
void
@@ -345,8 +349,9 @@ svc_getreq (int rdfds)
FD_ZERO (&readfds);
readfds.fds_bits[0] = rdfds;
- svc_getreqset (&readfds);
+ INTUSE(svc_getreqset) (&readfds);
}
+INTDEF (svc_getreq)
void
svc_getreqset (fd_set *readfds)
@@ -361,8 +366,9 @@ svc_getreqset (fd_set *readfds)
maskp = (u_int32_t *) readfds->fds_bits;
for (sock = 0; sock < setsize; sock += 32)
for (mask = *maskp++; (bit = ffs (mask)); mask ^= (1 << (bit - 1)))
- svc_getreq_common (sock + bit - 1);
+ INTUSE(svc_getreq_common) (sock + bit - 1);
}
+INTDEF (svc_getreqset)
void
svc_getreq_poll (struct pollfd *pfdp, int pollretval)
@@ -382,10 +388,11 @@ svc_getreq_poll (struct pollfd *pfdp, int pollretval)
if (p->revents & POLLNVAL)
xprt_unregister (xports[p->fd]);
else
- svc_getreq_common (p->fd);
+ INTUSE(svc_getreq_common) (p->fd);
}
}
}
+INTDEF (svc_getreq_poll)
void
@@ -477,6 +484,7 @@ svc_getreq_common (const int fd)
}
while (stat == XPRT_MOREREQS);
}
+INTDEF (svc_getreq_common)
#ifdef _RPC_THREAD_SAFE_
diff --git a/sunrpc/svc_auth.c b/sunrpc/svc_auth.c
index f0aebd5358..68ed4f100b 100644
--- a/sunrpc/svc_auth.c
+++ b/sunrpc/svc_auth.c
@@ -111,6 +111,7 @@ _authenticate (register struct svc_req *rqst, struct rpc_msg *msg)
return AUTH_REJECTEDCRED;
}
+INTDEF(_authenticate)
static enum auth_stat
_svcauth_null (struct svc_req *rqst, struct rpc_msg *msg)
diff --git a/sunrpc/svc_run.c b/sunrpc/svc_run.c
index 72fb939e78..017910b453 100644
--- a/sunrpc/svc_run.c
+++ b/sunrpc/svc_run.c
@@ -79,7 +79,7 @@ svc_run (void)
free (my_pollfd);
continue;
default:
- svc_getreq_poll (my_pollfd, i);
+ INTUSE(svc_getreq_poll) (my_pollfd, i);
free (my_pollfd);
}
}
diff --git a/sunrpc/svc_simple.c b/sunrpc/svc_simple.c
index dbdb8f1501..cd985a201a 100644
--- a/sunrpc/svc_simple.c
+++ b/sunrpc/svc_simple.c
@@ -91,7 +91,7 @@ registerrpc (u_long prognum, u_long versnum, u_long procnum,
}
if (transp == 0)
{
- transp = svcudp_create (RPC_ANYSOCK);
+ transp = INTUSE(svcudp_create) (RPC_ANYSOCK);
if (transp == NULL)
{
buf = strdup (_("couldn't create an rpc server\n"));
@@ -99,8 +99,8 @@ registerrpc (u_long prognum, u_long versnum, u_long procnum,
}
}
(void) pmap_unset ((u_long) prognum, (u_long) versnum);
- if (!svc_register (transp, (u_long) prognum, (u_long) versnum,
- universal, IPPROTO_UDP))
+ if (!INTUSE(svc_register) (transp, (u_long) prognum, (u_long) versnum,
+ universal, IPPROTO_UDP))
{
(void) __asprintf (&buf, _("couldn't register prog %ld vers %ld\n"),
prognum, versnum);
@@ -146,8 +146,8 @@ universal (struct svc_req *rqstp, SVCXPRT *transp_l)
*/
if (rqstp->rq_proc == NULLPROC)
{
- if (svc_sendreply (transp_l, (xdrproc_t)INTUSE(xdr_void), (char *) NULL)
- == FALSE)
+ if (INTUSE(svc_sendreply) (transp_l, (xdrproc_t)INTUSE(xdr_void),
+ (char *) NULL) == FALSE)
{
__write (STDERR_FILENO, "xxx\n", 4);
exit (1);
@@ -163,14 +163,14 @@ universal (struct svc_req *rqstp, SVCXPRT *transp_l)
__bzero (xdrbuf, sizeof (xdrbuf)); /* required ! */
if (!svc_getargs (transp_l, pl->p_inproc, xdrbuf))
{
- svcerr_decode (transp_l);
+ INTUSE(svcerr_decode) (transp_l);
return;
}
outdata = (*(pl->p_progname)) (xdrbuf);
if (outdata == NULL && pl->p_outproc != (xdrproc_t)INTUSE(xdr_void))
/* there was an error */
return;
- if (!svc_sendreply (transp_l, pl->p_outproc, outdata))
+ if (!INTUSE(svc_sendreply) (transp_l, pl->p_outproc, outdata))
{
(void) __asprintf (&buf,
_("trouble replying to prog %d\n"),
diff --git a/sunrpc/svc_tcp.c b/sunrpc/svc_tcp.c
index 9416b7e78f..0a4a8a2601 100644
--- a/sunrpc/svc_tcp.c
+++ b/sunrpc/svc_tcp.c
@@ -160,13 +160,13 @@ svctcp_create (int sock, u_int sendsize, u_int recvsize)
}
__bzero ((char *) &addr, sizeof (addr));
addr.sin_family = AF_INET;
- if (bindresvport (sock, &addr))
+ if (INTUSE(bindresvport) (sock, &addr))
{
addr.sin_port = 0;
- (void) bind (sock, (struct sockaddr *) &addr, len);
+ (void) __bind (sock, (struct sockaddr *) &addr, len);
}
- if ((getsockname (sock, (struct sockaddr *) &addr, &len) != 0) ||
- (listen (sock, 2) != 0))
+ if ((__getsockname (sock, (struct sockaddr *) &addr, &len) != 0) ||
+ (__listen (sock, 2) != 0))
{
perror (_("svc_tcp.c - cannot getsockname or listen"));
if (madesock)
diff --git a/sunrpc/svc_udp.c b/sunrpc/svc_udp.c
index 40de3c5e79..b42d6144b9 100644
--- a/sunrpc/svc_udp.c
+++ b/sunrpc/svc_udp.c
@@ -133,12 +133,12 @@ svcudp_bufcreate (sock, sendsz, recvsz)
}
__bzero ((char *) &addr, sizeof (addr));
addr.sin_family = AF_INET;
- if (bindresvport (sock, &addr))
+ if (INTUSE(bindresvport) (sock, &addr))
{
addr.sin_port = 0;
- (void) bind (sock, (struct sockaddr *) &addr, len);
+ (void) __bind (sock, (struct sockaddr *) &addr, len);
}
- if (getsockname (sock, (struct sockaddr *) &addr, &len) != 0)
+ if (__getsockname (sock, (struct sockaddr *) &addr, &len) != 0)
{
perror (_("svcudp_create - cannot getsockname"));
if (madesock)
@@ -188,8 +188,8 @@ svcudp_bufcreate (sock, sendsz, recvsz)
return NULL;
}
pad = 1;
- if (setsockopt (sock, SOL_IP, IP_PKTINFO, (void *) &pad,
- sizeof (pad)) == 0)
+ if (__setsockopt (sock, SOL_IP, IP_PKTINFO, (void *) &pad,
+ sizeof (pad)) == 0)
/* Set the padding to all 1s. */
pad = 0xff;
else
@@ -201,14 +201,15 @@ svcudp_bufcreate (sock, sendsz, recvsz)
xprt_register (xprt);
return xprt;
}
+INTDEF (svcudp_bufcreate)
SVCXPRT *
svcudp_create (sock)
int sock;
{
-
- return svcudp_bufcreate (sock, UDPMSGSIZE, UDPMSGSIZE);
+ return INTUSE(svcudp_bufcreate) (sock, UDPMSGSIZE, UDPMSGSIZE);
}
+INTDEF (svcudp_create)
static enum xprt_stat
svcudp_stat (xprt)
@@ -256,15 +257,15 @@ again:
+ sizeof (struct msghdr)];
mesgp->msg_controllen = sizeof(xprt->xp_pad)
- sizeof (struct iovec) - sizeof (struct msghdr);
- rlen = recvmsg (xprt->xp_sock, mesgp, 0);
+ rlen = __recvmsg (xprt->xp_sock, mesgp, 0);
if (rlen >= 0)
len = mesgp->msg_namelen;
}
else
#endif
- rlen = recvfrom (xprt->xp_sock, rpc_buffer (xprt),
- (int) su->su_iosz, 0,
- (struct sockaddr *) &(xprt->xp_raddr), &len);
+ rlen = __recvfrom (xprt->xp_sock, rpc_buffer (xprt),
+ (int) su->su_iosz, 0,
+ (struct sockaddr *) &(xprt->xp_raddr), &len);
xprt->xp_addrlen = len;
if (rlen == -1 && errno == EINTR)
goto again;
@@ -284,12 +285,12 @@ again:
{
iovp->iov_base = reply;
iovp->iov_len = replylen;
- (void) sendmsg (xprt->xp_sock, mesgp, 0);
+ (void) __sendmsg (xprt->xp_sock, mesgp, 0);
}
else
#endif
- (void) sendto (xprt->xp_sock, reply, (int) replylen, 0,
- (struct sockaddr *) &xprt->xp_raddr, len);
+ (void) __sendto (xprt->xp_sock, reply, (int) replylen, 0,
+ (struct sockaddr *) &xprt->xp_raddr, len);
return TRUE;
}
}
@@ -323,13 +324,13 @@ svcudp_reply (xprt, msg)
iovp = (struct iovec *) &xprt->xp_pad [0];
iovp->iov_base = rpc_buffer (xprt);
iovp->iov_len = slen;
- sent = sendmsg (xprt->xp_sock, mesgp, 0);
+ sent = __sendmsg (xprt->xp_sock, mesgp, 0);
}
else
#endif
- sent = sendto (xprt->xp_sock, rpc_buffer (xprt), slen, 0,
- (struct sockaddr *) &(xprt->xp_raddr),
- xprt->xp_addrlen);
+ sent = __sendto (xprt->xp_sock, rpc_buffer (xprt), slen, 0,
+ (struct sockaddr *) &(xprt->xp_raddr),
+ xprt->xp_addrlen);
if (sent == slen)
{
stat = TRUE;
diff --git a/sunrpc/svc_unix.c b/sunrpc/svc_unix.c
index afe4494a36..cfbc63866b 100644
--- a/sunrpc/svc_unix.c
+++ b/sunrpc/svc_unix.c
@@ -158,10 +158,10 @@ svcunix_create (int sock, u_int sendsize, u_int recvsize, char *path)
memcpy (addr.sun_path, path, len);
len += sizeof (addr.sun_family);
- bind (sock, (struct sockaddr *) &addr, len);
+ __bind (sock, (struct sockaddr *) &addr, len);
- if (getsockname (sock, (struct sockaddr *) &addr, &len) != 0
- || listen (sock, 2) != 0)
+ if (__getsockname (sock, (struct sockaddr *) &addr, &len) != 0
+ || __listen (sock, 2) != 0)
{
perror (_("svc_unix.c - cannot getsockname or listen"));
if (madesock)
@@ -334,13 +334,13 @@ __msgread (int sock, void *data, size_t cnt)
#ifdef SO_PASSCRED
{
int on = 1;
- if (setsockopt (sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof (on)))
+ if (__setsockopt (sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof (on)))
return -1;
}
#endif
restart:
- len = recvmsg (sock, &msg, 0);
+ len = __recvmsg (sock, &msg, 0);
if (len >= 0)
{
if (msg.msg_flags & MSG_CTRUNC || len == 0)
@@ -391,7 +391,7 @@ __msgwrite (int sock, void *data, size_t cnt)
msg.msg_flags = 0;
restart:
- len = sendmsg (sock, &msg, 0);
+ len = __sendmsg (sock, &msg, 0);
if (len >= 0)
return len;
if (errno == EINTR)
diff --git a/sysdeps/generic/bind.c b/sysdeps/generic/bind.c
index f51b1d8bc1..382e29db16 100644
--- a/sysdeps/generic/bind.c
+++ b/sysdeps/generic/bind.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,7 @@
/* Give the socket FD the local address ADDR (which is LEN bytes long). */
int
-bind (fd, addr, len)
+__bind (fd, addr, len)
int fd;
__CONST_SOCKADDR_ARG addr;
socklen_t len;
@@ -30,6 +30,7 @@ bind (fd, addr, len)
return -1;
}
+weak_alias (__bind, bind)
stub_warning (bind)
#include <stub-tag.h>
diff --git a/sysdeps/generic/getsockname.c b/sysdeps/generic/getsockname.c
index f27fa324af..b698bdbb7a 100644
--- a/sysdeps/generic/getsockname.c
+++ b/sysdeps/generic/getsockname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,7 @@
/* Put the local address of FD into *ADDR and its length in *LEN. */
int
-getsockname (fd, addr, len)
+__getsockname (fd, addr, len)
int fd;
__SOCKADDR_ARG addr;
socklen_t *len;
@@ -30,6 +30,7 @@ getsockname (fd, addr, len)
return -1;
}
+weak_alias (__getsockname, getsockname)
stub_warning (getsockname)
#include <stub-tag.h>
diff --git a/sysdeps/generic/listen.c b/sysdeps/generic/listen.c
index 87484fecb1..cbdd8b9d18 100644
--- a/sysdeps/generic/listen.c
+++ b/sysdeps/generic/listen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1997,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,7 +23,7 @@
N connection requests will be queued before further requests are refused.
Returns 0 on success, -1 for errors. */
int
-listen (fd, n)
+__listen (fd, n)
int fd;
int n;
{
@@ -31,6 +31,7 @@ listen (fd, n)
return -1;
}
+weak_alias (__listen, listen)
stub_warning (listen)
#include <stub-tag.h>
diff --git a/sysdeps/generic/recvfrom.c b/sysdeps/generic/recvfrom.c
index da6cc79a01..4f6a045077 100644
--- a/sysdeps/generic/recvfrom.c
+++ b/sysdeps/generic/recvfrom.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1997,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,7 +23,7 @@
at address ADDR (which is ADDR_LEN bytes long).
Returns the number read or -1 for errors. */
ssize_t
-recvfrom (fd, buf, n, flags, addr, addr_len)
+__recvfrom (fd, buf, n, flags, addr, addr_len)
int fd;
void *buf;
size_t n;
@@ -35,5 +35,7 @@ recvfrom (fd, buf, n, flags, addr, addr_len)
return -1;
}
+weak_alias (__recvfrom, recvfrom)
+
stub_warning (recvfrom)
#include <stub-tag.h>
diff --git a/sysdeps/generic/recvmsg.c b/sysdeps/generic/recvmsg.c
index 211b844d10..419415cd75 100644
--- a/sysdeps/generic/recvmsg.c
+++ b/sysdeps/generic/recvmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1997,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
/* Receive a message as described by MESSAGE from socket FD.
Returns the number of bytes read or -1 for errors. */
ssize_t
-recvmsg (fd, message, flags)
+__recvmsg (fd, message, flags)
int fd;
struct msghdr *message;
int flags;
@@ -31,5 +31,7 @@ recvmsg (fd, message, flags)
return -1;
}
+weak_alias (__recvmsg, recvmsg)
+
stub_warning (recvmsg)
#include <stub-tag.h>
diff --git a/sysdeps/generic/sendmsg.c b/sysdeps/generic/sendmsg.c
index 36948f75bd..a4a3cea950 100644
--- a/sysdeps/generic/sendmsg.c
+++ b/sysdeps/generic/sendmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1997,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
/* Send a message described MESSAGE on socket FD.
Returns the number of bytes sent, or -1 for errors. */
ssize_t
-sendmsg (fd, message, flags)
+__sendmsg (fd, message, flags)
int fd;
const struct msghdr *message;
int flags;
@@ -31,5 +31,7 @@ sendmsg (fd, message, flags)
return -1;
}
+weak_alias (__sendmsg, sendmsg)
+
stub_warning (sendmsg)
#include <stub-tag.h>
diff --git a/sysdeps/generic/sendto.c b/sysdeps/generic/sendto.c
index a9c0df9420..823c9dd1c7 100644
--- a/sysdeps/generic/sendto.c
+++ b/sysdeps/generic/sendto.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1997,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
/* Send N bytes of BUF on socket FD to peer at address ADDR (which is
ADDR_LEN bytes long). Returns the number sent, or -1 for errors. */
ssize_t
-sendto (fd, buf, n, flags, addr, addr_len)
+__sendto (fd, buf, n, flags, addr, addr_len)
int fd;
__const __ptr_t buf;
size_t n;
@@ -34,5 +34,7 @@ sendto (fd, buf, n, flags, addr, addr_len)
return -1;
}
+weak_alias (__sendto, sendto)
+
stub_warning (sendto)
#include <stub-tag.h>
diff --git a/sysdeps/generic/setsockopt.c b/sysdeps/generic/setsockopt.c
index e33387ba01..aca73623fe 100644
--- a/sysdeps/generic/setsockopt.c
+++ b/sysdeps/generic/setsockopt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1997,1998,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,7 +23,7 @@
to *OPTVAL (which is OPTLEN bytes long).
Returns 0 on success, -1 for errors. */
int
-setsockopt (fd, level, optname, optval, optlen)
+__setsockopt (fd, level, optname, optval, optlen)
int fd;
int level;
int optname;
@@ -34,5 +34,7 @@ setsockopt (fd, level, optname, optval, optlen)
return -1;
}
+weak_alias (__setsockopt, setsockopt)
+
stub_warning (setsockopt)
#include <stub-tag.h>
diff --git a/sysdeps/generic/unwind-dw2-fde.c b/sysdeps/generic/unwind-dw2-fde.c
index 3d1931868f..6c51c6f730 100644
--- a/sysdeps/generic/unwind-dw2-fde.c
+++ b/sysdeps/generic/unwind-dw2-fde.c
@@ -68,6 +68,13 @@ __libc_lock_define_initialized (static, object_mutex)
#define __gthread_mutex_lock(m) __libc_lock_lock (*(m))
#define __gthread_mutex_unlock(m) __libc_lock_unlock (*(m))
+void __register_frame_info_bases_internal (void *begin, struct object *ob,
+ void *tbase, void *dbase);
+void __register_frame_info_table_bases_internal (void *begin,
+ struct object *ob,
+ void *tbase, void *dbase);
+void *__deregister_frame_info_bases_internal (void *begin);
+
#else
#ifdef __GTHREAD_MUTEX_INIT
@@ -120,11 +127,12 @@ __register_frame_info_bases (void *begin, struct object *ob,
__gthread_mutex_unlock (&object_mutex);
}
+INTDEF(__register_frame_info_bases)
void
__register_frame_info (void *begin, struct object *ob)
{
- __register_frame_info_bases (begin, ob, 0, 0);
+ INTUSE(__register_frame_info_bases) (begin, ob, 0, 0);
}
void
@@ -137,7 +145,7 @@ __register_frame (void *begin)
return;
ob = (struct object *) malloc (sizeof (struct object));
- __register_frame_info (begin, ob);
+ INTUSE(__register_frame_info_bases) (begin, ob, 0, 0);
}
/* Similar, but BEGIN is actually a pointer to a table of unwind entries
@@ -164,18 +172,19 @@ __register_frame_info_table_bases (void *begin, struct object *ob,
__gthread_mutex_unlock (&object_mutex);
}
+INTDEF(__register_frame_info_table_bases)
void
__register_frame_info_table (void *begin, struct object *ob)
{
- __register_frame_info_table_bases (begin, ob, 0, 0);
+ INTUSE(__register_frame_info_table_bases) (begin, ob, 0, 0);
}
void
__register_frame_table (void *begin)
{
struct object *ob = (struct object *) malloc (sizeof (struct object));
- __register_frame_info_table (begin, ob);
+ INTUSE(__register_frame_info_table_bases) (begin, ob, 0, 0);
}
/* Called from crtbegin.o to deregister the unwind info for an object. */
@@ -239,11 +248,12 @@ __deregister_frame_info_bases (void *begin)
__gthread_mutex_unlock (&object_mutex);
return (void *) ob;
}
+INTDEF(__deregister_frame_info_bases)
void *
__deregister_frame_info (void *begin)
{
- return __deregister_frame_info_bases (begin);
+ return INTUSE(__deregister_frame_info_bases) (begin);
}
void
@@ -251,7 +261,7 @@ __deregister_frame (void *begin)
{
/* If .eh_frame is empty, we haven't registered. */
if (*(uword *)begin != 0)
- free (__deregister_frame_info (begin));
+ free (INTUSE(__deregister_frame_info_bases) (begin));
}
diff --git a/sysdeps/mach/hurd/bind.c b/sysdeps/mach/hurd/bind.c
index 8b08a6bafa..a42b78ac07 100644
--- a/sysdeps/mach/hurd/bind.c
+++ b/sysdeps/mach/hurd/bind.c
@@ -30,7 +30,7 @@
/* Give the socket FD the local address ADDR (which is LEN bytes long). */
int
-bind (int fd, __CONST_SOCKADDR_ARG addrarg, socklen_t len)
+__bind (int fd, __CONST_SOCKADDR_ARG addrarg, socklen_t len)
{
addr_port_t aport;
error_t err;
@@ -121,3 +121,5 @@ bind (int fd, __CONST_SOCKADDR_ARG addrarg, socklen_t len)
return err ? __hurd_dfail (fd, err) : 0;
}
+
+weak_alias (__bind, bind)
diff --git a/sysdeps/mach/hurd/getsockname.c b/sysdeps/mach/hurd/getsockname.c
index 7c81ed52fd..dd0dddaed9 100644
--- a/sysdeps/mach/hurd/getsockname.c
+++ b/sysdeps/mach/hurd/getsockname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1994, 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1994, 1997, 1999, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,7 +25,7 @@
/* Put the local address of FD into *ADDR and its length in *LEN. */
int
-getsockname (fd, addrarg, len)
+__getsockname (fd, addrarg, len)
int fd;
__SOCKADDR_ARG addrarg;
socklen_t *len;
@@ -59,3 +59,5 @@ getsockname (fd, addrarg, len)
return 0;
}
+
+weak_alias (__getsockname, getsockname)
diff --git a/sysdeps/mach/hurd/listen.c b/sysdeps/mach/hurd/listen.c
index 46cb68af54..8ee2650bea 100644
--- a/sysdeps/mach/hurd/listen.c
+++ b/sysdeps/mach/hurd/listen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1994, 1997, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1994, 1997, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,9 +26,8 @@
N connection requests will be queued before further requests are refused.
Returns 0 on success, -1 for errors. */
-/* XXX should be __listen ? */
int
-listen (fd, n)
+__listen (fd, n)
int fd;
int n;
{
@@ -37,3 +36,5 @@ listen (fd, n)
return __hurd_dfail (fd, err);
return 0;
}
+
+weak_alias (__listen, listen)
diff --git a/sysdeps/mach/hurd/recvfrom.c b/sysdeps/mach/hurd/recvfrom.c
index 8816ad44fc..d5c73f4441 100644
--- a/sysdeps/mach/hurd/recvfrom.c
+++ b/sysdeps/mach/hurd/recvfrom.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1997, 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1997, 1999, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,7 +28,7 @@
the sender, and store the actual size of the address in *ADDR_LEN.
Returns the number of bytes read or -1 for errors. */
ssize_t
-recvfrom (fd, buf, n, flags, addrarg, addr_len)
+__recvfrom (fd, buf, n, flags, addrarg, addr_len)
int fd;
void *buf;
size_t n;
@@ -103,3 +103,5 @@ recvfrom (fd, buf, n, flags, addrarg, addr_len)
return nread;
}
+
+weak_alias (__recvfrom, recvfrom)
diff --git a/sysdeps/mach/hurd/recvmsg.c b/sysdeps/mach/hurd/recvmsg.c
index 73cd03c6d4..2878ef68c7 100644
--- a/sysdeps/mach/hurd/recvmsg.c
+++ b/sysdeps/mach/hurd/recvmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -142,3 +142,4 @@ __libc_recvmsg (int fd, struct msghdr *message, int flags)
}
weak_alias (__libc_recvmsg, recvmsg)
+weak_alias (__libc_recvmsg, __recvmsg)
diff --git a/sysdeps/mach/hurd/sendmsg.c b/sysdeps/mach/hurd/sendmsg.c
index c55b559e29..9464d3f6c1 100644
--- a/sysdeps/mach/hurd/sendmsg.c
+++ b/sysdeps/mach/hurd/sendmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -150,3 +150,4 @@ __libc_sendmsg (int fd, const struct msghdr *message, int flags)
}
weak_alias (__libc_sendmsg, sendmsg)
+weak_alias (__libc_sendmsg, __sendmsg)
diff --git a/sysdeps/mach/hurd/sendto.c b/sysdeps/mach/hurd/sendto.c
index 50bb77172c..0a6912a3b7 100644
--- a/sysdeps/mach/hurd/sendto.c
+++ b/sysdeps/mach/hurd/sendto.c
@@ -27,12 +27,12 @@
/* Send N bytes of BUF on socket FD to peer at address ADDR (which is
ADDR_LEN bytes long). Returns the number sent, or -1 for errors. */
ssize_t
-sendto (int fd,
- const void *buf,
- size_t n,
- int flags,
- const struct sockaddr_un *addr,
- socklen_t addr_len)
+__sendto (int fd,
+ const void *buf,
+ size_t n,
+ int flags,
+ const struct sockaddr_un *addr,
+ socklen_t addr_len)
{
addr_port_t aport;
error_t err;
@@ -81,3 +81,5 @@ sendto (int fd,
return err ? __hurd_dfail (fd, err) : wrote;
}
+
+weak_alias (__sendto, sendto)
diff --git a/sysdeps/mach/hurd/setsockopt.c b/sysdeps/mach/hurd/setsockopt.c
index 9875e96311..8ca7f0c724 100644
--- a/sysdeps/mach/hurd/setsockopt.c
+++ b/sysdeps/mach/hurd/setsockopt.c
@@ -25,13 +25,12 @@
/* Set socket FD's option OPTNAME at protocol level LEVEL
to *OPTVAL (which is OPTLEN bytes long).
Returns 0 on success, -1 for errors. */
-/* XXX __setsockopt ? */
int
-setsockopt (int fd,
- int level,
- int optname,
- const void *optval,
- socklen_t optlen)
+__setsockopt (int fd,
+ int level,
+ int optname,
+ const void *optval,
+ socklen_t optlen)
{
error_t err = HURD_DPORT_USE (fd, __socket_setopt (port,
level, optname,
@@ -40,3 +39,5 @@ setsockopt (int fd,
return __hurd_dfail (fd, err);
return 0;
}
+
+weak_alias (__setsockopt, setsockopt)
diff --git a/sysdeps/unix/inet/syscalls.list b/sysdeps/unix/inet/syscalls.list
index 5a02f95f87..d01431d843 100644
--- a/sysdeps/unix/inet/syscalls.list
+++ b/sysdeps/unix/inet/syscalls.list
@@ -1,23 +1,23 @@
# File name Caller Syscall name # args Strong name Weak names
accept - accept i:iBN __libc_accept accept
-bind - bind i:ipi bind
+bind - bind i:ipi __bind bind
connect - connect i:ipi __libc_connect __connect connect
gethostid - gethostid i: gethostid
gethostname - gethostname i:bn __gethostname gethostname
getpeername - getpeername i:ibN getpeername
getsockname - getsockname i:ibN getsockname
getsockopt - getsockopt i:iiiBN getsockopt
-listen - listen i:ii listen
+listen - listen i:ii __listen listen
recv - recv i:ibni __libc_recv recv
-recvfrom - recvfrom i:ibniBN __libc_recvfrom recvfrom
-recvmsg - recvmsg i:ipi __libc_recvmsg recvmsg
+recvfrom - recvfrom i:ibniBN __libc_recvfrom __recvfrom recvfrom
+recvmsg - recvmsg i:ipi __libc_recvmsg __recvmsg recvmsg
send - send i:ibni __libc_send __send send
-sendmsg - sendmsg i:ipi __libc_sendmsg sendmsg
-sendto - sendto i:ibnibn __libc_sendto sendto
+sendmsg - sendmsg i:ipi __libc_sendmsg __sendmsg sendmsg
+sendto - sendto i:ibnibn __libc_sendto __sendto sendto
sethostid - sethostid i:i sethostid
sethostname - sethostname i:pi sethostname
-setsockopt - setsockopt i:iiibn setsockopt
+setsockopt - setsockopt i:iiibn setsockopt __setsockopt
shutdown - shutdown i:ii shutdown
socket - socket i:iii socket
socketpair - socketpair i:iiif socketpair
diff --git a/sysdeps/unix/sysv/aix/getsockname.c b/sysdeps/unix/sysv/aix/getsockname.c
index 822f9e98cd..ac1bf34fcb 100644
--- a/sysdeps/unix/sysv/aix/getsockname.c
+++ b/sysdeps/unix/sysv/aix/getsockname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,9 @@
extern int ngetsockname (int s, void *uap_asa, int *uap_alen);
int
-getsockname (int fd, __SOCKADDR_ARG addr, socklen_t *len)
+__getsockname (int fd, __SOCKADDR_ARG addr, socklen_t *len)
{
return ngetsockname (fd, addr.__sockaddr__, len);
}
+
+weak_alias (__getsockname, getsockname)
diff --git a/sysdeps/unix/sysv/aix/recvfrom.c b/sysdeps/unix/sysv/aix/recvfrom.c
index 08264288d1..08ff1113f4 100644
--- a/sysdeps/unix/sysv/aix/recvfrom.c
+++ b/sysdeps/unix/sysv/aix/recvfrom.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,8 +22,10 @@ extern ssize_t nrecvfrom (int s, void *uap_buf, size_t len, int flags,
void *uap_from, socklen_t *uap_fromlenaddr);
ssize_t
-recvfrom (int fd, void *buf, size_t n, int flags, __SOCKADDR_ARG addr,
- socklen_t *addr_len)
+__recvfrom (int fd, void *buf, size_t n, int flags, __SOCKADDR_ARG addr,
+ socklen_t *addr_len)
{
return nrecvfrom (fd, buf, n, flags, addr.__sockaddr__, addr_len);
}
+
+weak_alias (__recvfrom, recvfrom)
diff --git a/sysdeps/unix/sysv/aix/recvmsg.c b/sysdeps/unix/sysv/aix/recvmsg.c
index ea5af3557c..201c26741c 100644
--- a/sysdeps/unix/sysv/aix/recvmsg.c
+++ b/sysdeps/unix/sysv/aix/recvmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,9 @@
extern ssize_t nrecvmsg (int s, struct msghdr *uap_msg, int flags);
ssize_t
-recvmsg (int fd, struct msghdr *message, int flags)
+__recvmsg (int fd, struct msghdr *message, int flags)
{
return nrecvmsg (fd, message, flags);
}
+
+weak_alias (__recvmsg, recvmsg)
diff --git a/sysdeps/unix/sysv/aix/sendmsg.c b/sysdeps/unix/sysv/aix/sendmsg.c
index 054d374393..5b1baf63a5 100644
--- a/sysdeps/unix/sysv/aix/sendmsg.c
+++ b/sysdeps/unix/sysv/aix/sendmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,10 @@
extern int nsendmsg (int s, const void *uap_msg, int flags);
ssize_t
-sendmsg (int fd, const struct msghdr *message, int flags)
+__sendmsg (int fd, const struct msghdr *message, int flags)
{
return nsendmsg (fd, message, flags);
}
+
+weak_alias (__sendmsg, sendmsg)
+
diff --git a/sysdeps/unix/sysv/linux/alpha/syscalls.list b/sysdeps/unix/sysv/linux/alpha/syscalls.list
index eb64186134..3dc07341e3 100644
--- a/sysdeps/unix/sysv/linux/alpha/syscalls.list
+++ b/sysdeps/unix/sysv/linux/alpha/syscalls.list
@@ -43,10 +43,10 @@ getsockopt - getsockopt 5 __getsockopt getsockopt
listen - listen 2 __listen listen
recv - recv 4 __libc_recv __recv recv
recvfrom - recvfrom 6 __libc_recvfrom __recvfrom recvfrom
-recvmsg - recvmsg 3 __libc_recvmsg recvmsg
+recvmsg - recvmsg 3 __libc_recvmsg __recvmsg recvmsg
ptrace - ptrace 4 __ptrace ptrace
send - send 4 __libc_send __send send
-sendmsg - sendmsg 3 __libc_sendmsg sendmsg
+sendmsg - sendmsg 3 __libc_sendmsg __sendmsg sendmsg
sendto - sendto 6 __libc_sendto __sendto sendto
setsockopt - setsockopt 5 __setsockopt setsockopt
shutdown - shutdown 2 __shutdown shutdown
diff --git a/sysdeps/unix/sysv/linux/bind.S b/sysdeps/unix/sysv/linux/bind.S
index 25ff7ecbfd..7719ad0be8 100644
--- a/sysdeps/unix/sysv/linux/bind.S
+++ b/sysdeps/unix/sysv/linux/bind.S
@@ -2,3 +2,4 @@
#define NARGS 3
#define NO_WEAK_ALIAS 1
#include <socket.S>
+weak_alias (bind, __bind)
diff --git a/sysdeps/unix/sysv/linux/getsockname.S b/sysdeps/unix/sysv/linux/getsockname.S
index 31d37a4f0a..9ea371ff6e 100644
--- a/sysdeps/unix/sysv/linux/getsockname.S
+++ b/sysdeps/unix/sysv/linux/getsockname.S
@@ -2,3 +2,4 @@
#define NARGS 3
#define NO_WEAK_ALIAS 1
#include <socket.S>
+weak_alias (getsockname, __getsockname)
diff --git a/sysdeps/unix/sysv/linux/hppa/syscalls.list b/sysdeps/unix/sysv/linux/hppa/syscalls.list
index 2c7a63917d..1c7a20d241 100644
--- a/sysdeps/unix/sysv/linux/hppa/syscalls.list
+++ b/sysdeps/unix/sysv/linux/hppa/syscalls.list
@@ -23,9 +23,9 @@ getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
listen - listen i:ii __listen listen
recv - recv i:ibni __libc_recv __recv recv
recvfrom - recvfrom i:ibniBN __libc_recvfrom __recvfrom recvfrom
-recvmsg - recvmsg i:ipi __libc_recvmsg recvmsg
+recvmsg - recvmsg i:ipi __libc_recvmsg __recvmsg recvmsg
send - send i:ibni __libc_send __send send
-sendmsg - sendmsg i:ipi __libc_sendmsg sendmsg
+sendmsg - sendmsg i:ipi __libc_sendmsg __sendmsg sendmsg
sendto - sendto i:ibnibn __libc_sendto __sendto sendto
setsockopt - setsockopt i:iiibn __setsockopt setsockopt
shutdown - shutdown i:ii __shutdown shutdown
diff --git a/sysdeps/unix/sysv/linux/ia64/syscalls.list b/sysdeps/unix/sysv/linux/ia64/syscalls.list
index f2bd5c0a81..15a93df618 100644
--- a/sysdeps/unix/sysv/linux/ia64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/ia64/syscalls.list
@@ -39,9 +39,9 @@ getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
listen - listen i:ii __listen listen
recv - recv i:ibni __libc_recv __recv recv
recvfrom - recvfrom i:ibniBN __libc_recvfrom __recvfrom recvfrom
-recvmsg - recvmsg i:ipi __libc_recvmsg recvmsg
+recvmsg - recvmsg i:ipi __libc_recvmsg __recvmsg recvmsg
send - send i:ibni __libc_send __send send
-sendmsg - sendmsg i:ipi __libc_sendmsg sendmsg
+sendmsg - sendmsg i:ipi __libc_sendmsg __sendmsg sendmsg
sendto - sendto i:ibnibn __libc_sendto __sendto sendto
setsockopt - setsockopt i:iiibn __setsockopt setsockopt
shutdown - shutdown i:ii __shutdown shutdown
diff --git a/sysdeps/unix/sysv/linux/listen.S b/sysdeps/unix/sysv/linux/listen.S
index 115bf2b2d0..bed6a05f25 100644
--- a/sysdeps/unix/sysv/linux/listen.S
+++ b/sysdeps/unix/sysv/linux/listen.S
@@ -2,3 +2,4 @@
#define NARGS 2
#define NO_WEAK_ALIAS 1
#include <socket.S>
+weak_alias (listen, __listen)
diff --git a/sysdeps/unix/sysv/linux/recvfrom.S b/sysdeps/unix/sysv/linux/recvfrom.S
index 7d0e2b0ea8..93a3110d0a 100644
--- a/sysdeps/unix/sysv/linux/recvfrom.S
+++ b/sysdeps/unix/sysv/linux/recvfrom.S
@@ -2,3 +2,4 @@
#define __socket __libc_recvfrom
#define NARGS 6
#include <socket.S>
+weak_alias (__libc_recvfrom, __recvfrom)
diff --git a/sysdeps/unix/sysv/linux/recvmsg.S b/sysdeps/unix/sysv/linux/recvmsg.S
index b4125d2caa..98be36be5b 100644
--- a/sysdeps/unix/sysv/linux/recvmsg.S
+++ b/sysdeps/unix/sysv/linux/recvmsg.S
@@ -2,3 +2,4 @@
#define __socket __libc_recvmsg
#define NARGS 3
#include <socket.S>
+weak_alias (__libc_recvmsg, __recvmsg)
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list b/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
index 1dbd61f2df..64f52cc02a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
@@ -34,9 +34,9 @@ getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
listen - listen i:ii __listen listen
recv - recv i:ibni __libc_recv __recv recv
recvfrom - recvfrom i:ibniBN __libc_recvfrom __recvfrom recvfrom
-recvmsg - recvmsg i:ipi __libc_recvmsg recvmsg
+recvmsg - recvmsg i:ipi __libc_recvmsg __recvmsg recvmsg
send - send i:ibni __libc_send __send send
-sendmsg - sendmsg i:ipi __libc_sendmsg sendmsg
+sendmsg - sendmsg i:ipi __libc_sendmsg __sendmsg sendmsg
sendto - sendto i:ibnibn __libc_sendto __sendto sendto
setsockopt - setsockopt i:iiibn __setsockopt setsockopt
shutdown - shutdown i:ii __shutdown shutdown
diff --git a/sysdeps/unix/sysv/linux/sendmsg.S b/sysdeps/unix/sysv/linux/sendmsg.S
index 0defce9f9e..c01d9b68e7 100644
--- a/sysdeps/unix/sysv/linux/sendmsg.S
+++ b/sysdeps/unix/sysv/linux/sendmsg.S
@@ -2,3 +2,4 @@
#define __socket __libc_sendmsg
#define NARGS 3
#include <socket.S>
+weak_alias (__libc_sendmsg, __sendmsg)
diff --git a/sysdeps/unix/sysv/linux/sendto.S b/sysdeps/unix/sysv/linux/sendto.S
index f0acb88465..8717b2bac1 100644
--- a/sysdeps/unix/sysv/linux/sendto.S
+++ b/sysdeps/unix/sysv/linux/sendto.S
@@ -2,3 +2,4 @@
#define __socket __libc_sendto
#define NARGS 6
#include <socket.S>
+weak_alias (__libc_sendto, __sendto)
diff --git a/sysdeps/unix/sysv/linux/setsockopt.S b/sysdeps/unix/sysv/linux/setsockopt.S
index 09d9109be2..4e40ccba57 100644
--- a/sysdeps/unix/sysv/linux/setsockopt.S
+++ b/sysdeps/unix/sysv/linux/setsockopt.S
@@ -2,3 +2,4 @@
#define NARGS 5
#define NO_WEAK_ALIAS 1
#include <socket.S>
+weak_alias (setsockopt, __setsockopt)
diff --git a/sysdeps/unix/sysv/linux/x86_64/syscalls.list b/sysdeps/unix/sysv/linux/x86_64/syscalls.list
index 4d9f75f7b7..dcb1a090d7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/x86_64/syscalls.list
@@ -38,8 +38,8 @@ getsockname - getsockname i:ipp __getsockname getsockname
getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
listen - listen i:ii __listen listen
recvfrom - recvfrom i:ibniBN __libc_recvfrom __recvfrom recvfrom
-recvmsg - recvmsg i:ipi __libc_recvmsg recvmsg
-sendmsg - sendmsg i:ipi __libc_sendmsg sendmsg
+recvmsg - recvmsg i:ipi __libc_recvmsg __recvmsg recvmsg
+sendmsg - sendmsg i:ipi __libc_sendmsg __sendmsg sendmsg
sendto - sendto i:ibnibn __libc_sendto __sendto sendto
setsockopt - setsockopt i:iiibn __setsockopt setsockopt
shutdown - shutdown i:ii __shutdown shutdown