2000-09-04 Andreas Schwab <schwab@suse.de>
* elf/Makefile (all-dl-routines): New variable.
(elide-routines.os): Use it instead of $(dl-routines).
(all-rtld-routines): New variable.
(extra-objs): Use it instead of $(rtld-routines).
($(objpfx)dl-allobjs.os): Likewise.
* sysdeps/ia64/Makefile [$(subdir) = elf]: Modify
sysdep-dl-routines and sysdep_routines instead of rtld-routines
and dl-routines.
2000-09-03 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_trans.c (__gconv_translit_find): Update open_count.
Set fname to NULL if the module wasn't found.
2000-09-03 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_trans.c (__gconv_translit_find): Don't set need_so to
true if trans->name already ends in ".so".
2000-09-03 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_int.h (__gconv_release_shlib): Change return type to
void.
* iconv/gconv_dl.c (do_release_shlib): Don't decrement the counter
below -TRIES_BEFORE_UNLOAD-1, to avoid wraparound.
(__gconv_release_shlib): Change return type to void.
* iconv/gconv_builtin.c (__gconv_get_builtin_trans): Don't set
step->__counter here.
* iconv/gconv_db.c (free_derivation): Don't call a step's destructor
if the reference is zero.
(release_step): New function.
(gen_steps): Always initialize the __counter to 1. Use release_step.
Don't call the destructor on the step whose initializer failed.
(increment_counter): Use release_step. Don't normally run destructors
here.
(__gconv_close_transform): Use release_step.
2000-09-03 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_simple.c (encoding_mask, encoding_byte): Remove.
(__gconv_transform_internal_utf8) [BODY]: Use simple shifts instead.
2000-09-03 Bruno Haible <haible@clisp.cons.org>
* iconvdata/euc-tw.c (BODY for FROM_LOOP): Initialize ch2 correctly.
If the first byte is 0x8E, don't ask for 4 bytes until it has been
verified that the second byte is valid. Leave it to cns11643_to_ucs4
to check for incomplete input.
* iconvdata/cns11643.h (cns11643_to_ucs4): The plane number is
ch - 0x20 - offset, not ch - 0x21 - offset. Upper bound for
__cns11643l1_to_ucs4_tab is 0x21f2, not 0x2196.
(ucs4_to_cns11643): Fix mapping for ranges 0x3105..0x3129 and
0x9f9d..0x9fa5.
* iconvdata/cns11643l1.h (cns11643l1_to_ucs4): Upper bound for
__cns11643l1_to_ucs4_tab is 0x21f2, not 0x2196.
(ucs4_to_cns11643l1): Fix mapping for range 0x3105..0x3129.
* iconvdata/cns11643l1.c (__cns11643l1_from_ucs4_tab6): Extend
upto index 0x0052.
2000-09-03 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_db.c (find_derivation): Always use the least-cost
solution.
2000-09-03 Bruno Haible <haible@clisp.cons.org>
* iconvdata/big5.c (BODY for FROM_LOOP): Bytes 0x81..0xA0, 0xFA..0xFF
are invalid.
2000-09-03 Bruno Haible <haible@clisp.cons.org>
* iconvdata/jis0208.c (__jis0208_to_ucs): Map EUC-JP 0xA1C0 to U+005C.
* iconvdata/jis0212.c (__jisx0212_to_ucs): Map EUC-JP 0x8FA2B7 to
U+007E.
2000-09-03 Bruno Haible <haible@clisp.cons.org>
* iconvdata/sjis.c (cjk_block1): Map 0x815F to U+005C.
2000-09-03 Bruno Haible <haible@clisp.cons.org>
* iconvdata/iso_6937-2.c (to_ucs4): Map 0xB4 to U+00D7.
2000-09-03 Bruno Haible <haible@clisp.cons.org>
* iconvdata/tst-tables.sh: New file.
* iconvdata/tst-table.sh: New file.
* iconvdata/tst-table-from.c: New file.
* iconvdata/tst-table-to.c: New file.
* iconvdata/tst-table-charmap.sh: New file.
* iconvdata/Makefile (test-srcs): Set to tst-table-from tst-table-to.
(distribute): Add tst-tables.sh, tst-table.sh, tst-table-charmap.sh,
tst-table-from.c, tst-table-to.c, EUC-JP.irreversible,
ISIRI-3342.irreversible, SJIS.irreversible.
(tests): Add dependency on tst-tables.out.
(tst-tables.out, tst-tables-clean): New rules.
(do-tests-clean, common-mostlyclean): Require tst-tables-clean.
* iconvdata/ISIRI-3342.irreversible: New file.
* iconvdata/EUC-JP.irreversible: New file.
* iconvdata/SJIS.irreversible: New file.
2000-09-04 Ulrich Drepper <drepper@redhat.com>
* manual/locale.texi (General Numeric): Update description of
representation of the grouping information in the locale data.
Patch by Gaute B. Strokkenes <gs234@cam.ac.uk>.
Reported by Rob Levin <lilo@transvirtual.com>.
2000-09-03 Ulrich Drepper <drepper@redhat.com>
* time/sys/time.h (gettimeofday): Move restrict for tz parameter
to the typedefs of __timezone_ptr_t.
Reported by MATSUMURA Hiromitsu <coji2@mb.infoweb.ne.jp>.
2000-09-02 Jakub Jelinek <jakub@redhat.com>
* nss/nss_files/files-hosts.c (HOST_DB_LOOKUP): Increment counter in
the loop.
2000-09-01 H.J. Lu <hjl@gnu.org>
* Makeconfig (built-program-cmd): Don't use the dynamic linker
to run a binary if it is in $(tests-static).
* Rules (binaries-static): Add $(tests-static).
2000-09-01 Ulrich Drepper <drepper@redhat.com>
* lockfile.c (__flockfile): If _IO_USER_LOCK bit is set don't do
anything.
(__funlockfile): Likewise.
(__ftrylockfile): If _IO_USER_LOCK bit is set return always 0.
* iconvdata/big5hkscs.c: Rewritten. Regenerate data from the
official file.
* iconvdata/TESTS: Add BIG5HKSCS entry.
* iconvdata/testdata/BIG5HKSCS: New file.
* iconvdata/testdata/BIG5HKSCS..UTF8: New file.
* iconvdata/big5.c (BODY for FROM_LOOP): Remove condition which is
always true.
2000-08-25 Ulrich Drepper <drepper@redhat.com>
* elf/Makefile (LDFLAGS-nodelete): Add -rdynamic.
* elf/nodelete.c (fini_ran): New global variable.
(do_test): Before every dlclose call clear fini_ran and test
afterwards that it is not set by the destructors.
* elf/nodelmod1.c: Add destructor which sets fini_ran.
* elf/nodelmod2.c: Likewise.
* elf/nodelmod4.c: Likewise.
2000-08-25 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/system.c (__libc_system): We cannot use vfork here
since we call sigaction in the child.
* Makefile (tests): Add ex13.
2000-08-22 Andreas Jaeger <aj@suse.de>
* Examples/ex13.c: New test by Kurt Garloff <garloff@suse.de>.
* Makefile (tests): Add ex13.
2000-08-12 Andreas Jaeger <aj@suse.de>
* include/features.h (__STDC_ISO_10646__): Define.
Reported by Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk>.
* include/features.h (__USE_ISOC99): Define for _XOPEN_SOURCE >= 600.
* locale/langinfo.h: Define YESSTR and NOSTR also for XPG4 (but not
for revision 6 and up).
* posix/sys/types.h: Define __need_timer_t and __need_clockid_t before
including <time.h>.
* time/time.h: Allow __need_timer_t and __need_clockid_t to be defined
to get definitions of just these types.
* signal/signal.h: Define thread signal handling functions also for
POSIX95.
* sysdeps/unix/sysv/linux/bits/types.h: Define thread types also for
POSIX95.
* sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/types.h: Likewise.
* sysvipc/sys/shm.h: Define pid_t for XPG.
* wcsmbs/wchar.h: Make the various wide char string and stream
functions available for the respective XPG versions.
* internals.h: Declare __pthread_max_stacksize.
* pthread.c (__pthread_max_stacksize): New variable.
(__pthread_initialize_manager): Determine __pthread_initialize_manager
value.
* manager.c (thread_segment): Return always NULL if FLOATING_STACKS.
(pthread_allocate_stack): Allow kernel to choose stack address if
FLOATING_STACKS. This also handles variable-sized stacks.
Always allocate stack and guardoage together. Use mprotect to
change guardpage access.
* sysdeps/i386/useldt.h: Define FLOATING_STACKS and
ARCH_STACK_MAX_SIZE.
* attr.c (__pthread_attr_setstacksize): Also test value against
upper limit.
2000-08-04 Ulrich Drepper <drepper@redhat.com>
* manager.c (__pthread_nonstandard_stacks): Define only if
THREAD_SELF is not defined.
(pthread_allocate_stack): Always initialize gardaddr to a correct
value.
(pthread_handle_create): Unmap thread with one call.
(pthread_free): Remove test for initial thread before removing stack.
Unmap stack with one call.
* pthread.c (__pthread_initial_thread): Initialize p_userstack to
1 to avoid removing the stack.
2000-07-27 Jes Sorensen <jes@linuxcare.com>
* linuxthreads/sysdeps/ia64/pspinlock.c (__pthread_spin_lock): Add
load of spin lock to prime the cache before the atomic compare and
exchange operation (cmpxchg4). This avoids the spinning on the
cmpxchg4 instruction and reduces movement of the cache line back
and forth between the processors (explanation by Asis K. Mallick
from Intel). This basically makes the implementation operate the
same as the Linux kernel implementation.
* linuxthreads/shlib-versions: Use GLIBC_2_2 for Linux/ia64.
* linuxthreads/sysdeps/ia64/pspinlock.c: New file.
2000-08-02 Andreas Jaeger <aj@suse.de>
* linuxthreads/sysdeps/s390/pspinlock.c: New file.
* linuxthreads/sysdeps/s390/pt-machine.h: New file.
Patches by Martin Schwidefsky <schwidefsky@de.ibm.com>.
* internals.h (strict __pthread_descr_struct): Add p_sem_avail.
* semaphore.c: Handle spurious wakeups.
* sysdeps/pthread/pthread.h: Add back PTHREAD_MUTX_FAST_NP as an alias
for PTHREAD_MUTEX_ADAPTIVE_NP for source code compatibility.
* pthread.c (__pthread_set_own_extricate): Use THREAD_GETMEM.
(__pthread_wait_for_restart): Likewise.
* condvar.c (pthread_cond_wait): Also check whether thread is
cancelable before aborting loop.
(pthread_cond_timedwait): Likewise.
2000-07-24 Ulrich Drepper <drepper@redhat.com>
* condvar.c: Handle spurious wakeups. [PR libc/1749].
* spinlock.h: If IMPLEMENT_TAS_WITH_CAS is defined use
* locale/programs/ld-collate.c (handle_ellipsis): Test for
duplication with generated name, not the name of the first
character.
Patch by Yong Li <yong.li@asu.edu>.
2000-07-19 Kaz Kylheku <kaz@ashi.footprints.net>
Bugfixes to the variant of the code for machines with no compare
and swap.
* spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Wait
node was not being properly enqueued, due to failing to update
the lock->__status field.
* spinlock.c (__pthread_alt_timedlock): The oldstatus variable was
being set inappropriately, causing the suspend function to be called
with a null self pointer and crash.
2000-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
* spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Fixed
bug whereby thr field of waitnode structure would not be correctly
set unless a null self pointer is passed to the functions.
Eliminated redundant calls to thread_self().
2000-07-18 Ulrich Drepper <drepper@redhat.com>
* intl/Makefile: Make sure tst-translit is run after tst-gettext.
* locale/C-ctype.c: Add initializers for gap elements.
* locale/programs/ld-ctype.c (ctype_output): Write out index entries
for gap elements.
2000-05-05 H.J. Lu <hjl@gnu.org>
* sysdeps/ia64/pt-machine.h (__compare_and_swap): Change it to
have acquire semantics.
(__compare_and_swap_with_release_semantics): New inline
function.
(HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): New macro.
2000-01-28 Hans Boehm <hboehm@exch.hpl.hp.com>
* manager.c: Fix the problem with signals at startup.
Change the way that thread stacks are allocated on IA64.
Clean up some of the guard page allocation stuff.
1999-12-19 H.J. Lu <hjl@gnu.org>
* internals.h (page_roundup): New.
* attr.c (__pthread_attr_setguardsize); Use page_roundup
instead of roundup.
* manager.c (pthread_allocate_stack): Make sure guardaddr is
page aligned with page_roundup if NEED_SEPARATE_REGISTER_STACK
is define.
1999-12-17 Hans Boehm <hboehm@exch.hpl.hp.com>
* manager.c (pthread_allocate_stack): Unmap the stack top
if failed to map the stack bottom.
Fix the guard page.
(pthread_free): Fix the guard page.
* pthread.c (pthread_initialize): Set rlimit correctly for
NEED_SEPARATE_REGISTER_STACK.
1999-12-16 H.J. Lu <hjl@gnu.org>
* pthread.c (__pthread_initialize_manager): Pass
__pthread_manager_thread_bos instead of
__pthread_manager_thread_tos to __clone2.
1999-12-16 H.J. Lu <hjl@gnu.org>
* manager.c (pthread_allocate_stack): Correct the calculation
of "new_thread_bottom". Remove MAP_GROWSDOWN from mmap for
stack bottom.
1999-12-13 H.J. Lu <hjl@gnu.org>
* sysdeps/ia64/pt-machine.h (__compare_and_swap): Added a stop
bit after setting ar.ccv.
1999-12-12 H.J. Lu <hjl@gnu.org>
* manager.c (pthread_allocate_stack): Make the starting
address of the stack bottom page aligned. FIXME: it may
need changes in other places.
(pthread_handle_create): Likewise.
1999-12-11 Hans Boehm <hboehm@exch.hpl.hp.com>
* manager.c (pthread_allocate_stack): Handle
NEED_SEPARATE_REGISTER_STACK.
(pthread_handle_create): Likewise.
* pthread.c (__pthread_initialize_manager): Likewise.
* sysdeps/ia64/pt-machine.h: Use r13 for thread pointer.
1999-12-02 H.J. Lu <hjl@gnu.org>
* sysdeps/ia64/pt-machine.h: New.