2003-07-31 Jakub Jelinek <jakub@redhat.com>
* dlfcn/dlerror.c (once): New.
(dlerror): Call __libc_once.
(_dlerror_run): Remove once.
2003-07-31 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h (struct sigcontext):
Sync with 2.5.7 and 2.5.73 kernel changes.
2003-07-31 Jakub Jelinek <jakub@redhat.com>
* dlfcn/eval.c (funcall): Add noinline attribute to shut up warnings.
* elf/rtld.c (dl_main): Cast ElfW(Addr) arguments with %Zx/%Zd
formats to size_t.
* elf/dl-lookup.c (_dl_debug_bindings): Likewise.
* elf/tst-tls6.c (do_test): Use %zd format for l_tls_modid.
* elf/tst-tls8.c (do_test): Use %zd format for modid1 and modid2.
* gmon/tst-sprofil.c (main): Add parens to shut up warning.
* iconv/tst-iconv3.c (main): Use %td instead of %zd for pointer
difference argument.
* stdio-common/tst-wc-printf.c (main): Cast arguments with %C
format to wint_t.
* stdlib/tst-limits.c (main): For WORD_BIT and LONG_BIT, use
%d format and cast expected value to int.
* sysdeps/generic/libc-start.c (STATIC): Add
__attribute__((always_inline) if LIBC_START_MAIN is already defined.
* sysdeps/powerpc/fpu/w_sqrt.c (a_nan, a_inf): Change from uint32_t
to ieee_float_shape_type.
(__sqrt): Avoid type punning.
* sysdeps/powerpc/fpu/w_sqrtf.c (a_nan, a_inf): Change from uint32_t
to ieee_float_shape_type.
(__sqrtf): Avoid type punning.
* sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela): Don't define
refsym if in dl-conflict.c.
* sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela): Likewise.
* sysdeps/unix/sysv/linux/i386/semctl.c (union semun): Add __old_buf.
(__new_semctl): Shut up warning.
* sysdeps/unix/sysv/linux/semctl.c (union semun): Add __old_buf.
(__new_semctl): Shut up warning.
* sysdeps/unix/sysv/linux/shmctl.c (__new_shmctl): Wrap long lines.
Change old into union of __old_shmid_ds and __old_shminfo structs.
Adjust all users.
* wcsmbs/wcsmbs-tst1.c (main): Cast arguments with %C format to wint_t.
2003-07-31 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/utimes.c (__utimes): Fix actime and
modtime computation.
* sysdeps/unix/sysv/linux/futimes.c (__futimes): Likewise.
* sysdeps/posix/utimes.c (__utimes): Likewise.
2003-07-24 Jakub Jelinek <jakub@redhat.com>
* sysdeps/pthread/aio_cancel.c (aio_cancel): Return AIO_ALLDONE
if aiocbp != NULL and has already completed. Return -1/EINVAL if
aiocbp->aio_fildes does not match fildes.
2003-07-23 Jakub Jelinek <jakub@redhat.com>
* sysdeps/pthread/lio_listio.c (LIO_OPCODE_BASE): Define.
(lio_listio): Use it.
* sysdeps/pthread/lio_listio64.c: Include lio_listio.c instead of
after few defines to avoid duplication.
2003-07-22 Jakub Jelinek <jakub@redhat.com>
* include/resolv.h (__resp): Declare. Define to __libc_resp
if in libc.so.
(_res): If USE___THREAD, define to (*__resp).
* resolv/res_libc.c (_res): Normal .bss variable with compat_symbol
even if USE___THREAD.
(__resp): New __thread variable.
(__libc_resp): New alias.
* resolv/Versions (libc): Export _res@GLIBC_2.0 even if
USE_TLS && HAVE___THREAD. Export __resp@@GLIBC_PRIVATE.
* sysdeps/generic/res-state.c (__res_state): Return __resp
if USE___THREAD.
2003-07-21 Ulrich Drepper <drepper@redhat.com>
* Makerules (build-module-helper): Add -z defs unless explicitly said
not to do it.
* dlfcn/Makefile: Define various *-no-z-defs variables for test DSOs
which has undefined symbols.
* elf/Makefile: Likewise.
2003-07-20 Ulrich Drepper <drepper@redhat.com>
* Makefile (libpthread-routines): Add pthread_attr_getaffinity and
pthread_attr_setaffinity.
* Versions [libpthread] (GLIBC_2.3.3): Likewise.
* sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
* sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
* pthread_attr_destroy.c: Free cpuset element if allocated.
* pthread_create.c: Pass iattr as additional parameter to
create_thread.
* sysdeps/pthread/createthread.c: If attribute is provided and
a new thread is created with affinity set or scheduling parameters,
start thread with CLONE_STOPPED.
* sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
pthread_attr_setaffinity.
* sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
cpuset element.
More cancellation handling fixups.
* sysdeps/unix/sysv/linux/not-cancel.h: Add waitpid_not_cancel.
* sysdeps/generic/not-cancel.h: Likewise.
* catgets/open_catalog.c: Use not-cancelable syscalls.
* time/Makefile (CFLAGS-getdate.c): Add -fexceptions.
* sysdeps/unix/sysv/linux/llseek.c: Must not be cancelable.
* sysdeps/unix/syscalls.list: Don't mark lseek as cancelable.
* dlfcn/dlfcn.h: Mark dlopen with __THROW again.
* io/fcntl.h: Don't mark posix_fallocate with __THROW.
* libio/fileops.c: Use not-cancelable syscalls for fclose.
* libio/iopopen.c: Use no-cancelable syscalls.
* libio/stdio.h: Mark popen and pclose with __THROW again.
* misc/Makefile (CFLAGS-syslog.c): Add -fexceptions.
* misc/syslog.c: Fix locking and cancellation cleanup handling.
* posix/unistd.h: Mark ttyname and ttyname_r again with __THROW.
* stdio-common/Makefile (CFLAGS-tmpfile.c, CFLAGS-tmpfile64.c,
CFLAGS-tempname.c): Add -fexceptions.
* stdlib/Makefile (CFLAGS-mkstemp.c): Add -fexceptions.
* string/string.h: Mark strerror and strerror_r with _THROW again.
* sysdeps/generic/unwind.inc: New file. Copied from gcc.
* sysdeps/generic/unwind-dw2.c: Update from gcc version. Remove
#ifs since we now need all the code compiled.
* sysdeps/posix/spawni.c: Use close_not_cancel instead of close.
* sysdeps/unix/closedir.c: Use not-cancelable syscalls.
* sysdeps/unix/opendir.c: Likewise.
* sysdeps/unix/sysv/linux/sigwait.c: Include string.h.
* sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.
* sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise.
* sysdeps/unix/sysv/linux/sleep.c (__sleep): Cast value to unsigned
int before assigning to max to avoid warnings.
2003-07-11 Jakub Jelinek <jakub@redhat.com>
2003-07-04 Jakub Jelinek <jakub@redhat.com>
* sysdeps/s390/s390-32/elf/start.S: Emit position independent code
if PIC.
* sysdeps/s390/s390-64/elf/start.S: Likewise.
2003-07-07 Jakub Jelinek <jakub@redhat.com>
* sysdeps/powerpc/powerpc64/elf/start.S: Put L(start_address)
into .data.rel.ro.local section if PIC to avoid DT_TEXTREL.
2003-07-07 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/kernel-features.h: Version
__ASSUME_CORRECT_SI_PID and __ASSUME_TGKILL if possible.
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Adjust for
compilation with HAVE_AUX_SECURE defined.
2003-07-07 Ulrich Drepper <drepper@redhat.com>
* descr.h (struct pthread): Add pid field.
* allocatestack.c (allocate_stack): Initialize pid field in descriptor.
(__reclaim_stacks): Likewise.
* init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
also check for PID of the signal source.
(__pthread_initialize_minimal_internal): Also initialize pid field
of initial thread's descriptor.
* pthread_cancel.c: Use tgkill instead of tkill if possible.
* sysdeps/unix/sysv/linux/fork.c: Likewise.
* sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
* sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
* sysdeps/unix/sysv/linux/raise.c: Likewise.
2003-07-04 Ulrich Drepper <drepper@redhat.com>
* init.c (sigcancel_handler): Change parameters to match handler
for SA_SIGACTION. Check signal number and code to recognize
invalid invocations.
2003-07-01 Richard Henderson <rth@redhat.com>
* sysdeps/alpha/elf/pt-initfini.c: New file.
* sysdeps/alpha/pthread_spin_lock.S: New file.
* sysdeps/alpha/pthread_spin_trylock.S: New file.
* sysdeps/alpha/pthreaddef.h: New file.
* sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
* sysdeps/alpha/tls.h: New file.
* sysdeps/unix/sysv/linux/alpha/Makefile: New file.
* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
* sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
* sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
* sysdeps/unix/sysv/linux/alpha/fork.c: New file.
* sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
* sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
* sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
* sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
2003-06-30 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
Use correct cleanup handler registration. Add unwind info.
* tst-once3.c: Add cleanup handler and check it is called.
* tst-once4.c: Likewise.
* tst-oncex3.c: New file.
* tst-oncex4.c: New file.
* Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
2003-06-26 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
definition to the front.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
the cleanup functions to make the names unique. Fix dwarf opcode
un unwind table.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
functions to make the names unique. Fix CFA offset for two blocks.
* include/time.h: Define CLOCK_IDFIELD_SIZE.
* sysdeps/posix/clock_getres.c: Recognize thread CPU clock IDs.
* sysdeps/unix/clock_gettime.c: Likewise.
* sysdeps/unix/clock_settime.c: Likewise.
* sysdeps/unix/clock_nanosleep.c (CPUCLOCK_P): Adjust for new
clock id for thread CPU clocks.
* sysdeps/pthread/aio_misc.h: Mark __aio_requests_mutex,
__aio_enqueue_request, __aio_find_req, __aio_find_req_fd,
__aio_free_request, __aio_notify, and __aio_sigqueue as hidden.
* sysdeps/pthread/aio_suspend.c (aio_suspend): Set errno to the result
of pthread_cond_wait if there was an error. Use pthread_cleanup_*
instead of __lbic_cleanup_region_*.
2003-06-19 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
* sysdeps/unix/sysv/linux/sem_post.c: ...here.
* sysdeps/unix/sysv/linux/sem_post.c: Move to...
* sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here. Pass nr + 1
instead of nr to lll_futex_wake. Only set errno and return -1
if err < 0.
* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
return actual return value from the syscall, not 0.
compat_timer_getoverrun.
* tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
find a random value.
(tf_msgrcv): Likewise. Also don't report msgrcv returns if
errno==EIDRM.
* sysdeps/unix/clock_nanosleep.c (clock_nanosleep): nanosleep
takes care of enabling cancellation.
* sysdeps/pthread/aio_suspend.c (aio_suspend): Make aio_suspend
cancelable. It's not correct to disable cancellation. Instead of
a cleanup handler.
2003-06-17 Ulrich Drepper <drepper@redhat.com>
* tst-cancel4.c: Add tests for the socket and signal functions, pause.
Also test early cancellation before the thread reaches the cancellation
point.
* Makefile: Compile forward.c with exceptions.
* sysdeps/unix/sysv/linux/sleep.c: New file.
* Makefile: Add CFLAGS definition to compile function wrappers
duplicated from libc with exceptions.
* tst-cancel4.c: Also check cancellation handlers.
2003-06-16 Ulrich Drepper <drepper@redhat.com>
* elf/rtld.c (dl_main): Use l_map_start not l_addr in Phdr
computation so that prelinking wroks.
* inet/netinet/ip6.h (IP6OPT_PAD1, IP6OPT_PADN): Define.
2003-06-15 Ulrich Drepper <drepper@redhat.com>
Fix cancellation point handling wrt exception based cleanup.
* io/Makefile: Compile fcntl.c, poll.c, and lockf.c with exceptions.
* misc/Makefile: Compile pselect.c, readv.c, writev.c, and usleep.c
with exceptions.
* posix/Makefile: Compile pread.c, pread64.c, pwrite.c, pwrite64.c,
sleep.c, wait.c, waitid.c, and waitpid.c with exceptions.
* rt/Makefile: Compile aio_suspend.c and clock_nanosleep.c with
exceptions.
* signal/Makefile: Compile sigpause.c, sigsuspend.c, sigtimedwait.c,
sigwait.c, and sigwaitinfo.c with exceptions.
* stdlib/Makefile: Compile system.c with exceptions.
* sysvipc/Makefile: Compile msgrcv.c and msgsnd.c with exceptions.
* termios/Makefile: Compile tcdrain.c with exceptions.
* sysdeps/generic/lockf.c: Add comment explaining the cancellation
situation.
* sysdeps/generic/pselect.c: Likewise.
* sysdeps/posix/sigpause.c: Likewise.
* sysdeps/posix/system.c: Likewise.
* sysdeps/posix/waitid.c: Likewise.
* sysdeps/unix/sysv/linux/sleep.c: Likewise.
* sysdeps/unix/sysv/linux/usleep.c: Likewise.
* sysdeps/unix/sysv/linux/i386/sysdep.h: Major rewrite of
INTERNAL_SYSCALL to not use push inside asm statement so that
unwind info is correct around the syscall.
* sysdeps/unix/clock_nanosleep.c: Add cancellation support.
* sysdeps/unix/sysv/linux/clock_nanosleep.c: Likewise.
2003-06-09 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
(__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
2003-06-08 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
hand-written CFI generation code. Since ENTRY/END also initiated
CFI frames this caused two CFI sets to be generated.
2003-06-04 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
(__pthread_cond_signal): Add some code to eventually handle
cond_lock!=0.
* Makefile (tests): Add tst-sem8 and tst-sem9.
* tst-sem8.c: New file.
* tst-sem9.c: New file.
* sem_open.c: Fix creation of in_use record if the file exists but
no internal record.
2003-05-31 Ulrich Drepper <drepper@redhat.com>
* libio/fileops.c (_IO_file_open): Don't mark as inline.
* sysdeps/ia64/elf/initfini.c ((gmon_initializer): Mark with
attribute used.
* tst-rwlock6.c (do_test): Use correct format specifier.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
(__lll_mutex_lock_wait): Replace one memory operation with one
register operation.
* sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
(__lll_mutex_lock_wait): Likewise.
2003-05-30 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
(__lll_mutex_cond_lock): Add one to value parameter of
__lll_lock_wait to reflect reality in the futex syscall.
* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
(lll_mutex_cond_lock): Likewise.
* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
(__lll_mutex_unlock_force): New function.
(lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
* tst-rwlock7.c (do_test): Use correct format specifier.
2003-05-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
Add __mutex field.
* sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
Define.
(lll_futex_wait, lll_futex_wake): Define.
* sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
FUTEX_REQUEUE instead of FUTEX_WAIT.
* sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
mutex which was used in condvar structure. Call
__pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
include tcb-offsets.h. Read wakeup value in locked region.
Use the value of gbr register as THREAD_ID.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
* sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
macros.
2003-05-28 Ulrich Drepper <drepper@redhat.com>
* include/libc-symbols.h: Define hidden attribute for real also if
LIBC_NONSHARED is defined. Patch by Jakub Jelinek.
* csu/Makefile: Add rules to build Scrt1.o.
* sysdeps/i386/elf/start.S: Make code compilable with SHARED.
2003-05-26 Ulrich Drepper <drepper@redhat.com>
* stdio-common/vfprintf.c (vfprintf): Be bug-compatible with some
other implementation in respect of multiple uses of parameter with
different types.
* pthread_join.c (pthread_join): Set tid field of the joined
thread to -1. This isn't necessary but helps to recognize some
error conditions with almost no cost.
* allocatestack.c (FREE_P): Also negative values indicate an
unused stack.
2003-05-08 Ulrich Drepper <drepper@redhat.com>
* malloc/thread-m.h: Remove special handling of thread_atfork if
HAVE_register_atfork_malloc is defined.
* sysdeps/generic/enbl-secure.c (__libc_enable_secure_decided): New
variable.
(__libc_init_secure): Don't do anything if __libc_enable_secure_decided
is nonzero.
* include/unistd.h: Declare __libc_enable_secure_decided.
* elf/dl-support.c (_dl_aux_init): Recognize AT_UID, AT_EUID, AT_GID,
and AT_EGID. If all found, set __libc_enable_secure and
__libc_enable_secure_decided.
2003-05-02 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
(pthread_condattr_t): Size is only an int, don't use long for
alignment.
(pthread_mutexattr_t): Likewise.
(pthread_barrierattr_t): Likewise.
* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.