Age | Commit message (Collapse) | Author |
|
2002-12-28 Ulrich Drepper <drepper@redhat.com>
* descr.h (struct pthread): Move header.data.list to the back of the
struct.
* sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
(MULTIPLE_THREADS_OFFSET): Adjust offset.
(SYSINFO_OFFSEET): Likewise.
2002-12-27 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
Define.
(DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
* sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
(USE_DL_SYSINFO): Undef.
2002-12-22 Jakub Jelinek <jakub@redhat.com>
* Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
$(common-objpfx)libc.so.
* tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
it is bigger than pipe buffer size even on arches with bigger
page size.
(tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
|
|
2002-12-18 Jakub Jelinek <jakub@redhat.com>
* misc/Versions [libc: GLIBC_2.3.1]: Move __libc_readv and
__libc_writev to...
[libc: GLIBC_PRIVATE]: ...here.
* sysvipc/Versions [libc: GLIBC_2.3.1]: Move __libc_msgrcv and
__libc_msgsnd to...
[libc: GLIBC_PRIVATE]: ...here.
|
|
* malloc/hooks.c [_LIBC && (USE___THREAD || (USE_TLS && !SHARED))]
(malloc_starter, memalign_starter, free_starter): Don't define these.
* malloc/malloc.c [_LIBC && (USE___THREAD || (USE_TLS && !SHARED))]:
Don't declare them either.
* malloc/arena.c (ptmalloc_init) [_LIBC && USE_TLS]: Don't call
__pthread_initialize, so no need to set hooks to *_starter.
(ptmalloc_init_minimal): New function, broken out of ptmalloc_init.
[_LIBC && SHARED && USE_TLS && !USE___THREAD]
(__libc_malloc_pthread_startup): New function.
* malloc/Versions (libc: GLIBC_PRIVATE): New set, add that function.
* malloc/hooks.c (memalign_starter): New function.
* malloc/malloc.c: Declare it.
* malloc/arena.c (save_memalign_hook): New variable.
(ptmalloc_init): Set __memalign_hook to memalign_starter.
* elf/dl-minimal.c (free): Clear the memory.
(calloc): Just call malloc, knowing all memory it returns is cleared.
* sysdeps/generic/dl-tls.c (allocate_dtv): Use calloc instead of
malloc and memset; calloc can avoid the zeroing when redundant.
(_dl_tls_setup): Likewise.
* elf/dl-load.c (decompose_rpath): Likewise.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Comment out memset
call, since memory from sbrk at startup is already zero.
* elf/rtld.c (_dl_start, dl_main): TLS_INIT_TP macro now returns an
error string for failure, null for success. Update callers.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Likewise.
* elf/dl-load.c (_dl_map_object_from_fd): Likewise.
|
|
TLS setup is required.
* elf/tst-tls5.c: Likewise.
* elf/tst-tls6.c: Likewise.
* elf/tst-tls7.c: Likewise.
* elf/tst-tls8.c: Likewise.
* elf/tst-tls9.c: Likewise.
* elf/rtld.c (dl_main): Remove [! SHARED] conditional from
`if (GL(dl_tls_max_dtv_idx) > 0)' tests for doing TLS setup.
* elf/dl-close.c (libc_freeres_fn): Check GL(dl_tls_dtv_slotinfo_list)
for being null before calling free_slotinfo.
* elf/dl-load.c (_dl_map_object_from_fd) [SHARED]: For PT_TLS in
dynamic loading, bail with error if GL(dl_tls_max_dtv_idx) is zero.
|
|
* include/features.h: Use __STDC_VERSION__ not __STDC_VERSION.
Reported by Miloslav Trmac <mitr@volny.cz> [PR libc/4766].
|
|
2002-11-04 Ulrich Drepper <drepper@redhat.com>
* manual/examples/dir.c: Don't include <stddef.h>.
* manual/examples/select.c: Include <errno.h> for TEMP_FAILURE_RETRY.
Reported by Frédéric Delanoy <delanoy_f@yahoo.com>.
2002-11-02 H.J. Lu <hjl@gnu.org>
* stdio-common/reg-printf.c: Include <stddef.h>.
|
|
|
|
* elf/elf.h (R_386_TLS_TPOFF, R_386_TLS_IE, R_386_TLS_GOTIE,
R_386_TLS_LE): Define.
(R_386_TLS_IE_32, R_386_TLS_LE_32, R_386_TLS_TPOFF32): Update
comments.
* sysdeps/i386/dl-machine.h (elf_machine_type_class): Return
ELF_RTYPE_CLASS_PLT for R_386_TLS_TPOFF.
(elf_machine_rel): Handle R_386_TLS_TPOFF.
(elf_machine_rela): Likewise.
Remove unnecessary RTLD_BOOTSTRAP #ifdefs.
|
|
* crypt/crypt.c: Changed copying permission notice to Lesser GPL
from Library GPL.
* crypt/crypt_util.c: Likewise.
* crypt/ufc.c: Likewise.
* elf/dl-conflict.c: Likewise.
* elf/dl-iteratephdr.c: Likewise.
* iconv/iconvconfig.h: Likewise.
* linuxthreads/Examples/ex10.c: Likewise.
* linuxthreads/Examples/ex11.c: Likewise.
* linuxthreads/Examples/ex13.c: Likewise.
* linuxthreads/Examples/ex8.c: Likewise.
* linuxthreads/Examples/ex9.c: Likewise.
* linuxthreads/barrier.c: Likewise.
* linuxthreads/events.c: Likewise.
* linuxthreads/lockfile.c: Likewise.
* linuxthreads/no-tsd.c: Likewise.
* linuxthreads/pt-machine.c: Likewise.
* linuxthreads/ptclock_gettime.c: Likewise.
* linuxthreads/ptclock_settime.c: Likewise.
* linuxthreads/rwlock.c: Likewise.
* linuxthreads/sysdeps/alpha/pspinlock.c: Likewise.
* linuxthreads/sysdeps/alpha/pt-machine.h: Likewise.
* linuxthreads/sysdeps/arm/pspinlock.c: Likewise.
* linuxthreads/sysdeps/arm/pt-machine.h: Likewise.
* linuxthreads/sysdeps/cris/pspinlock.c: Likewise.
* linuxthreads/sysdeps/cris/pt-machine.h: Likewise.
* linuxthreads/sysdeps/hppa/pspinlock.c: Likewise.
* linuxthreads/sysdeps/hppa/pt-machine.h: Likewise.
* linuxthreads/sysdeps/i386/i686/pt-machine.h: Likewise.
* linuxthreads/sysdeps/i386/pspinlock.c: Likewise.
* linuxthreads/sysdeps/i386/pt-machine.h: Likewise.
* linuxthreads/sysdeps/i386/useldt.h: Likewise.
* linuxthreads/sysdeps/ia64/pspinlock.c: Likewise.
* linuxthreads/sysdeps/ia64/pt-machine.h: Likewise.
* linuxthreads/sysdeps/m68k/pspinlock.c: Likewise.
* linuxthreads/sysdeps/m68k/pt-machine.h: Likewise.
* linuxthreads/sysdeps/mips/pspinlock.c: Likewise.
* linuxthreads/sysdeps/mips/pt-machine.h: Likewise.
* linuxthreads/sysdeps/powerpc/pspinlock.c: Likewise.
* linuxthreads/sysdeps/powerpc/pt-machine.h: Likewise.
* linuxthreads/sysdeps/pthread/bits/initspin.h: Likewise.
* linuxthreads/sysdeps/pthread/bits/libc-lock.h: Likewise.
* linuxthreads/sysdeps/pthread/bits/libc-tsd.h: Likewise.
* linuxthreads/sysdeps/pthread/getcpuclockid.c: Likewise.
* linuxthreads/sysdeps/pthread/posix-timer.h: Likewise.
* linuxthreads/sysdeps/pthread/timer_create.c: Likewise.
* linuxthreads/sysdeps/pthread/timer_delete.c: Likewise.
* linuxthreads/sysdeps/pthread/timer_getoverr.c: Likewise.
* linuxthreads/sysdeps/pthread/timer_gettime.c: Likewise.
* linuxthreads/sysdeps/pthread/timer_routines.c: Likewise.
* linuxthreads/sysdeps/pthread/timer_settime.c: Likewise.
* linuxthreads/sysdeps/pthread/tst-timer.c: Likewise.
* linuxthreads/sysdeps/s390/pspinlock.c: Likewise.
* linuxthreads/sysdeps/s390/s390-32/pt-machine.h: Likewise.
* linuxthreads/sysdeps/s390/s390-64/pt-machine.h: Likewise.
* linuxthreads/sysdeps/sh/pspinlock.c: Likewise.
* linuxthreads/sysdeps/sh/pt-machine.h: Likewise.
* linuxthreads/sysdeps/sparc/sparc32/pspinlock.c: Likewise.
* linuxthreads/sysdeps/sparc/sparc32/pt-machine.h: Likewise.
* linuxthreads/sysdeps/sparc/sparc32/sparcv9/pspinlock.c: Likewise.
* linuxthreads/sysdeps/sparc/sparc64/pspinlock.c: Likewise.
* linuxthreads/sysdeps/sparc/sparc64/pt-machine.h: Likewise.
* linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
* linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
* linuxthreads/sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise.
* linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Likewise.
* linuxthreads/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
* linuxthreads/tststack.c: Likewise.
* linuxthreads/unload.c: Likewise.
* linuxthreads/weaks.c: Likewise.
* linuxthreads/wrapsyscall.c: Likewise.
* malloc/arena.c: Likewise.
* malloc/hooks.c: Likewise.
* malloc/malloc.c: Likewise.
* posix/glob/Makefile.ami: Likewise.
* posix/glob/Makefile.in: Likewise.
* stdlib/gmp-impl.h: Likewise.
* stdlib/gmp.h: Likewise.
* sysdeps/generic/dl-iteratephdr-static.c: Likewise.
* sysdeps/generic/strnlen.c: Likewise.
* sysdeps/mach/hurd/powerpc/bits/sigcontext.h: Likewise.
* sysdeps/mach/hurd/recvmsg.c: Likewise.
* sysdeps/mach/hurd/sendmsg.c: Likewise.
* sysdeps/mach/hurd/spawni.c: Likewise.
* sysdeps/mach/powerpc/machine-sp.h: Likewise.
* sysdeps/mach/powerpc/sysdep.h: Likewise.
* sysdeps/mach/powerpc/thread_state.h: Likewise.
* sysdeps/unix/bsd/bsd4.4/bits/socket.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/dl-iteratephdr-static.c: Likewise.
* sysdeps/x86_64/gmp-mparam.h: Likewise.
|
|
* sysdeps/i386/useldt.h (INIT_THREAD_SELF): Remove [HAVE_TLS_SUPPORT]
conditional.
(INIT_THREAD_SELF): Pass second arg to DO_SET_THREAD_AREA.
(DO_SET_THREAD_AREA): Take second arg, pass to DO_SET_THREAD_AREA_REUSE
macro. That chooses whether to reuse %gs value or let kernel set it.
[USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, always 1.
[!USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, true if arg is
not constant 0.
|
|
2002-08-21 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/tls.h (TLS_SETUP_GS_SEGMENT): Add new parameter
also to the third definition of this macro.
|
|
* sysdeps/i386/useldt.h: Go back to using 16-bit instructions when
loading/reading segment registers. Some old hardware doesn't
handle the 32-bit instructions as expected.
* sysdeps/i386/tls.h: Likewise.
|
|
is negated. (TLS_SETUP_GS_SEGMENT): Likewise. (TLS_INIT_TP): Likewise.
|
|
* include/unistd.h: Don't hide _exit.
|
|
* elf/rtld.c (_dl_start): Pass extra argument 1 to TLS_INIT_TP.
(dl_main): Padd extra argument 0 to TLS_INIT_TP.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Pass extra
argument 1 to TLS_INIT_TP.
* sysdeps/generic/tls.h (TLS_INIT_TP): Describe new parameter.
* locale/loadarchive.c (_nl_load_locale_from_archive): Store strdup of
|
|
|
|
register value from entry number properly.
|
|
optimally conditional on [__PIC__].
(TLS_DO_SET_THREAD_AREA): New macro, implement inline syscall
without touching errno, and use latest modify_ldt-like interface.
(TLS_SETUP_GS_SEGMENT): Use that instead of INLINE_SYSCALL.
* sysdeps/i386/useldt.h (DO_MODIFY_LDT): Set %gs in this macro.
(DO_SET_THREAD_AREA): New macro, uses current syscall interface with
existing %gs value as the segment to set.
(INIT_THREAD_SELF): Rewritten using those. Use set_thread_area only
under [HAVE_TLS_SUPPORT] so we can rely on the initialization done
by the first thread's early TLS setup.
|
|
* locale/loadarchive.c (_nl_load_locale_from_archive): Braino fix
in change before last: MAX -> MIN.
|
|
2002-08-08 Ulrich Drepper <drepper@redhat.com>
* gmon/gmon.c (write_gmon): Use O_NOFOLLOW in open calls if available.
|
|
* sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Add an extra argument with
an "m" constraint to the asm so the compiler knows LDT_ENTRY was used.
|
|
* sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Add missing \s.
|
|
* sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): New macro, broken out of
TLS_INIT_TP.
(TLS_DO_SET_THREAD_AREA): New macro, uses thread_set_area syscall.
(TLS_SETUP_GS_SEGMENT): New macro, try one or the other or both.
(TLS_INIT_TP): Use that.
|
|
|
|
sys_thread_area syscall instead if available. (FREE_THREAD): Avoid modify_ldt if using GDT.
|
|
2002-07-24 Ulrich Drepper <drepper@redhat.com>
* libio/fileops.c (_IO_file_seekoff_mmap): Do use fp->_offset to
compute current position.
* stdio-common/tst-fseek.c (main): Improve error messages.
* libio/tst-freopen.c (main): Remove unused variable.
* libio/fileops.c (_IO_file_seekoff_mmap): Set fp->_offset after
succesful seek call. Simply error checking.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* config.h.in: Use __ASSEMBLER__ test macro not ASSEMBLER.
* sysdeps/ia64/fpu/libm_support.h: Likewise.
|
|
2002-07-19 Ulrich Drepper <drepper@redhat.com>
* configure.in: Add test for __thread support in compiler.
* config.h.in: Add HAVE___THREAD.
* Makefile (headers): Remove errno.h, sys/errno.h, and bits/errno.h.
* include/sys/errno.h: Moved to...
* stdlib/sys/errno.h: ...here. New file.
* stdlib/errno.h: New file. Moved from...
* include/errno.h: ...here. Changed into an internal header defining
libc-local things like __set_errno.
* stdlib/Makefile (headers): Add errno.h, sys/errno.h, and
bits/errno.h.
* elf/dl-minimal.c: Include <tls.h>. Define errno as thread-local
variable if USE_TLS && HAVE___THREAD. Don't define __errno_location
either.
* elf/rtld.c (_dl_start): Add code to initialize TLS for ld.so
from...
(_dl_start_final): ...here. Add code to initialize tls elements from
bootstrap_map.
* sysdeps/generic/errno-loc.c: Define errno as thread-local variable
if USE_TLS && HAVE___THREAD.
* sysdeps/generic/bits/errno.h: Remove __set_errno definition.
* sysdeps/mach/hurd/bits/errno.h: Likewise.
* sysdeps/standalone/arm/bits/errno.h: Likewise.
* sysdeps/standalone/bits/errno.h: Likewise.
* sysdeps/unix/bsd/bsd4.4/bits/errno.h: Likewise.
* sysdeps/unix/sysv/aix/bits/errno.h: Likewise.
* sysdeps/unix/sysv/hpux/bits/errno.h: Likewise.
* sysdeps/unix/sysv/linux/bits/errno.h: Likewise.
* sysdeps/unix/sysv/linux/hppa/bits/errno.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/errno.h: Likewise.
* sysdeps/unix/sysv/sysv4/solaris2/bits/errno.h: Likewise.
* sysdeps/i386/dl-machine.c (elf_machine_rel) [RTLD_BOOTSTRAP]: Don't
use GL(dl_rtld_map), use map parameter.
* sysdeps/sh/dl-machine.h (elf_machine_rela): Likewise.
* sysdeps/unix/sysv/linux/i386/sysdep.S: Define errno in .tbss if
USE_TLS && HAVE___THREAD.
* sysdeps/unix/sysv/linux/i386/sysdep.h: Unify SETUP_PIC_REG
definitions. If USE_TLS && HAVE___THREAD store errooor value using
TLS code sequence.
* sysdeps/unix/sysv/linux/i386/i686/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/getcwd.c: No real need to restore errno.
* sysdeps/unix/sysv/linux/grantpt.c: Likewise.
* sysdeps/unix/sysv/linux/internal_statvfs.c: Likewise.
* sysdeps/unix/sysv/linux/msgctl.c: Likewise.
* sysdeps/unix/sysv/linux/readv.c: Likewise.
* sysdeps/unix/sysv/linux/writev.c: Likewise.
|
|
2002-04-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
* elf/elf.h: Define R_SH_TLS_xxx macros.
* elf/rtld.c: Remove an extra parenthesis.
* elf/tls-macros.h: Define SH version TLS_LE, TLS_IE, TLS_LD and
TLS_GD macros.
* sysdeps/generic/dl-tls.c: Add a missing semi-colon.
* sysdeps/sh/dl-lookupcfg.h: New file.
* sysdeps/sh/dl-tls.h: New file.
* sysdeps/sh/dl-machine.h (elf_machine_type_class): Set
ELF_RTYPE_CLASS_PLT also for the three TLS relocations.
(elf_machine_rela): Handle R_SH_TLS_DTPMOD32, R_SH_TLS_DTPOFF32 and
R_SH_TLS_TPOFF32 relocations.
|
|
prototpyes.
* sysdeps/alpha/pt-machine.h: Likewise.
* sysdeps/arm/pt-machine.h: Likewise.
* sysdeps/cris/pt-machine.h: Likewise.
* sysdeps/hppa/pt-machine.h: Likewise.
* sysdeps/i386/i686/pt-machine.h: Likewise.
* sysdeps/ia64/pt-machine.h: Likewise.
* sysdeps/m68k/pt-machine.h: Likewise.
* sysdeps/mips/pt-machine.h: Likewise.
* sysdeps/powerpc/pt-machine.h: Likewise.
* sysdeps/s390/s390-32/pt-machine.h: Likewise.
* sysdeps/s390/s390-64/pt-machine.h: Likewise.
* sysdeps/sh/pt-machine.h: Likewise.
* sysdeps/sparc/sparc32/pt-machine.h: Likewise.
* sysdeps/sparc/sparc64/pt-machine.h: Likewise.
* sysdeps/x86_64/pt-machine.h: Likewise.
* internals.h: Move testandset and __compare_and_swap prototypes
to pt-machine.h.
2002-03-17 Andreas Jaeger <aj@suse.de>
* sysdeps/i386/pt-machine.h: Add testandset and __compare_and_swap
prototpyes.
* sysdeps/alpha/pt-machine.h: Likewise.
* sysdeps/arm/pt-machine.h: Likewise.
* sysdeps/cris/pt-machine.h: Likewise.
* sysdeps/hppa/pt-machine.h: Likewise.
* sysdeps/i386/i686/pt-machine.h: Likewise.
* sysdeps/ia64/pt-machine.h: Likewise.
* sysdeps/m68k/pt-machine.h: Likewise.
* sysdeps/mips/pt-machine.h: Likewise.
* sysdeps/powerpc/pt-machine.h: Likewise.
* sysdeps/s390/s390-32/pt-machine.h: Likewise.
* sysdeps/s390/s390-64/pt-machine.h: Likewise.
* sysdeps/sh/pt-machine.h: Likewise.
* sysdeps/sparc/sparc32/pt-machine.h: Likewise.
* sysdeps/sparc/sparc64/pt-machine.h: Likewise.
* sysdeps/x86_64/pt-machine.h: Likewise.
* internals.h: Move testandset and __compare_and_swap prototypes
to pt-machine.h.
|
|
* attr.c (pthread_getattr_np): Don't take thread descriptor size
into account if USE_TLS.
* manager.c (pthread_handle_create): Free TLS data structures if call
failed. Pass correct stack to clone if USE_TLS.
* sysdeps/i386/pt-machine.h: Handle multiple inclusion.
* sysdeps/i386/i686/pt-machine.h: Likewise.
* sysdeps/i386/tls.h: Unconditionally include <pt-machine.h>.
|
|
2002-02-23 Ulrich Drepper <drepper@redhat.com>
* csu/set-init.c: Moved to...
* sysdeps/mach/hurd/set-init.c: ...here. New file.
* csu/Makefile: Don't compile set-init.
* sysdeps/mach/hurd/Makefile: Compile set-init for subdir csu.
* sysdeps/mach/hurd/i386/init-first.c: Call __init_misc in addition
to __libc_init.
* sysdeps/mach/hurd/mips/init-first.c: Likewise.
* sysdeps/mach/hurd/powerpc/init-first.c: Likewise.
* sysdeps/unix/sysv/linux/init-first.c: Call __init_misc instead of
__libc_init.
* misc/init-misc.c: Always export __init_misc. Don't define hooks for
__libc_subinit.
|
|
2002-02-12 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/dl-tls.c (TLS_DTV_UNALLOCATED): Renamed from
TLS_DTV_UNALLOCATE.
(oom): New function.
(_dl_next_tls_modid): Rewrite to handle dl_tls_dtv_slotinfo_list.
(_dl_determine_tlsoffset): Likewise.
(_dl_allocate_tls): Likewise.
(__TLS_GET_ADDR): Define if not already defined.
(_dl_tls_symaddr): New function.
(allocate_and_init): New function.
(__tls_get_addr): Actually implement handling of generation counter
and deferred allocation.
* sysdeps/generic/ldsodefs.h (_rtld_global): Remove _dl_initimage_list,
add _dl_tls_dtv_slotinfo_list, _dl_tls_static_nelem, and
_dl_tls_generation.
Define TLS_SLOTINFO_SURPLUS and DTV_SURPLUS.
Declare _dl_tls_symaddr.
* sysdeps/i386/dl-tls.h: Disable __tls_get_addr handling unless
SHARED.
* include/link.h (struct link_map): Remove l_tls_nextimage and
l_tls_previmage.
* elf/dl-sym.c (_dl_sym): After successful lookup call _dl_tls_symaddr
instead of DL_SYMBOL_ADDRESS for STT_TLS symbols.
(_dl_vsym): Likewise.
* elf/rtld.c (_dl_start_final): Adjust initdtv initialization for new
layout.
(dl_main): Allow PT_TLS be present for empty segment. Remove
nextimage list handling. Instead add all modules using TLS to
dl_tls_dtv_slotinfo_list.
* elf/dl-open.c (dl_open_worker): After successfully loading all
objects add those with TLS to the dl_tls_dtv_slotinfo_list list.
* elf/dl-load.c (_dl_map_object_from_fd): If PT_TLS entry is for an
empty segment don't do anything. Remove handling of initimage list.
* elf/Versions [ld] (GLIBC_2.0): Add __libc_memalign.
(GLIBC_PRIVATE): Add _dl_tls_symaddr.
* elf/dl-minimal.c: Define __libc_memalign.
* elf/dl-support.c: Remove _dl_initimage_list. Add
_dl_tls_dtv_slotinfo_list, _dl_tls_static_nelem, and
_dl_tls_generation.
* include/stdlib.h: Declare __libc_memalign.
* elf/Makefile: Add rules to build and run tst-tls4 and tst-tls5.
* elf/tst-tls4.c: New file.
* elf/tst-tls5.c: New file.
* elf/tst-tlsmod2.c: New file.
* elf/tls-macros.h: asms using ___tls_get_addr destroy %ecx and %edx.
* elf/tst-tlsmod1.c: Don't define variables unles USE_TLS.
* elf/tst-tls1.c: Use test-skeleton.c.
* elf/tst-tls2.c: Likewise.
* elf/tst-tls3.c: Likewise.
* elf/dl-conflict.c (RESOLVE_MAP): Return NULL not 0.
* sysdeps/mips/machine-gmon.h: Update MCOUNT for current GCC behavior.
|
|
2002-02-08 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/tls.h (TLS_INIT_TP): Also initialize %gs.
|
|
2002-02-08 Ulrich Drepper <drepper@redhat.com>
* elf/rtld.c (_dl_start_final): Install DTV explicitly.
(dl_main): Move dtv/static TLS handling before relocation.
Unconditionally call _dl_tlsoffset. Call _dl_allocate_tls and
TLS_INIT_TP to allocate and install the dtv/static TLS block.
* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): If no object
so far uses TLS initialize GL(dl_tls_static_size) and
GL(dl_tls_static_align) to account for the TCB.
(_dl_allocate_tls): New function.
* sysdeps/generic/ldsodefs.h (rtld_global): Add
_dl_initial_dtv_malloced.
* configure.in: Test for __builtin_memset more realistically.
* csu/version.c (banner): If TLS support available say so.
|
|
2002-02-07 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Account for
alignment of the TCB and store total size and alignment of static
TLS block in _dl_tls_static_size and _dl_tls_static_align.
tls_index is a typedef.
* sysdeps/generic/ldsodefs.h: Declare _dl_tls_static_size and
_dl_tls_static_align.
* sysdeps/i386/dl-tls.h: tls_index is a typedef.
* elf/dl-support.c: Define _dl_tls_static_size and
_dl_tls_static_align.
|
|
2002-02-06 Ulrich Drepper <drepper@redhat.com>
* configure.in: Add --without-tls option.
* sysdeps/i386/elf/configure.in: Don't check for TLS support if
--without-tls is given.
* sysdeps/generic/dl-tls.c: Include <tls.h>.
* sysdeps/i386/dl-tls.h: Don't define anything if !USE_TLS.
|
|
2002-02-06 Ulrich Drepper <drepper@redhat.com>
* Versions.def [ld]: Add GLIBC_2.3.
* elf/Versions [ld]: Add __tls_get_addr to GLIBC_2.3.
* elf/Makefile (dl-routines): Add dl-tls.
(distribute): Add dl-tls.h.
* sysdeps/generic/ldsodefs.h (struct rtld_global): Remove
_dl_tls_module_cnt, add _dl_tls_max_dtv_idx and _dl_tls_dtv_gaps.
Add prototypes for _dl_next_tls_modid and _dl_determine_tlsoffset.
* elf/dl-load.c (_dl_map_object_from_fd): Store alignment requirement
along with the other info in the link map. Change queueing of init
images for double linked list. Use _dl_next_tls_modid to compute
l_tls_modid.
* elf/rtld.c (_dl_start_final): Store alignment requirement
along with the other info in rtld map and executable map.
(dl_main): Add ld.so to the init image list if necessary. Compute
final module ID with _dl_next_tls_modid.
* include/link.h (struct link_map): Add l_tls_previmage and
l_tls_align.
* eld/dl-support.c: Define _dl_tls_max_dtv_idx and _dl_tls_dtv_gaps.
* sysdeps/i386/elf/Versions: New file.
* sysdeps/generic/dl-tls.c: New file.
* sysdeps/generic/dl-tls.h: New file.
* sysdeps/i386/dl-tls.h: New file.
attribute((packed)) to counter stupid people misusing gcc options.
|
|
* elf/rtld.c (_dl_start_final): Allocate TLS and initialize
thread-pointer as soon as possible.
* sysdeps/generic/ldsodefs.h: Include <tls.h>. Define first TLS
elements in rtld_global.
* sysdeps/generic/tls.h: New file.
* elf/Makefile (distribute): Add tls.h.
* sysdeps/i386/dl-machine.h (elf_machine_rel): Add support for TLS
relocations. Not complete yet.
* resolv/resolv.h: Allow user to define __need_res_state and only
define __res_start structure then.
* include/resolv.h: Only declare functions if _RESOLV_H_ is defined.
|
|
2002-02-01 Jakub Jelinek <jakub@redhat.com>
* Versions.def (libc): Add GLIBC_PRIVATE.
(libdb, libnss_db, libdb1): Remove.
(libnss_compat, libnss_dns, libnss_files, libnss_hesiod, libnss_nis,
libnss_nisplus): Move all symbols to GLIBC_PRIVATE.
(libpthread): Add GLIBC_PRIVATE.
(libresolv): Likewise, remove GLIBC_2.1.
(ld): Add GLIBC_PRIVATE, remove GLIBC_2.1.1, GLIBC_2.2, GLIBC_2.2.1,
GLIBC_2.2.3, GLIBC_2.3.
* catgets/Versions (__open_catalog): Move to GLIBC_PRIVATE.
* elf/Versions (_dl_open, _dl_close, _dl_addr, _dl_init_first,
_dl_sym, _dl_vsym): Likewise.
(__libc_enable_secure, __libc_stack_end, _dl_argv, _dl_catch_error,
_dl_check_all_versions, _dl_check_map_versions, _dl_debug_initialize,
_dl_debug_printf, _dl_debug_state, _dl_dst_count, _dl_dst_substitute,
_dl_init, _dl_lookup_symbol, _dl_lookup_symbol_skip,
_dl_lookup_versioned_symbol, _dl_lookup_versioned_symbol_skip,
_dl_map_object, _dl_map_object_deps, _dl_out_of_memory,
_dl_relocate_object, _dl_signal_error, _dl_start_profile,
_dl_starting_up, _dl_sysdep_start, _dl_unload_cache, _rtld_global):
Likewise.
(_dl_object_relocation_scope): Remove.
* hesiod/Versions: Move all symbols to GLIBC_PRIVATE.
* iconv/Versions (__gconv_alias_db, __gconv_modules_db,
__gconv_cache): Move to GLIBC_PRIVATE.
* inet/Versions (__internal_endnetgrent, __internal_getnetgrent_r,
__internal_setnetgrent): Likewise.
* io/Versions (__libc_open, __libc_close, __libc_read, __libc_write,
__libc_lseek, __libc_fcntl, __libc_open64, __libc_lseek64): Likewise.
* locale/Versions (__collate_element_hash, __collate_element_strings,
__collate_symbol_classes, __collate_symbol_hash,
__collate_symbol_strings, _nl_current_LC_COLLATE,
_nl_current_LC_CTYPE): Likewise.
* misc/Versions (__libc_fsync, __libc_msync): Likewise.
* nis/Versions (libnss_compat): Move all symbols to GLIBC_PRIVATE.
(libnss_nis, libnss_nisplus): Likewise.
* nss/Versions (_nss_files_parse_grent, _nss_files_parse_pwent,
_nss_files_parse_spent): Move to GLIBC_PRIVATE.
(libnss_files): Move all symbols to GLIBC_PRIVATE.
* posix/Versions (__libc_wait, __libc_waitpid, __libc_pause,
__libc_nanosleep, __libc_fork, __libc_pread, __libc_pread64,
__libc_pwrite, __libc_pwrite64): Move to GLIBC_PRIVATE.
* resolv/Versions (__gai_sigqueue, __ns_name_unpack, __ns_name_ntop,
__ns_get16, __ns_samename): Likewise.
(libnss_dns): Move all symbols to GLIBC_PRIVATE.
* setjmp/Versions (__libc_longjmp, __libc_siglongjmp): Move to
GLIBC_PRIVATE.
* socket/Versions (__libc_accept, __libc_send, __libc_recvfrom,
__libc_recvmsg, __libc_sendmsg, __libc_recv, __libc_sendto,
__libc_connect): Likewise.
* stdio-common/Versions (_itoa_lower_digits, _itoa_upper_digits):
Likewise.
* stdlib/Versions (__libc_system): Likewise.
* sunrpc/Versions (__rpc_thread_destroy): Likewise.
* sysdeps/hppa/Versions: Move all symbols to GLIBC_PRIVATE.
* sysdeps/ia64/fpu/Versions: Likewise.
* sysdeps/ia64/Versions: Likewise.
* sysdeps/unix/sysv/linux/ia64/Versions: Likewise.
* sysdeps/unix/sysv/linux/i386/Versions (__modify_ldt): Move
to GLIBC_PRIVATE.
* sysdeps/unix/sysv/linux/x86_64/Versions (__modify_ldt): Likewise.
* sysdeps/unix/sysv/linux/Versions (__syscall_rt_sigqueueinfo,
__libc_sigaction): Likewise.
* termios/Versions (__libc_tcdrain): Likewise.
* misc/sys/cdefs (__attribute_noinline__): Define.
* elf/dl-lookup.c (_dl_do_lookup, _dl_do_lookup_versioned): Add
__attribute_noinline__.
* elf/Makefile (rtld-routines): Add dl-xstat64, dl-fxstat64.
* elf/dl-xstat64.c: New file.
* elf/dl-fxstat64.c: New file.
* sysdeps/unix/sysv/linux/fxstat64.c: If RTLD_STAT64 is defined,
don't export __fxstat64 at multiple versions.
* sysdeps/unix/sysv/linux/lxstat64.c: Similarly.
* sysdeps/unix/sysv/linux/xstat64.c: Similarly.
|
|
2001-11-15 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/i686/Implies: Removed.
* sysdeps/i386/i686/Versions: New file.
|
|
2001-08-29 Ulrich Drepper <drepper@redhat.com>
* spinlock.c (__pthread_lock): Top max_count value with
MAX_ADAPTIVE_SPIN_COUNT.
* internals.h (MAX_ADAPTIVE_SPIN_COUNT): Define if not already done.
* sysdeps/i386/i686/pt-machine.h (BUSY_WAIT_NOP): New macro to
help P4.
|
|
2001-07-19 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/useldt.h: Fix typo in ARCH_STACK_MAX_SIZE comment.
* sysdeps/ia64/pt-machine.h (FLOATING_STACKS): Define.
(ARCH_STACK_MAX_SIZE): Define.
* manager.c (pthread_allocate_stack): Handle FLOATING_STACKS with
NEED_SEPARATE_REGISTER_STACK.
|
|
* sysdeps/unix/i386/i586/clock_getres.c: Removed.
* sysdeps/unix/i386/i586/clock_gettime.c: Removed.
* sysdeps/unix/i386/i586/clock_nanosleep.c: Removed.
* sysdeps/unix/i386/i586/clock_settime.c: Removed.
* sysdeps/unix/i386/i586/cpuclock-init.h: Removed.
* sysdeps/generic/cpuclock-init.h: Removed.
* sysdeps/unix/i386/i686/Implies: Removed.
* sysdeps/unix/i386/i686/tempname.c: Removed.
* sysdeps/i386/i686/Versions: New file.
* sysdeps/unix/i386/i586/Versions: Removed.
* sysdeps/posix/clock_getres.c: If HP_TIMING_AVAIL is nonzero handle
CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
* sysdeps/unix/clock_gettime.c: Likewise.
* sysdeps/unix/clock_nanosleep.c: Likewise.
* sysdeps/unix/clock_settime.c: Likewise.
* sysdeps/posix/tempname.c: Is HP_TIMING_AVAIL is nonzero define
RANDOM_BITS use CPU clock.
* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/bits/time.h: New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9b/bits/time.h: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/time.h: New file.
* sysdeps/sparc/Versions: New file.
* elf/dl-support.c: Don't use cpuclock-init.h definitions, use
hp-timing.h definitions.
* sysdeps/generic/dl-sysdep.c: Likewise.
* include/libc-internal.h: Include hp-timing.h. Use hp_timing_t in
__get_clockfreq prototype.
* sysdeps/unix/sysv/linux/i386/get_clockfreq.c (__get_clockfreq):
Use hp_timing_t type.
* sysdeps/unix/sysv/linux/ia64/get_clockfreq.c: New file.
|
|
2001-04-21 Ulrich Drepper <drepper@redhat.com>
* elf/dl-support.c: Include cpuclock-init.h. Use CPUCLOCK_VARDEF and
CPUCLOCK_INIT if defined.
* sysdeps/generic/dl-sysdep.c: Likewise.
* sysdeps/generic/cpuclock-init.h: New file.
* sysdeps/unix/i386/i586/cpuclock-init.h: New file.
* sysdeps/unix/i386/i586/Versions: New file.
* sysdeps/unix/i386/i586/clock_settime.c: New file.
* sysdeps/unix/i386/i586/clock_gettime.c: Handle thread CPU clock
separately by calling __pthread_clock_gettime if this function is
available. Subtract offset from tsc value before computing time value.
|
|
* sysdeps/i386/Makefile: Make sure gcc uses a frame pointer for
all the files which use CURRENT_STACK_FRAME.
|
|
2001-04-12 Bruno Haible <haible@clisp.cons.org>
* iconvdata/TESTS2: New file.
* iconvdata/run-iconv-test.sh: Also run tests from TESTS2.
* iconvdata/testdata/alfabeta..UTF-8: New file.
* iconvdata/testdata/alfabeta..UTF-16.BE: New file.
* iconvdata/testdata/alfabeta..UTF-16.LE: New file.
* iconvdata/testdata/alfabeta..UTF-32.BE: New file.
* iconvdata/testdata/alfabeta..UTF-32.LE: New file.
2001-04-11 Bruno Haible <haible@clisp.cons.org>
* iconvdata/utf-32.c: New file.
* iconvdata/gconv-modules: Add entries for UTF-32, UTF-32LE, UTF-32BE.
* iconvdata/Makefile (modules): Add UTF-32.
(distribute): Add utf-32.c.
2001-04-11 Bruno Haible <haible@clisp.cons.org>
* iconvdata/utf-16.c (PREPARE_LOOP): Initialize 'swap' after possibly
changing it in the state. After incrementing 'inptr', store it back.
* iconvdata/unicode.c (PREPARE_LOOP): After incrementing 'inptr',
store it back.
2001-04-11 Bruno Haible <haible@clisp.cons.org>
* iconvdata/utf-16.c (gconv_init): Use MAX_NEEDED_FROM, not
MIN_NEEDED_FROM.
|
|
* elf/Makefile: Add rules to build and run initfirst test.
* elf/initfirst.c: New file.
* elf/firstobj.c: New file.
|
|
* include/sys/wait.h: Add some prototypes.
* Rules (dummy.c): Create also prototype to shut up GCC.
2000-12-27 Andreas Jaeger <aj@suse.de>
|
|
|
|
* 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.
|