+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
* 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
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
-%define glibcrelease 7
+%define glibcrelease 8
%define auxarches i586 i686 athlon sparcv9 alphaev6
%define xenarches i686 athlon
%ifarch %{xenarches}
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'`
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 \
%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)
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
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;
}
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);
}
}
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)
{
}
# 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++)