diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | include/libio.h | 11 | ||||
-rw-r--r-- | nptl/ChangeLog | 4 | ||||
-rw-r--r-- | nptl/sysdeps/pthread/bits/stdio-lock.h | 3 |
4 files changed, 21 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 6cbb3498eb..227655be5f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2002-12-20 Ulrich Drepper <drepper@redhat.com> + * include/libio.h [_IO_MTSAFE_IO && _IO_lock_inexpensive]: + Redefine _IO_flockifle and _IO_funlockfile as inlines. + * sysdeps/generic/dl-sysdep.c (_dl_important_hwcaps): For TLS builds add "tls" in the search path. * elf/ldconfig.c (is_hwcap_platform): Also recognize "tls". diff --git a/include/libio.h b/include/libio.h index ee727e262f..633ee51bb7 100644 --- a/include/libio.h +++ b/include/libio.h @@ -10,4 +10,15 @@ libc_hidden_proto (__woverflow) libc_hidden_proto (__wunderflow) libc_hidden_proto (__wuflow) +#if defined _IO_MTSAFE_IO && _IO_lock_inexpensive +# undef _IO_flockfile +# define _IO_flockfile(_fp) \ + if (((_fp)->_flags & _IO_USER_LOCK) == 0) \ + _IO_lock_lock (*(_fp)->_lock) +# undef _IO_funlockfile +# define _IO_funlockfile(_fp) \ + if (((_fp)->_flags & _IO_USER_LOCK) == 0) \ + _IO_lock_unlock (*(_fp)->_lock) +#endif + #endif diff --git a/nptl/ChangeLog b/nptl/ChangeLog index ed7de44425..1cb4c372c2 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,7 @@ +2002-12-20 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define. + 2002-12-19 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define diff --git a/nptl/sysdeps/pthread/bits/stdio-lock.h b/nptl/sysdeps/pthread/bits/stdio-lock.h index ea622e4142..fbb14a1120 100644 --- a/nptl/sysdeps/pthread/bits/stdio-lock.h +++ b/nptl/sysdeps/pthread/bits/stdio-lock.h @@ -24,6 +24,9 @@ #include <lowlevellock.h> +/* The locking here is very inexpensive, even for inlining. */ +#define _IO_lock_inexpensive 1 + typedef struct { int lock; int cnt; void *owner; } _IO_lock_t; #define _IO_lock_initializer { LLL_MUTEX_LOCK_INITIALIZER, 0, NULL } |