diff options
72 files changed, 636 insertions, 199 deletions
@@ -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 |