diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-02-27 08:01:47 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-02-27 08:01:47 +0000 |
commit | d148ed257ab179a6a408bc1668e2effb447726bd (patch) | |
tree | dc1c20da057af92f4170187c6bbf0959a1afe1ea | |
parent | 695799feb3e640323ec86b469517f87ca16e99ff (diff) | |
download | glibc-d148ed257ab179a6a408bc1668e2effb447726bd.tar.gz glibc-d148ed257ab179a6a408bc1668e2effb447726bd.tar.xz glibc-d148ed257ab179a6a408bc1668e2effb447726bd.zip |
Update.
2003-02-27 Ulrich Drepper <drepper@redhat.com> * sunrpc/svc_udp.c (svcudp_recv): Remove all control messages except the PKTINFO. Reset interface in PKTINFO. * elf/elf.h: Add new R_PPC64_* relocs for TLS. * elf/tls-macros.h [__powerpc64__] (TLS_LE, TLS_IE, TLS_LD, TLS_GD): Define. * sysdeps/powerpc/elf/libc-start.c (__libc_start_main):
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | nptl/Makefile | 3 | ||||
-rw-r--r-- | nptl/tst-rwlock10.c | 21 | ||||
-rw-r--r-- | nptl/tst-rwlock11.c | 21 | ||||
-rw-r--r-- | nptl/tst-rwlock8.c | 6 | ||||
-rw-r--r-- | nptl/tst-rwlock9.c | 6 | ||||
-rw-r--r-- | sunrpc/svc_udp.c | 24 |
7 files changed, 86 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog index ff2f042abe..b39b087d49 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,14 +1,19 @@ +2003-02-27 Ulrich Drepper <drepper@redhat.com> + + * sunrpc/svc_udp.c (svcudp_recv): Remove all control messages + except the PKTINFO. Reset interface in PKTINFO. + 2003-02-25 Steven Munroe <sjmunroe@us.ibm.com> - * elf/elf.h: Add new R_PPC64_* relocs for TLS. - * elf/tls-macros.h [__powerpc64__] - (TLS_LE, TLS_IE, TLS_LD, TLS_GD): Define. + * elf/elf.h: Add new R_PPC64_* relocs for TLS. + * elf/tls-macros.h [__powerpc64__] (TLS_LE, TLS_IE, TLS_LD, TLS_GD): + Define. * sysdeps/powerpc/powerpc64/elf/configure.in: New file. * sysdeps/powerpc/powerpc64/elf/configure: New file (generated). * sysdeps/powerpc/powerpc64/dl-machine.h: Support new TLS relocs. * sysdeps/powerpc/powerpc64/dl-tls.h: New file. - * sysdeps/powerpc/elf/libc-start.c (__libc_start_main): + * sysdeps/powerpc/elf/libc-start.c (__libc_start_main): Do DL_SYSDEP_OSCHECK here, matching 2002-12-01 change to generic file. 2003-02-25 Andreas Jaeger <aj@suse.de> diff --git a/nptl/Makefile b/nptl/Makefile index 446103a6cc..46575452e2 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -132,7 +132,8 @@ tests = tst-attr1 tst-attr2 \ tst-cond1 tst-cond2 tst-cond3 tst-cond4 tst-cond5 tst-cond6 tst-cond7 \ tst-cond8 tst-cond9 \ tst-rwlock1 tst-rwlock2 tst-rwlock3 tst-rwlock4 tst-rwlock5 \ - tst-rwlock6 tst-rwlock7 tst-rwlock8 tst-rwlock9 \ + tst-rwlock6 tst-rwlock7 tst-rwlock8 tst-rwlock9 tst-rwlock10 \ + tst-rwlock11 \ tst-once1 tst-once2 tst-once3 tst-once4 \ tst-key1 tst-key2 tst-key3 tst-key4 \ tst-sem1 tst-sem2 tst-sem3 tst-sem4 tst-sem5 \ diff --git a/nptl/tst-rwlock10.c b/nptl/tst-rwlock10.c new file mode 100644 index 0000000000..43156eae66 --- /dev/null +++ b/nptl/tst-rwlock10.c @@ -0,0 +1,21 @@ +/* Test program for timedout read/write lock functions. + Copyright (C) 2003 Free Software Foundation, Inc. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2003. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#define INIT PTHREAD_RWLOCK_INITIALIZER +#include "tst-rwlock8.c" diff --git a/nptl/tst-rwlock11.c b/nptl/tst-rwlock11.c new file mode 100644 index 0000000000..ed9af7edc1 --- /dev/null +++ b/nptl/tst-rwlock11.c @@ -0,0 +1,21 @@ +/* Test program for timedout read/write lock functions. + Copyright (C) 2003 Free Software Foundation, Inc. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2003. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#define INIT PTHREAD_RWLOCK_INITIALIZER +#include "tst-rwlock9.c" diff --git a/nptl/tst-rwlock8.c b/nptl/tst-rwlock8.c index ad433bb4a5..7eeaea8852 100644 --- a/nptl/tst-rwlock8.c +++ b/nptl/tst-rwlock8.c @@ -33,7 +33,11 @@ #define DELAY 1000000 -static pthread_rwlock_t lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP; +#ifndef INIT +# define INIT PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP +#endif + +static pthread_rwlock_t lock = INIT; static void * diff --git a/nptl/tst-rwlock9.c b/nptl/tst-rwlock9.c index 5b6b3001b2..adbf67224d 100644 --- a/nptl/tst-rwlock9.c +++ b/nptl/tst-rwlock9.c @@ -35,7 +35,11 @@ #define TIMEOUT 1000000 #define DELAY 1000000 -static pthread_rwlock_t lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP; +#ifndef INIT +# define INIT PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP +#endif + +static pthread_rwlock_t lock = INIT; static void * diff --git a/sunrpc/svc_udp.c b/sunrpc/svc_udp.c index 0410e9c008..cb1d70558e 100644 --- a/sunrpc/svc_udp.c +++ b/sunrpc/svc_udp.c @@ -258,7 +258,29 @@ again: - sizeof (struct iovec) - sizeof (struct msghdr); rlen = __recvmsg (xprt->xp_sock, mesgp, 0); if (rlen >= 0) - len = mesgp->msg_namelen; + { + struct cmsghdr *cmsg; + len = mesgp->msg_namelen; + cmsg = CMSG_FIRSTHDR (mesgp); + if (cmsg == NULL + || CMSG_NXTHDR (mesgp, cmsg) != NULL + || cmsg->cmsg_level != SOL_IP + || cmsg->cmsg_type != IP_PKTINFO + || cmsg->cmsg_len < (sizeof (struct cmsghdr) + + sizeof (struct in_pktinfo))) + { + /* Not a simple IP_PKTINFO, ignore it. */ + mesgp->msg_control = NULL; + mesgp->msg_controllen = 0; + } + else + { + /* It was a simple IP_PKTIFO as we expected, discard the + interface field. */ + struct in_pktinfo *pkti = CMSG_DATA (cmsg); + pkti->ipi_ifindex = 0; + } + } } else #endif |