summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2006-11-28 11:18:19 +0000
committerJakub Jelinek <jakub@redhat.com>2006-11-28 11:18:19 +0000
commitf12ca311c01cba335a9e4c866a0c966d2efd41a2 (patch)
tree0740f05d6deda7041887e5dfa9b981f280ff8f0c
parent9a40233fa0d4c587880f5d3d3f42813ec6e6ae32 (diff)
Updated to fedora-glibc-20061128T1037cvs/fedora-glibc-2_5_90-8
-rw-r--r--ChangeLog21
-rw-r--r--fedora/branch.mk4
-rw-r--r--fedora/glibc.spec.in15
-rw-r--r--nptl/Makefile3
-rw-r--r--resolv/mapv4v6addr.h10
-rw-r--r--sunrpc/svc_run.c35
-rw-r--r--sysdeps/unix/sysv/linux/i386/getgroups.c5
7 files changed, 70 insertions, 23 deletions
diff --git a/ChangeLog b/ChangeLog
index 966a3581df..2ade0a332c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+2006-11-27 Jakub Jelinek <jakub@redhat.com>
+
+ [BZ #3559]
+ * sunrpc/svc_run.c (svc_run): Fail instead of segfaulting if
+ malloc crashed. Don't allocate memory unnecessarily in each
+ loop.
+
+2006-10-21 Jakub Jelinek <jakub@redhat.com>
+
+ * resolv/mapv4v6addr.h (map_v4v6_address): Fix last change.
+
+2006-11-20 Ulrich Drepper <drepper@redhat.com>
+
+ * resolv/mapv4v6addr.h (map_v4v6_address): Optimize a bit.
+
+2006-11-18 Bruno Haible <bruno@clisp.org>
+
+ * sysdeps/unix/sysv/linux/i386/getgroups.c (__getgroups): Invoke
+ __sysconf only after having tried to call getgroups32.
+
2006-11-19 Ulrich Drepper <drepper@redhat.com>
* nss/nss_files/files-hosts.c (LINE_PARSER): Support IPv6-style
@@ -15,6 +35,7 @@
* po/nl.po: Update from translation team.
* timezone/zdump.c: Redo fix for BZ #3137.
+
2006-11-14 Jakub Jelinek <jakub@redhat.com>
* nss/nss_files/files-alias.c (get_next_alias): Set line back
diff --git a/fedora/branch.mk b/fedora/branch.mk
index 2896206bcb..f3e425aa79 100644
--- a/fedora/branch.mk
+++ b/fedora/branch.mk
@@ -3,5 +3,5 @@ glibc-branch := fedora
glibc-base := HEAD
DIST_BRANCH := devel
COLLECTION := dist-fc4
-fedora-sync-date := 2006-11-20 10:00 UTC
-fedora-sync-tag := fedora-glibc-20061120T1000
+fedora-sync-date := 2006-11-28 10:37 UTC
+fedora-sync-tag := fedora-glibc-20061128T1037
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index bd8a7c3120..8ba2ea5911 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -1,4 +1,4 @@
-%define glibcrelease 7
+%define glibcrelease 8
%define auxarches i586 i686 athlon sparcv9 alphaev6
%define xenarches i686 athlon
%ifarch %{xenarches}
@@ -823,7 +823,7 @@ GCC="gcc -m64"
GXX="g++ -m64"
%endif
-BuildFlags="$BuildFlags -DNDEBUG=1"
+BuildFlags="$BuildFlags -DNDEBUG=1 -fasynchronous-unwind-tables"
EnableKernel="--enable-kernel=%{enablekernel}"
echo "$GCC" > Gcc
AddOns=`echo */configure | sed -e 's!/configure!!g;s!\(linuxthreads\|nptl\|rtkaio\|powerpc-cpu\)\( \|$\)!!g;s! \+$!!;s! !,!g;s!^!,!;/^,\*$/d'`
@@ -1155,6 +1155,11 @@ cp -f $RPM_BUILD_ROOT%{_prefix}/share/zoneinfo/US/Eastern $RPM_BUILD_ROOT/etc/lo
rm -rf $RPM_BUILD_ROOT%{_prefix}/share/zoneinfo
+# Make sure %config files have the same timestamp
+touch -r fedora/glibc.spec.in $RPM_BUILD_ROOT/etc/ld.so.conf
+touch -r timezone/northamerica $RPM_BUILD_ROOT/etc/localtime
+touch -r sunrpc/etc.rpc $RPM_BUILD_ROOT/etc/rpc
+
cd fedora
$GCC -Os -static -o build-locale-archive build-locale-archive.c \
../build-%{nptl_target_cpu}-linuxnptl/locale/locarchive.o \
@@ -1529,6 +1534,12 @@ rm -f *.filelist*
%endif
%changelog
+* Tue Nov 28 2006 Jakub Jelinek <jakub@redhat.com> 2.5.90-8
+- fix svc_run (#216834, BZ#3559)
+- add -fasynchronous-unwind-tables to CFLAGS (#216518)
+- make sure there is consistent timestamp for /etc/ld.so.conf,
+ /etc/localtime and /etc/rpc between multilib glibc rpms
+
* Mon Nov 20 2006 Jakub Jelinek <jakub@redhat.com> 2.5.90-7
- handle IPv6 addresses in /etc/hosts that are mappable to
IPv4 addresses in IPv4 host lookups (#215283)
diff --git a/nptl/Makefile b/nptl/Makefile
index ef12a80689..8c1f74e2bb 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -340,7 +340,8 @@ endif
extra-objs += $(crti-objs) $(crtn-objs)
omit-deps += crti crtn
-CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
+CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \
+ -fno-asynchronous-unwind-tables
endif
CFLAGS-flockfile.c = -D_IO_MTSAFE_IO
diff --git a/resolv/mapv4v6addr.h b/resolv/mapv4v6addr.h
index bc3290f162..7f85f7d5e3 100644
--- a/resolv/mapv4v6addr.h
+++ b/resolv/mapv4v6addr.h
@@ -56,16 +56,14 @@ static void
map_v4v6_address (const char *src, char *dst)
{
u_char *p = (u_char *) dst;
- char tmp[INADDRSZ];
int i;
- /* Stash a temporary copy so our caller can update in place. */
- memcpy (tmp, src, INADDRSZ);
+ /* Move the IPv4 part to the right position. */
+ memcpy (dst + 12, src, INADDRSZ);
+
/* Mark this ipv6 addr as a mapped ipv4. */
for (i = 0; i < 10; i++)
*p++ = 0x00;
*p++ = 0xff;
- *p++ = 0xff;
- /* Retrieve the saved copy and we're done. */
- memcpy ((void *) p, tmp, INADDRSZ);
+ *p = 0xff;
}
diff --git a/sunrpc/svc_run.c b/sunrpc/svc_run.c
index 017910b453..feb1bf958e 100644
--- a/sunrpc/svc_run.c
+++ b/sunrpc/svc_run.c
@@ -51,36 +51,51 @@ void
svc_run (void)
{
int i;
+ struct pollfd *my_pollfd = NULL;
+ int last_max_pollfd = 0;
for (;;)
{
- struct pollfd *my_pollfd;
+ int max_pollfd = svc_max_pollfd;
+ if (max_pollfd == 0 && svc_pollfd == NULL)
+ break;
- if (svc_max_pollfd == 0 && svc_pollfd == NULL)
- return;
+ if (last_max_pollfd != max_pollfd)
+ {
+ struct pollfd *new_pollfd
+ = realloc (my_pollfd, sizeof (struct pollfd) * max_pollfd);
+
+ if (new_pollfd == NULL)
+ {
+ perror (_("svc_run: - out of memory"));
+ break;
+ }
+
+ last_max_pollfd = max_pollfd;
+ }
- my_pollfd = malloc (sizeof (struct pollfd) * svc_max_pollfd);
- for (i = 0; i < svc_max_pollfd; ++i)
+ for (i = 0; i < max_pollfd; ++i)
{
my_pollfd[i].fd = svc_pollfd[i].fd;
my_pollfd[i].events = svc_pollfd[i].events;
my_pollfd[i].revents = 0;
}
- switch (i = __poll (my_pollfd, svc_max_pollfd, -1))
+ switch (i = __poll (my_pollfd, max_pollfd, -1))
{
case -1:
- free (my_pollfd);
if (errno == EINTR)
continue;
perror (_("svc_run: - poll failed"));
- return;
+ break;
case 0:
- free (my_pollfd);
continue;
default:
INTUSE(svc_getreq_poll) (my_pollfd, i);
- free (my_pollfd);
+ continue;
}
+ break;
}
+
+ free (my_pollfd);
}
diff --git a/sysdeps/unix/sysv/linux/i386/getgroups.c b/sysdeps/unix/sysv/linux/i386/getgroups.c
index b7a0a4efd4..f69baf943b 100644
--- a/sysdeps/unix/sysv/linux/i386/getgroups.c
+++ b/sysdeps/unix/sysv/linux/i386/getgroups.c
@@ -52,8 +52,6 @@ __getgroups (int n, gid_t *groups)
}
else
{
- int i, ngids;
- __kernel_gid_t kernel_groups[n = MIN (n, __sysconf (_SC_NGROUPS_MAX))];
# ifdef __NR_getgroups32
if (__libc_missing_32bit_uids <= 0)
{
@@ -69,6 +67,9 @@ __getgroups (int n, gid_t *groups)
}
# endif /* __NR_getgroups32 */
+ int i, ngids;
+ __kernel_gid_t kernel_groups[n = MIN (n, __sysconf (_SC_NGROUPS_MAX))];
+
ngids = INLINE_SYSCALL (getgroups, 2, n, CHECK_N (kernel_groups, n));
if (n != 0 && ngids > 0)
for (i = 0; i < ngids; i++)