Ulrich Drepper [Tue, 10 Oct 2006 00:51:29 +0000 (00:51 +0000)]
Jakub Jelinek <jakub@redhat.com>
Implement reference counting of scope records.
* elf/dl-close.c (_dl_close): Remove all scopes from removed objects
from the list in objects which remain. Always allocate new scope
record.
* elf/dl-open.c (dl_open_worker): When growing array for scopes,
don't resize, allocate a new one.
* elf/dl-runtime.c: Update reference counters before using a scope
array.
* elf/dl-sym.c: Likewise.
* elf/dl-libc.c: Adjust for l_scope name change.
* elf/dl-load.c: Likewise.
* elf/dl-object.c: Likewise.
* elf/rtld.c: Likewise.
* include/link.h: Inlcude <rtld-lowlevel.h>. Define struct
r_scoperec. Replace r_scope with pointer to r_scoperec structure.
Add l_scoperec_lock.
* sysdeps/generic/ldsodefs.h: Include <rtld-lowlevel.h>.
* sysdeps/generic/rtld-lowlevel.h: New file.
* include/atomic.h: Rename atomic_and to atomic_and_val and
atomic_or to atomic_or_val. Define new macros atomic_and and
atomic_or which do not return values.
* sysdeps/x86_64/bits/atomic.h: Define atomic_and and atomic_or.
Various cleanups.
* sysdeps/i386/i486/bits/atomic.h: Likewise.
Ulrich Drepper [Mon, 2 Oct 2006 16:34:25 +0000 (16:34 +0000)]
* nscd/mem.c (mempool_alloc): Round array size to 16 bytes
in oldtotal and newtotal calculation.
* nscd/nscd-client.h (struct mapped_database): Add datasize
field.
* nscd/nscd_helper.c (get_mapping): Initialize datasize field.
(__nscd_get_map_ref): Get a new mapping even if mapping's data_size
increased.
(__nscd_cache_search): Add checks to make sure we never reference
data beyond the current mapping.
2006-09-29 Ulrich Drepper <drepper@redhat.com>
[BZ #3273]
* nscd/nscd_initgroups.c (__nscd_getgrouplist): It is OK to have
found no group members.
Patch by Petr Baudis.
2006-09-29 Jakub Jelinek <jakub@redhat.com>
* elf/rtld.c (_dl_start_final): If not USE___THREAD, don't
assert bootstrap_map.l_tls_modid is zero.
(_dl_start): Initialize bootstrap_map.l_tls_modid to 0
if USE___THREAD.
2006-09-25 Jakub Jelinek <jakub@redhat.com>
[BZ #3252]
* sysdeps/unix/sysv/linux/powerpc/fchownat.c (fchownat): Handle only
fchownat syscall and __ASSUME_LCHOWN_SYSCALL case inline, call
__{,l}chown to handle the rest.
* sysdeps/unix/sysv/linux/i386/fchownat.c (fchownat): Handle only
fchownat syscall and __ASSUME_32BITUIDS case inline, call
__{,l}chown to handle the rest.
* sysdeps/unix/sysv/linux/sparc/sparc32/fchownat.c: Include
i386/fchownat.c.
* sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c: Likewise.
* sysdeps/unix/sysv/linux/sh/fchownat.c: Likewise.
[BZ #3253]
* posix/glob.c (glob_in_dir): Don't alloca one struct globlink at a
time, rather allocate increasingly bigger arrays of pointers, if
possible with alloca, if too large with malloc.
2006-06-17 Joseph S. Myers <joseph@codesourcery.com>
[BZ #2592]
* math/libm-test.inc (lrint_test_tonearest): New function.
(lrint_test_towardzero): New function.
(lrint_test_downward): New function.
(lrint_test_upward): New function.
(main): Run these new tests.
* sysdeps/ieee754/dbl-64/s_llrint.c (__llrint): Correct rounding
of values near to 0.
(two52): Use double not long double.
* sysdeps/ieee754/dbl-64/s_lrint.c (__lrint): Likewise.
* sysdeps/ieee754/flt-32/s_llrintf.c (__llrintf): Likewise.
(two23): Use float not double.
* sysdeps/ieee754/flt-32/s_lrintf.c (__lrintf): Likewise.
(two23): Use float not double.
* sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Likewise.
* sysdeps/ieee754/ldbl-128/s_lrintl.c (__lrintl): Likewise.
* sysdeps/ieee754/ldbl-96/s_llrintl.c (__llrintl): Likewise.
* sysdeps/ieee754/ldbl-96/s_lrintl.c (__lrintl): Likewise.
Cast sp to unsigned long to avoid compiler warning.
Use __makecontext_ret function instead of a trampoline on the stack.
(__makecontext_ret): New function.
* sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c: Likewise.
* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: For PI
mutexes wake all mutexes.
* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Don't increment
WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Add 4 new cap
names to the beginning. Rename "cell" to "cellbe".
(_dl_powerpc_platforms): New.
* sysdeps/powerpc/dl-procinfo.h (_DL_HWCAP_FIRST): Decrease.
(HWCAP_IMPORTANT): Remove power{4,5,5+} and cell.
(_DL_PLATFORMS_COUNT, _DL_FIRST_PLATFORM): Define.
(_DL_HWCAP_PLATFORM): Define to new mask.
(_dl_platform_string, _dl_string_platform): New functions.
* sysdeps/powerpc/sysdep.h (PPC_FEATURE_BOOKE, PPC_FEATURE_SMT,
PPC_FEATURE_ICACHE_SNOOP, PPC_FEATURE_ARCH_2_05): Define.
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela):
Ensure relocation doesn't clobber any bits outside of the
immediate field for R_SPARC_TLS_LE_HIX22, R_SPARC_WDISP30,
R_SPARC_HI22 and R_SPARC_H44.
* posix/regex_internal.c (re_string_reconstruct): Handle
offset < pstr->valid_raw_len && pstr->offsets_needed case.
Ensure no bytes read before raw_mbs array. Pass a saved copy of
pstr->valid_len - 1 rather than pstr->valid_raw_len - 1 to
re_string_context_at.
* posix/Makefile: Add rules to build and run bug-regex26 test.
* posix/bug-regex26.c: New test.
Ulrich Drepper [Mon, 28 Aug 2006 00:58:32 +0000 (00:58 +0000)]
[BZ #2684]
2006-08-27 Ulrich Drepper <drepper@redhat.com>
[BZ #2684]
* malloc/malloc.c (public_rEALLOc): Try harder by using other
arenas if allocation failed.
Patch mostly by Jan Edler <jan.edler@indexengines.com>.
Ulrich Drepper [Sun, 27 Aug 2006 04:38:05 +0000 (04:38 +0000)]
* malloc/malloc.c (bin_at): Rewrite to be more clear and to not
waste bins[0..1].
(malloc_state): Reduce bins size by 2.
(_int_malloc): Fix test for large enough buffer for early termination.
When no unsorted block matches perfectly and an exiting block has
to be split, use full list insert and not shortcut which assumes
the list is empty.
Ulrich Drepper [Thu, 24 Aug 2006 20:21:08 +0000 (20:21 +0000)]
[BZ #2683]
2006-08-24 Ulrich Drepper <drepper@redhat.com>
[BZ #2683]
* elf/dl-addr.c (_dl_addr): Don't ignore all undefined symbols.
If symbol has a value use it.
* elf/tst-dladdr1.c: New file.
* elf/Makefile: Add rules to build and run tst-addr1.
Ulrich Drepper [Thu, 24 Aug 2006 07:09:54 +0000 (07:09 +0000)]
[BZ #2734]
2006-08-24 Ulrich Drepper <drepper@redhat.com>
[BZ #2734]
* sysdeps/i386/bits/byteswap.h (__bswap_32): Use same conditions
as in the x86-64 code to use bswap.
Ulrich Drepper [Tue, 22 Aug 2006 06:19:12 +0000 (06:19 +0000)]
* malloc/malloc.c (DEFAULT_MMAP_THRESHOLD_MAX): For 32-bit
platforms define as 1MB. For 64-bit platforms as 32MB. The lower
limit is needed to avoid the exploding of the address space
requirement for secondary heaps.
* malloc/arena.c (HEAP_MAX_SIZE): Define using
DEFAULT_MMAP_THRESHOLD_MAX if it is defined.
Ulrich Drepper [Sat, 19 Aug 2006 17:54:05 +0000 (17:54 +0000)]
* locale/programs/charmap.c (charmap_read): Add new parameter. It
tells us when not finding a charmap file is an error.
* locale/programs/charmap.h: Adjust charmap_read prototype.
* iconv/iconv_prog.c (main): Tell charmap_read it's no error if we
cannot find a charmap.
* locale/programs/localedef.c (main): Adjust charmap_read call.
Ulrich Drepper [Mon, 14 Aug 2006 22:16:14 +0000 (22:16 +0000)]
[BZ #1996]
2006-08-14 Ulrich Drepper <drepper@redhat.com>
[BZ #1996]
* libio/memstream.c (open_memstream): Allocate initial buffer with
calloc.
* libio/wmemstream.c (open_wmemstream): Likewise.
* libio/strops.c: Pretty printing.
(_IO_str_overflow): Clear uninitialized part of the new buffer.
(enlarge_userbuf): New function.
(_IO_str_seekoff): Call it if seek position is larger than current
buffer.
* libio/wstrops.c: Likewise.
* libio/vasprintf.c: Add comment as to why we do not have to use
calloc instead of malloc to allocate initial buffer.
* libio/Makefile (tests): Add bug-memstream1 and bug-wmemstream1.
* libio/bug-memstream1.c: New file.
* libio/bug-wmemstream1.c: New file.
Ulrich Drepper [Sun, 13 Aug 2006 08:21:10 +0000 (08:21 +0000)]
[BZ #2832, BZ #2987]
2006-06-08 Joseph Myers <jsm28@gcc.gnu.org>
[BZ #2832]
* math/gen-libm-test.pl (clean_up_number): Do not remove trailing
0s from integers.
2006-08-13 Ulrich Drepper <drepper@redhat.com>
[BZ #2987]
* sysdeps/unix/sysv/linux/clock_settime.c: Add code to use syscall
for CPU clocks.
* sysdeps/unix/clock_settime.c: Add support for platform-specific
setting of CPU clocks.
Ulrich Drepper [Sun, 13 Aug 2006 05:57:40 +0000 (05:57 +0000)]
* locales/pa_IN (day): Fix spelling of Saturday.
* locales/or_IN (mon): Fix spelling of May.
* locales/ml_IN (day): Fix spelling of Sunday, Monday, Wednesday.
(abmon): Fix spelling of March to October.
(mon): Fix spelling of March, April, June, August to December.
Patches by Mayank Jain <majain@redhat.com>.
Ulrich Drepper [Sun, 13 Aug 2006 01:56:09 +0000 (01:56 +0000)]
[BZ #2843]
2006-08-12 Ulrich Drepper <drepper@redhat.com>
[BZ #2843]
* pthread_join.c (pthread_join): Account for self being canceled
when checking for deadlocks.
* tst-join5.c: Cleanups. Allow to be used in tst-join6.
(tf1): Don't print anything after pthread_join returns, this would be
another cancellation point.
(tf2): Likewise.
* tst-join6.c: New file.
* Makefile (tests): Add tst-join6.