* sysdeps/pthread/pthread.h: Add prototypes for pthread_spin_init,
pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
and pthread_spin_unlock.
* sysdeps/pthread/bits/pthreadtypes.h: Change struct _pthread_fastlock
into pthread_spinlock_t. Change all uses.
* spinlock.c: Implement pthread_spin_lock.
Rename __pthread_unlock to __pthread_spin_unlock and define weak
alias for real name.
Define pthread_spin_trylock, pthread_spin_init, and
pthread_spin_destroy.
Change all uses of _pthread_fastlock to pthread_spinlock_t.
* spinlock.h: Rename __pthread_unlock to __pthread_spin_unlock.
Change all uses of _pthread_fastlock to pthread_spinlock_t.
* Versions [libpthread] (GLIBC_2.2): Add pthread_spin_init,
pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
and pthread_spin_unlock.
* cancel.c: Use __pthread_spin_unlock instead of __pthread_unlock.
Change all uses of _pthread_fastlock to pthread_spinlock_t.
* condvar.c: Likewise.
* internals.h: Likewise.
* join.c: Likewise.
* manager.c: Likewise.
* mutex.c: Likewise.
* pthread.c: Likewise.
* rwlock.c: Likewise.
* semaphore.c: Likewise.
* signals.c: Likewise.
* posix/getconf.c: Add support for many more POSIX options.
* sysdeps/posix/sysconf.c: Likewise.
* sysdeps/generic/bits/confname.h: Add many more POSIX options.
* sysdeps/mach/hurd/bits/posix_opt.h: Add _POSIX_REGEXP and
_POSIX_SHELL.
* sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
* sysdeps/unix/sysv/linux/i386/bits/time.h: Rename __CLOCK_HIGHRES to
CLOCK_PROCESS_CPUTIME_ID. Add define CLOCK_MONOTONIC and
CLOCK_THREAD_CPUTIME_ID.
* sysdeps/unix/i386/clock_getcpuclockid.c: Set *clock_id to
CLOCK_PROCESS_CPUTIME_ID.
* sysdeps/unix/i386/i586/clock_getres.c: Change for renaming of
__CLOCK_HIGHRES to CLOCK_PROCESS_CPUTIME_ID. Handle
CLOCK_THREAD_CPUTIME_ID and CLOCK_MONOTONIC the same.
* sysdeps/unix/i386/i586/clock_gettime.c: Likewise.
* libio/iopopen.c (_IO_new_proc_open): Close pipes in case the
mode is invalid.
* libio/oldiopopen.c (_IO_old_proc_open): Likewise.
Patch by Bart Veer <bartv@redhat.com>.
* sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define.
(__compare_and_swap): Mark as modifying memory.
2000-04-11 Andreas Jaeger <aj@suse.de>
* sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define.
(__compare_and_swap): Mark as modifying memory.
2000-04-11 Geoff Keating <geoffk@cygnus.com>
* sysdeps/powerpc/pt-machine.h (MEMORY_BARRIER): Don't be
__volatile__.
(__compare_and_swap): Replace other 'sync' with MEMORY_BARRIER.
Don't have the 'asm' __volatile__.
2000-04-11 Ulrich Drepper <drepper@redhat.com>
* internals.h: Define MEMORY_BARRIER as empty if not defined already.
* spinlock.c (__pthread_lock): Add memory barriers.
(__pthread_unlock): Likewise.
* sysdeps/alpha/pt-machine.h (MEMORY_BARRIER): Define using mb
instruction.
(RELEASE): Not needed anymore.
(__compare_and_swap): Mark asm as modifying memory.
* sysdeps/powerpc/pt-machine.h (sync): Remove. Replace with definition
of MEMORY_BARRIER.
(__compare_and_swap): Use MEMORY_BARRIER instead of sync.
* sysdeps/sparc/sparc32/pt-machine.h (RELEASE): Not needed anymore.
(MEMORY_BARRIER): Define using stbar.
* sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Define using
stbar.
(__compare_and_swap): Use MEMORY_BARRIER to ensure ordering.
Patch by Xavier Leroy <Xavier.Leroy@inria.fr> based on comments by
Mike Burrows <m3b@pa.dec.com>.
2000-04-11 Ulrich Drepper <drepper@redhat.com>
* posix/globtest.sh: Fix last change.
2000-04-10 Philip Blundell <philb@gnu.org>
* sysdeps/unix/sysv/linux/bits/in.h (IPV6_JOIN_GROUP,
IPV6_LEAVE_GROUP): New names for IPV6_ADD_MEMBERSHIP,
IPV6_DROP_MEMBERSHIP.
* sysdeps/generic/bits/in.h (IPV6_JOIN_GROUP, IPV6_LEAVE_GROUP):
Likewise.
2000-04-11 Ulrich Drepper <drepper@redhat.com>
* elf/readlib (process_file): Close streams in case of an error.
2000-04-09 Andreas Jaeger <aj@suse.de>
* elf/readlib.c (process_file): Check if file is big enough to
contain aout and ELF headers.
Reported by Reinhard Moosauer <RMoosauer@steinecker.com>.
2000-04-10 Jes Sorensen <Jes.Sorensen@cern.ch>
* elf/dl-fini.c: Include alloca.h to get proper prototype for alloca().
2000-04-11 Ulrich Drepper <drepper@redhat.com>
* test-skeleton.c (main): If STDOUT_UNBUFFERED is defined, make stdout
stream unbuffered.
* rt/Makefile (tests): Add tst-clock.
Add rules to build tst-clock.
* rt/tst-clock.c: New file.
* sysdeps/unix/i386/i586/clock_getres.c: Correct expression to decide
about initialization of nsec.
* sysdeps/unix/i386/i586/clock_gettime.c: Correct expression to decide
about initialization of freq. Set retval to zero if successful.
* sysdeps/unix/sysv/linux/i386/get_clockfreq.c: Cache result.
2000-04-10 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/clock_settime.c (clock_settime): Test tv_nsec value
for correct range. From code by Kaz Kylheku <kaz@ashi.footprints.net>.
* sysdeps/unix/sysv/linux/getdents.c (__getdents): Avoid initial
lseek call be passing in a buffer which never allow a successful
first getdents syscall if not at leas the initial entry can be
stored in the user buffer.
2000-04-09 Ulrich Drepper <drepper@redhat.com>
* localedata/Makefile: Add rules to clean up directories created by
new strfmon tests.
2000-04-09 Geoff Clare <gwc@unisoft.com>
* localedata/tst-fmon.data: Added new tests for strfmon()
using test locales with all combinations of cs_precedes,
sign_posn and sep_by_space.
* localedata/tst-fmon.sh: Updated to support the new tests.
* localedata/tst-fmon-locales/tstfmon_n01y12: New file containing
the localedef source for the new strfmon() test locale.
* localedata/tst-fmon-locales/tstfmon_n02n40: Likewise.
* localedata/tst-fmon-locales/tstfmon_n10y31: Likewise.
* localedata/tst-fmon-locales/tstfmon_n11y41: Likewise.
* localedata/tst-fmon-locales/tstfmon_n12y11: Likewise.
* localedata/tst-fmon-locales/tstfmon_n20n32: Likewise.
* localedata/tst-fmon-locales/tstfmon_n30y20: Likewise.
* localedata/tst-fmon-locales/tstfmon_n41n00: Likewise.
* localedata/tst-fmon-locales/tstfmon_y01y10: Likewise.
* localedata/tst-fmon-locales/tstfmon_y02n22: Likewise.
* localedata/tst-fmon-locales/tstfmon_y22n42: Likewise.
* localedata/tst-fmon-locales/tstfmon_y30y21: Likewise.
* localedata/tst-fmon-locales/tstfmon_y32n31: Likewise.
* localedata/tst-fmon-locales/tstfmon_y40y00: Likewise.
* localedata/tst-fmon-locales/tstfmon_y42n21: Likewise.
* stdlib/strfmon.c: Correct problems with missing or extra
spaces for unusual combinations of sign_posn and sep_by_space.
Improved left-precision alignment code.
2000-04-09 Ulrich Drepper <drepper@redhat.com>
Implement handling of restartable conversion functions according to
ISO C.
* iconv/gconv.h (__gconv_fct): Add additional parameter.
* iconv/gconv_int.h (__BUILTIN_TRANS): Likewise.
* iconv/gconv.c: Pass additional parameter to conversion function.
* iconv/gconv_simple.c (internal_ucs4_loop_single): New function.
(internal_ucs4le_loop_single): New function.
(__gconv_transform_ascii_internal): Define ONE_DIRECTION.
(__gconv_transform_internal_ascii): Likewise.
(__gconv_transform_internal_utf8): Likewise.
(__gconv_transform_utf8_internal): Likewise.
(__gconv_transform_ucs2_internal): Likewise.
(__gconv_transform_internal_ucs2): Likewise.
(__gconv_transform_ucs2reverse_internal): Likewise.
(__gconv_transform_internal_ucs2reverse): Likewise.
(internal_ucs4le_loop_unaligned): Before return
__GCONV_INCOMPLETE_INPUT check that the remaining bytes really form
a valid character. Otherwise return __GCONV_ILLEGAL_INPUT.
(__gconv_transform_utf8_internal): Define STORE_REST and UNPACK_BYTES.
* iconv/loop.c: Fit in definition of function to convert one character
for processing of left-over bytes from the state object.
* iconv/skeleton.c (gconv): Rename inbuf to inptrp and inbufend to
inend to match names in loop functions.
(RESET_INPUT_BUFFER): Change apprpriately.
(gconv): If needed, call function to process bytes from the state
object. Similar at the end: store left over bytes if input is
incomplete.
Take extra argument and add new argument to all calls of the
conversion function.
* iconvdata/iso-2022-cn.c: Adjust numeric values used to store
information in the state object to not conflict with length count.
* iconvdata/iso-2022-jp.c: Likewise.
* iconvdata/iso-2022-kr.c: Likewise.
* iconvdata/unicode.c: Adjust for change change in parameters of
skeleton function.
* iconvdata/utf-16.c: Likewise.
* libio/iofwide.c: Add new parameter to all calls of conversion
function.
* wcsmbs/btowc.c: Likewise.
* wcsmbs/mbrtowc.c: Likewise.
* wcsmbs/mbsnrtowcs.c: Likewise.
* wcsmbs/mbsrtowcs.c: Likewise.
* wcsmbs/wcrtomb.c: Likewise.
* wcsmbs/wcsnrtombs.c: Likewise.
* wcsmbs/wcsrtombs.c: Likewise.
* wcsmbs/wctob.c: Likewise.
* iconvdata/gbgbk.c: Always define MAX_NEEDED_OUTPUT and
MAX_NEEDED_INPUT.
2000-04-07 Ulrich Drepper <drepper@redhat.com>
* wcsmbs/wchar.h (__mbstate_t): Rename elements. Make __value
element a union to allow byte access.
* iconvdata/iso-2022-cn.c: Adjust for change of element name in
mbstate_t.
* iconvdata/iso-2022-jp.c: Likewise.
* iconvdata/iso-2022-kr.c: Likewise.
* sysdeps/unix/sysv/linux/getdents.c (__getdents): The Linux
kernel does not allow relative seeks on descriptors associated
with directories. Go back to get the position in the directory
every time we enter the function. Return -1 and set errno if one
entry could be read from the kernel but does not fit into the
buffer passed in by the user.
2000-04-06 Ulrich Drepper <drepper@redhat.com>
* locale/programs/charmap.c (charmap_new_char): Add parameter step.
Support ..(2).. ellipsis.
(parse_charmap): Recognize ..(2).. etc and pass step down.
Correctly generate names for UCS4 characters.
* locale/programs/ld-ctype.c (struct translit_ignore_t): Add step.
(ctype_finish): We know the wide character value for <SP>,
don't search.
(charclass_symbolic_ellipsis): Handle ..(2).. ellipsis.
(charclass_ucs4_ellipsis): Likewise.
(read_translit_ignore_entry): Store ellipsis step.
(ctype_read): Recognize ..(2).. etc and pass step down.
* locale/programs/linereader.c (lr_token): When seeing comment
character ignore only rest of line in sources but stop at escaped
newline.
Recognize ..(2).. and ....(2).....
* locale/programs/locfile-token.h (enum token_t): Add tok_ellipsis2_2
and tok_ellipsis4_2.
* locale/programs/ld-collate.c (collate_read): Handle ellipsis in
collation symbol definition. Value in quivalence definition must
be defined, don't check that it is not.