This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Pull request: pasky/fixes
- From: Petr Baudis <pasky at suse dot cz>
- To: drepper at redhat dot com
- Cc: libc-alpha at sourceware dot org, matz at suse dot de, vapier at gentoo dot org
- Date: Sun, 22 Aug 2010 19:16:54 +0200
- Subject: Pull request: pasky/fixes
Hello!
The following changes on top of pasky/fixes-overdue:
Default to localhost when no nameservers are specified in resolv.conf (2010-08-22 15:50:48 +0200)
are available in the git repository at:
git://sources.redhat.com/git/glibc.git pasky/fixes
Please pull them to the master branch.
commit 0136375f6537677ee870e34403f26c26fba375de [BZ #11589]
Author: Petr Baudis <pasky@ucw.cz>
Date: Sun Aug 22 16:44:15 2010 +0200
Fix jn() precision problems around zero points of j0()
There appears to be a really nasty bug in jn() from fdlibm, which is
the foundation for most libm implementations (including glibc libm).
The zeroth-order j0() and first-order j1() cylindrical Bessel functions
are used to recursively generate the jn() value, but only the zeroth-order
Bessel function is used to normalize it; however, each of the functions
gets highly imprecise (approaching "bogus") near its zero point, making
the jn() value itself bogus.
But in fact, the zero points of j0() and j1() never coincide, thus j1()
should be used in case it is more precise than j0(). (That is, simply
when its value is further from zero.)
As an example, 2.4048255576957729_8 is the first zero of j0().
The proper value as calculated by Mathematica is 0.19899990535769...
However, jn() returns -inf on 64-bit arch, or 0.185007 on 32-bit arch.
With the proposed patch below, the returned value is 0.199000.
The fix is based on work by Steve Kargl and Tobias Burnus.
commit 1ba3f93384dbb4c1e0ac675d92542c41da843650 [BZ #11610]
Author: Michael Matz <matz@suse.de>
Date: Sun Aug 22 16:53:24 2010 +0200
Add proper unwind information for x86_64 _fini
It is impossible to reliably unwind the stack above _fini() on x86_64 since no
unwind information is provided for it and it modifies a stack register. This
matters for gdb backtracing - if a process crashes within a destructor, it can
frequently be essential to look at why the program began terminating in the
first place.
commit ec6a8652dc7c2cd164e659d6a74881b5370ed2cb [BZ #10085]
Author: Petr Baudis <pasky@ucw.cz>
Date: Sun Aug 22 16:37:10 2010 +0200
Fix multiple nss_compat initgroups() bugs
Compat initgroups() is completely broken; the code will always set
skip_initgroups_dyn to true, so initgroups() will never be actually
called, but due to the nature of the code, setgrent() won't be called
either - thus, subsequent invocations of initgroups() will not return
the NIS group list anymore.
This is a simple patch that makes sure skip_initgroups_dyn is set only
in case initgroups is not available; it also attempts to handle the
unavailability of other NSS interfaces better.
commit 779e40496f95ab403d7e6239539bfa4cbda6b269 [BZ #11929]
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Aug 22 17:32:46 2010 +0200
Make sure GLRO(dl_pagesize) is initialized properly on all archs
After a recent change to __getpagesize(), GLRO(dl_pagesize) is required
to be set. But that is only done at app init, and shared libraries
dlopened at runtime by static apps dont have their GLRO() state
initialized from the linux auxvec.
ia64/mips have long had similar behavior with their __getpagesize(), but
they have a DL_STATIC_INIT hook to sync some of the static GLRO() fields
to the dynamic GLRO() fields. Now that common linux code requires
GLRO(dl_pagesize) to be set, common linux code now needs that
DL_STATIC_INIT hook.
This patch takes the ia64 logic and promotes it to common code.
commit 77c048e92ddc0b9337403861c05033fc7a55c575 [BZ #11928]
Author: Petr Baudis <pasky@ucw.cz>
Date: Sun Aug 22 16:15:17 2010 +0200
Make nscd load /etc/host.conf options in aicache
This patch makes sure _res_hconf is initialized before resolving is being done.
However, this would not be enough since nscd has its own _res_hconf due to
nscd/res_hconf.c; _res_hconf_init() would work on different _res_hconf instance
than the NSS routines. We just need to make sure nscd and glibc share the same
_res_hconf instance - this should not be a problem since users should run
matching versions of glibc and nscd anyway.
commit db889afe874595e03e8afec6ee4b21c5207486f5
Author: Petr Baudis <pasky@ucw.cz>
Date: Sun Aug 22 16:09:22 2010 +0200
Update sunrpc licence also in LICENSES
Summary of changes:
ChangeLog | 44 +++++++++++++++++++++
LICENSES | 50 +++++++++++++-----------
nis/nss_compat/compat-initgroups.c | 19 +++++----
nscd/aicache.c | 3 +
resolv/res_hconf.c | 2 +
sysdeps/ieee754/dbl-64/e_jn.c | 11 +++++-
sysdeps/ieee754/flt-32/e_jnf.c | 11 +++++-
sysdeps/ieee754/ldbl-128/e_jnl.c | 11 +++++-
sysdeps/ieee754/ldbl-128ibm/e_jnl.c | 11 +++++-
sysdeps/ieee754/ldbl-96/e_jnl.c | 11 +++++-
sysdeps/unix/sysv/linux/Makefile | 4 +-
sysdeps/unix/sysv/linux/{ia64 => }/dl-static.c | 4 +-
sysdeps/unix/sysv/linux/ia64/Makefile | 6 ---
sysdeps/unix/sysv/linux/ia64/getpagesize.c | 39 ------------------
sysdeps/unix/sysv/linux/ia64/ldsodefs.h | 33 ----------------
sysdeps/unix/sysv/linux/ldsodefs.h | 6 +++
sysdeps/x86_64/elf/initfini.c | 33 +++++++++++++++-
17 files changed, 180 insertions(+), 118 deletions(-)
rename sysdeps/unix/sysv/linux/{ia64 => }/dl-static.c (93%)
delete mode 100644 sysdeps/unix/sysv/linux/ia64/getpagesize.c
delete mode 100644 sysdeps/unix/sysv/linux/ia64/ldsodefs.h