PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
* sysdeps/pthread/pthread_spin_init.c: New file.
* sysdeps/pthread/pthread_spin_unlock.c: New file.
* sysdeps/powerpc/Makefile: New file.
* sysdeps/powerpc/pthread_spin_lock.c: New file.
* sysdeps/powerpc/pthread_spin_trylock.c: New file.
* sysdeps/powerpc/pthreaddef.h: New file.
* sysdeps/powerpc/tcb-offsets.sym: New file.
* sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
* sysdeps/powerpc/tls.h: New file.
* sysdeps/powerpc/bits/atomic.h: New file.
* sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
* sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
* sysdeps/unix/sysv/linux/lowlevellock.c: New file.
* sysdeps/unix/sysv/linux/sem_post.c: New file.
* sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
* sysdeps/unix/sysv/linux/sem_trywait.c: New file.
* sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
* sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
* sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
* sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
* sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
* sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
2003-03-17 Ulrich Drepper <drepper@redhat.com>
* localedata/en_ZA: hanged %x for LC_TIME to use dd/mm/ccyy.
Added ^ to LC_MESSAGES regex "^[yY].*".
Confirmed LC_PAPER adn LC_MEASUREMENT settings.
Added country and language names to LC_ADDRESS.
Added missing info for LC_TELEPHONE.
Patch by Dwayne Bailey <dwayne@obsidian.co.za>.
* nscd/nscd_getpw_r.c (nscd_getpw_r): Likewise.
* gmon/gmon.c (write_call_graph): Use u_long for FROM_LEN.
* nscd/nscd_getgr_r.c (nscd_getgr_r): Use nscd_ssize_t for CNT.
* descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
we always define the padding space.
[!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
stopped supporting its own extensions fully.
[TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
struct also called `header', so `header.multiple_threads' is the field
name to use on all machines.
* allocatestack.c (allocate_stack): Use `header.' prefix.
* sysdeps/pthread/createthread.c (create_thread): Likewise.
* pthread_create.c (__pthread_create_2_1): Likewise.
* sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
(THREAD_SELF): Likewise.
* sysdeps/x86_64/tls.h: Likewise.
* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
(SINGLE_THREAD_P): Likewise.
* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
(SINGLE_THREAD_P): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
(SINGLE_THREAD_P): Likewise.
2003-03-11 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
(__condvar_cleanup): Wake up all waiters in case we got signaled
after being woken up but before disabling asynchronous
cancellation.
* sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
(__condvar_cleanup): Likewise.
* init.c (__NR_set_tid_address): If already defined, don't redefine.
Make it an error if architecture has no #if case. Add x86-64.
* sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
pt-initfini.s generation.
* sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
(TLS_INIT_TP): Fix typo.
* sysdeps/unix/sysv/linux/ia64/system.c: New file.
* sysdeps/unix/sysv/linux/kernel-features.h
(__ASSUME_CLONE_THREAD_FLAGS): Define for IA-64 and s390* with
kernel >= 2.5.64.
2003-03-11 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Don't clobber R7.
allocate space even for the trailing '/'.
Reported by John Reiser <jreiser@BitWagon.com>.
* sysdeps/unix/sysv/linux/ia64/sysdep.h (LOAD_ARGS_6, ASM_ARGS_6,
ASM_CLOBBERS_6): Define.
(ASM_CLOBBERS_5): Use ASM_CLOBBERS_6.
* sysdeps/unix/sysv/linux/ia64/clone2.S (__clone2): Reorder arguments
to match IA-32 order.
* sysdeps/unix/sysv/linux/i386/clone.S: Fix comment.
* sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
(create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
Use ARCH_CLONE.
* allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
[NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
ALLOCATE_STACK): New macros.
(TLS_TPADJ): New macro.
(get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
(allocate_stack): Handle TLS_DTV_AT_TP and
NEED_SEPARATE_REGISTER_STACK. Use TLS_TPADJ.
* pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
Don't set PD->self.
* init.c [__ia64__] (__NR_set_tid_address): Define.
* pthread_attr_setstack.c: Moved to...
* sysdeps/pthread/pthread_attr_setstack.c: ...here. New file.
* pthread_attr_setstackaddr.c: Moved to...
* sysdeps/pthread/pthread_attr_setstackaddr.c: ...here. New file.
2003-02-14 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/libc-start.c [HAVE_PTR_NTHREADS]: Decrement thread
counter and only call __exit_thread if this is not the last thread.
* tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
* sysdeps/pthread/pthread.h: Add missing initializers. Protect
non-standard initializers with __USE_GNU.
* sysdeps/generic/bits/confname.h: Define _CS_GNU_LIBC_VERSION and
_CS_GNU_LIBPTHREAD_VERSION.
* posix/conststr.c: Handle these new values.
* posix/getconf.c: Likewise.
* io/ftw.c (ftw_startup): When using FTW_CHDIR, always remember
2003-02-05 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/bits/libc-lock.h (__libc_once): Set control
variable for non-libpthread case to the same value the
pthread_once function would use.
* stdio-common/vfprintf.c [USE_IN_LIBIO]: Use _IO_cleanup_region_start
instead of __libc_cleanup_region_start and _IO_cleanup_region_end
instead of __libc_cleanup_region_end.
* sysdeps/unix/sysv/linux/i386/system.c (CLEANUP_HANDLER): Pass 1
as first parameter to __libc_cleanup_region_start.
2003-01-04 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: New file.
2002-12-16 Ulrich Drepper <drepper@redhat.com>
* stdio-common/Makefile (routines): Remove lockfile. Add
flockfile, ftrylockfile, and funlockfile.
* sysdeps/generic/lockfile.c: Removed. Each function has its own file.
* sysdeps/generic/flockfile.c: New file.
* sysdeps/generic/ftrylockfile.c: New file.
* sysdeps/generic/funlockfile.c: New file.
2002-12-13 Ulrich Drepper <drepper@redhat.com>
* misc/syslog.c (log_cleanup): Don't use parameter in
__libc_lock_unlock call, use syslog_lock directly. Adjust callers to
pass NULL instead of a pointer to syslog_lock.
* sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
Remember function and argument even if cancellation handler
function is not available.
(__libc_cleanup_region_end): Execute registered function directly if
pthread functions are not available.
(__libc_cleanup_end): Likewise.
2002-12-05 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
lowlevellock.
* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
* sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
* sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
* sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
for __libc_lock_* macros.
* Makefile (routines): Add libc-lowlevellock.
2002-10-09 Roland McGrath <roland@redhat.com>
* sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
Under [__PIC__], call the function via the pointer fetched for
comparison rather than a call by name that uses the PLT.
(__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
(__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
(__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
(__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
(__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
* sysdeps/x86_64/pthreaddef.h: New file.
* sysdeps/i386/pthreaddef.h (gettid): Removed.
* sysdeps/x86_64/pthread_spin_init.c: New file.
* sysdeps/x86_64/pthread_spin_lock.c: New file.
* sysdeps/x86_64/pthread_spin_trylock.c: New file.
* sysdeps/x86_64/pthread_spin_unlock.c: New file.
* sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
Add missing lock prefix. Minute optimization.
* tst-spin2.c (main): Also check successful trylock call.
* sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
syscall. Fix typo in case INTERNAL_SYSCALL is not used.
* sysdeps/i386/pthread_spin_destroy.c: Moved to...
* sysdeps/pthread/pthread_spin_destroy.c: ...here. New file.
* sysdeps/i386/pthread_sigmask.c: Removed. Use the generic code.
* sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
value in case of an error. Add support for INTERNAL_SYSCALL.
2002-11-27 Isamu Hasegawa <isamu@yamato.ibm.com>
* posix/regcomp.c (parse_expression): Set the bit since the back
reference is used in the regular expression.
* posix/regex_internal.c (re_node_set_init_1): Make it clean in case
of malloc failure.
(re_node_set_init_copy): Likewise.
* posix/regex_internal.h (state_array_t): New structure.
(re_sub_match_last_t): Likewise.
(re_sub_match_top_t): Likewise.
(re_match_context_t): Add new members.
(re_dfa_t): Likewise.
* posix/regexec.c (re_search_internal): Invoke prune_impossible_nodes
to check the matching is really correct, and retry if failed.
Move the routin pruning the impossible nodes from here, ...
(prune_impossible_nodes): To this function.
(check_matching): Invoke check_subexp_matching_top, and replace
redundant checking with transit_state_bkref invocation.
(proceed_next_node): Replace strncmp with memcmp. Reported by
Paolo Bonzini <bonzini@gnu.org>.
(update_cur_sifted_state): Remove search_subexp invocation.
(search_subexp): Remove this function.
(check_dst_limits_calc_pos): Use search_cur_bkref_entry for
optimization.
(sift_states_bkref): Use search_cur_bkref_entry for optimization.
Remove unused invocation of match_ctx_add_entry.
(transit_state): Invoke check_subexp_matching_top.
(check_subexp_matching_top): New function.
(transit_state_bkref): Remove unused array.
Merge transit_state_bkref_loop.
(transit_state_bkref_loop): Use get_subexp instead of
sift_states_backward. Use search_cur_bkref_entry for optimization.
Merge this function to transit_state_bkref.
(get_subexp): New function.
(get_subexp_sub): Likewise.
(find_subexp_node): Likewise.
(check_arrival): Likewise.
(check_arrival_expand_ecl): Likewise.
(check_arrival_expand_ecl_sub): Likewise.
(expand_bkref_cache): Likewise.
(match_ctx_init): Initialize new members.
(match_ctx_clean): New function.
(match_ctx_free): Release new members.
(match_ctx_free_subtops): New function.
(match_ctx_add_entry): Fix indent.
(search_cur_bkref_entry): New function.
(match_ctx_add_subtop): Likewise.
(match_ctx_add_sublast): Likewise.