map if requested.
* debug/chk_fail.c: Request backtrace and memory map dump.
* Versions.def: Add GLIBC_2.4 for libc.
* debug/fgets_chk.c: New file.
* debug/fgets_u_chk.c: New file.
* debug/getcwd_chk.c: New file.
* debug/getwd_chk.c: New file.
* debug/readlink_chk.c: New file.
* debug/read_chk.c: New file.
* debug/pread_chk.c: New file.
* debug/pread64_chk.c: New file.
* debug/recv_chk.c: New file.
* debug/recvfrom_chk.c: New file.
* debug/Versions: Add all new functions with version GLIBC_2.4.
* debug/Makefile (routines): Add fgets_chk, fgets_u_chk, read_chk,
pread_chk, pread64_chk, recv_chk, recvfrom_chk, readlink_chk,
getwd_chk, and getcwd_chk. Plus appropriate CFLAGS definitions.
* debug/tst-chk1.c: Add more tests.
* libio/bits/stdio2.h: Add macros for fgets and fgets_unlocked.
* include/stdio.h: Declare __fgets_chk and __fgets_unlocked_chk.
* posix/unistd.h: Include <bits/unistd.h> for fortification.
* posix/bits/unistd.h: New file.
* posix/Makefile (headers): Add bits/unistd.h.
* socket/sys/socket.h: Include <bits/socket2.h> for fortification.
* socket/bits/socket2.h: New file.
* socket/Makefile (headers): Add bits/socket2.h.
* string/bits/string3.h: Extend memset macro to check for zero 3rd
parameter and use __memset_zero_constant_len_parameter in that case.
* sysdeps/generic/memset_chk.c: Add
__memset_zero_constant_len_parameter alias and linker warning.
* debug/Versions: Add __memset_zero_constant_len_parameter to libc
with version GLIBC_2.4.
* sysdeps/generic/bits/types.h: Don't unnecessarily use __extension__
in __STD_TYPE definition.
2005-02-21 Jakub Jelinek <jakub@redhat.com>
* malloc/malloc.c (malloc_printerr): If MALLOC_CHECK_={5,7}, print
the error message rather than program name.
2005-02-21 Ulrich Drepper <drepper@redhat.com>
* misc/sys/cdefs.h (__attribute_warn_unused_result__): Define.
* stdlib/stdlib.h: Make realloc with
__attribute_warn_unused_result__ instead of __wur.
* malloc/malloc.h: Add __wur and __attribute_warn_unused_result__
markers as in <stdlib.h>.
Update.
2004-10-19 Wolfram Gloger <wg@malloc.de>
* malloc/hooks.c (mem2chunk_check, top_check): Handle
non-contiguous arena. Reported by Michael Dalton
<mwdalton@stanford.edu> [BZ #457]. Add further checks for top chunk.
2004-12-11 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (_int_realloc): Add checks for corrupted memory.
(_int_free): Make clear message are result of free() calls.
* malloc/malloc.c (_int_realloc): Remove unnecessary tests for
oldmem and size == 0.
2004-11-19 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (_int_free): Add a few more cheap tests for
corruption.
* debug/fprintf_chk.c: Adjust all users.
2004-11-13 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (malloc_state): stat_lock_* elements need only
be defined if THREAD_STATS is defined. Remove pad0_ since it does
not align with cache line sizes in general anyway.
2004-11-13 Jakub Jelinek <jakub@redhat.com>
* elf/rtld.c (print_statistics): Avoid segfaults if not all namespaces
are used. Fix computation of num_relative_relocations on RELA
architectures other than IA-64 and Alpha.
2004-11-13 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (_int_free): Use munmap_chunk for handling
mmaped memory.
2004-11-12 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/libc_fatal.c: Add new function __libc_message
which performs the printing and simple format string handling. The
string is written to tty, stderr, syslog in this order, stopping after
the first successful output.
(__libc_fatal): Call __libc_message.
* include/stdio.h: Declare __libc_message.
* malloc/malloc.c (malloc_printerr): Use __libc_message.
* debug/chk_fail.c: Also print message with __libc_message.
* debug/test-strcpy_chk.c: Ensure that debug messages are not printed
to the terminal or stderr.
* debug/tst-chk1.c: Likewise.
* posix/Makefile: Remove gpl2lgpl variable.
2004-10-30 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/waitid.c: Include <stddef.h> for NULL.
2004-10-30 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (_int_free): Use unique comments for the error
cases.
2004-10-18 Jakub Jelinek <jakub@redhat.com>
* elf/dl-libc.c (__libc_dlsym_private, __libc_register_dl_open_hook):
New functions.
(__libc_dlopen_mode): Call __libc_register_dl_open_hook and
__libc_register_dlfcn_hook.
* dlfcn/Makefile (routines, elide-routines.os): Set.
Add rules to build and test tststatic2.
* dlfcn/tststatic2.c: New test.
* dlfcn/modstatic2.c: New test module.
* dlfcn/dladdr.c: Call _dlfcn_hook from libdl.so if not NULL.
Define __ prefixed routine in libc.a and in libdl.a just call it.
* dlfcn/dladdr1.c: Likewise.
* dlfcn/dlclose.c: Likewise.
* dlfcn/dlerror.c: Likewise.
* dlfcn/dlinfo.c: Likewise.
* dlfcn/dlmopen.c: Likewise.
* dlfcn/dlopen.c: Likewise.
* dlfcn/dlopenold.c: Likewise.
* dlfcn/dlsym.c: Likewise.
* dlfcn/dlvsym.c: Likewise.
* dlfcn/sdladdr.c: New file.
* dlfcn/sdladdr1.c: New file.
* dlfcn/sdlclose.c: New file.
* dlfcn/sdlerror.c: New file.
* dlfcn/sdlinfo.c: New file.
* dlfcn/sdlopen.c: New file.
* dlfcn/sdlsym.c: New file.
* dlfcn/sdlvsym.c: New file.
* dlfcn/Versions (libdl): Export _dlfcn_hook@GLIBC_PRIVATE.
* include/dlfcn.h (DL_CALLER_DECL, DL_CALLER RETURN_ADDRESS): Define.
(struct dlfcn_hook): New type.
(_dlfcn_hook): New extern decl.
(__dlopen, __dlclose, __dlsym, __dlerror, __dladdr, __dladdr1,
__dlinfo, __dlmopen, __libc_dlsym_private,
__libc_register_dl_open_hook, __libc_register_dlfcn_hook): New
prototypes.
(__dlvsym): Use DL_CALLER_DECL.
* include/libc-symbols.h: Define libdl_hidden_proto and friends.
* malloc/arena.c (_dl_open_hook): Extern decl.
(ptmalloc_init): Don't call _dl_addr when dlopened from statically
linked programs but don't use brk for them either.
Update.
Add support for namespaces in the dynamic linker.
* dlfcn/Makefile (libdl-routines): Add dlmopen.
* dlfcn/Versions [libdl, GLIBC_2.3.4]: Add dlmopen.
* dlfcn/dlfcn.h: Define Lmid_t, LM_ID_BASE, and LM_ID_NEWLM.
Declare dlmopen. Document RTLD_DI_LMID.
* dlfcn/dlinfo.c: Handle RTLD_DI_LMID.
* dlfcn/dlmopen.c: New file.
* dlfcn/dlopen.c: Pass new parameter to _dl_open.
* dlfcn/dlopenold.c: Likewise.
* elf/dl-addr.c: Adjust for removal of GL(dl_loaded).
* elf/dl-caller.c: Likewise.
* elf/dl-close.c: Likewise.
* elf/dl-conflict.c: Likewise.
* elf/dl-debug.c: Likewise.
* elf/dl-lookup.c: Likewise.
* elf/dl-sym.c: Likewise.
* elf/dl-version.c: Likewise.
* elf/do-lookup.h: Likewise.
* elf/rtld.c: Likewise.
* sysdeps/unix/sysv/linux/i386/dl-librecon.h: Likewise.
* elf/dl-depsc: Likewise. Add new parameter to _dl_map_object.
* elf/dl-fini.c: Call destructors in all namespaces.
* elf/dl-iteratephdr.c: Compute total nloaded. Adjust for removal of
GL(dl_loaded).
* elf/dl-libc.c: Pass new parameter to _dl_open. Adjust for removal
of GL(dl_loaded).
* elf/dl-load.c (_dl_map_object_from_fd): Don't load ld.so a second
time. Reuse the one from the main namespace in all others.
Pass new parameter to _dl_new_object.
Adjust for removal of GL(dl_loaded).
* elf/dl-object.c: Take new parameter. Use it to initialize l_ns.
Adjust for removal of GL(dl_loaded).
* elf/dl-open.c (_dl_open): Take new parameter.
Adjust for removal of GL(dl_loaded).
* elf/dl-support.c: Replace global _dl_loaded etc variables with
_dl_ns variable.
* include/dlfcn.h: Adjust prototype of _dl_open.
Define __LM_ID_CALLER.
* include/link.h: Add l_real, l_ns, and l_direct_opencount elements.
* sysdeps/generic/dl-tls.c: Bump TLS_STATIC_SURPLUS. Since libc is
using TLS we need memory appropriate to the number of namespaces.
* sysdeps/generic/ldsodefs.h (struct rtld_global): Replace _dl_loaded,
_dl_nloaded, _dl_global_scope, _dl_main_searchlist, and
_dl_global_scope_alloc with _dl_ns element. Define DL_NNS.
Adjust prototypes of _dl_map_object and member in rtld_global_ro.
* malloc/malloc.c: Include <dlfcn.h>.
* malloc/arena.c (ptmalloc_init): If libc is not in primary namespace,
never use brk.
* elf/Makefile: Add rules to build and run tst-dlmopen1 and
tst-dlmopen2.
* elf/tst-dlmopen1.c: New file.
* elf/tst-dlmopen1mod.c: New file.
* elf/tst-dlmopen2.c: New file.
* elf/dl-close.c: Improve reference counting by tracking direct loads.
* elf/dl-lookup.c (add_dependency): Likewise.
* elf/dl-open.c (dl_open_worker): Likewise.
* elf/rtld.c (dl_main): Likewise.
2004-09-09 GOTO Masanori <gotom@debian.or.jp>
[BZ #77]
* elf/dl-close.c: Count down l_opencount to check not only for
l_reldeps, but also l_initfini.
2004-10-13 Ulrich Drepper <drepper@redhat.com>
* posix/tst-getaddrinfo2.c: Include stdlib.h and string.h.
(do_test): Use %p instead of 0x%08X to print a pointer.
* malloc/malloc.c: Include stdio-common/_itoa.h.
2004-10-04 Ulrich Drepper <drepper@redhat.com>
* malloc/mtrace.pl: Avoid calling location unless it is needed for
output. Patch by Edward Bishop <binutils@gmail.com>.
* nscd/Makefile (CFLAGS-gai.c): Add -fpie.
2004-03-18 Jakub Jelinek <jakub@redhat.com>
* malloc/arena.c (aligned_heap_area): New variable.
(new_heap): If aligned_heap_area != NULL, attempt to use that
first. If HEAP_MAX_SIZE << 1 area is already HEAP_MAX_SIZE bytes
aligned, remember the second half in aligned_heap_area.
(delete_heap): Clear aligned_heap_area if deleting the area right
before aligned_heap_area.
* malloc/malloc.c (_int_free): Add inexpensive double free and
memory corruption tests.
(malloc_printf_nc): Renamed to malloc_printerr. Second parameter
is no format string anymore. Don't use stdio. Adjust all callers.
* malloc/hooks.c: Adjust malloc_printf_nc callers.
* malloc/hooks.c (DEFAULT_CHECK_ACTION): Moved to malloc.c.
(check_action): Likewise.
When printing error messages, use malloc_printf_nc now instead of
fiddling with the streams cancellation flag in every place.
* malloc/malloc.c (DEFAULT_CHECK_ACTION): New definition. Change
default to 3.
(check_action): New variable.
(unlink): Print error message and eventually terminate in case list
is corrupted.
(malloc_printf_nc): New function. Use it in _int_free.
Change proposed by Arjan van de Ven.
2004-08-13 Ulrich Drepper <drepper@redhat.com>
* elf/sprof.c (read_symbols): When comparing aliases, prefer
strong over weak symbols if both don't start with '_'.
* malloc/malloc.c: Use strong_alias instead of weak_alias wherever
possible.
Update.
* malloc/memusage.c (me): Use creat64, not creat.
* malloc/memusagestat.c: Fix handling of very large sizes. [BZ #285]
Patch by Guy Maor <guymaor@yahoo.com>.
2004-05-25 Ulrich Drepper <drepper@redhat.com>
* nss/digits_dots.c (__nss_hostname_digits_dots): Remove typep and
flags parameter, convert afp to simple int parameter. Adjust code.
typep was never != NULL and flags therefore also unused. *afp is
never modified.
* nss/nsswitch.h: Adjust __nss_hostname_digits_dots prototype.
* nss/getXXbyYY.c: Remove HAVE_TYPE handling. Adjust af parameter
handling for __nss_hostname_digits_dots calls.
* nss/getXXbyYY_r.c: Likewise.
* elf/dl-load.c (_dl_map_object_from_fd): Map DSOs with MAP_DENYWRITE.
2004-05-20 Paul Eggert <eggert@cs.ucla.edu>
* malloc/obstack.c (_obstack) [!defined _LIBC]: Remove; not used.
Add comment explaining why libc still defines it.
Update.
2004-05-18 Petter Reinholdtsen <pere@hungry.com>
* locales/sl_SI [LC_TIME]: Correct d_fmt date format from
'22.06.2003' to '22. 06. 2003'. Change requested from Aleks
Reinhardt, and approved by the locale author Borka
Jerman-Blazic. [BZ #163]
2003-12-17 Jakub Jelinek <jakub@redhat.com>
* malloc/mtrace.c (tr_old_memalign_hook): New variable.
(tr_memalignhook): New function.
(mtrace): Register tr_memalignhook.
(muntrace): Deregister tr_memalignhook.
* malloc/malloc.c (__posix_memalign): If __memalign_hook != NULL,
call it directly instead of memalign_internal.
2003-12-17 Ulrich Drepper <drepper@redhat.com>
* misc/mntent_r.c: Change encoding to match recently change decoder.
Patch by Alexander Achenbach <xela@slit.de>.
2003-12-16 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Correct definition of
vrregset_t.
2003-12-16 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/unix/sysv/linux/powerpc/sys/procfs.h [!__PPC64_ELF_H]: Extent
conditional to include typedef elf_vrreg_t.
2002-12-17 Paolo Bonzini <bonzini@gnu.org>
* posix/regexec.c (re_search_internal): Limit search to the
beginning of the buffer if the initial states are empty for
contexts that do not include CONTEXT_BEGBUF or, if
!preg->newline_anchor, that do not include any one of
CONTEXT_BEGBUF and CONTEXT_NEWLINE.
2003-09-27 Wolfram Gloger <wg@malloc.de>
* malloc/malloc.c: Include <malloc-machine.h> earlier instead of
"thread-m.h", so that default parameters can be overridden in a
system-specific malloc-machine.h. Remove extra ; from extern "C"
closing brace.
* sysdeps/generic/malloc-machine.h: New file.
* sysdeps/mach/hurd/malloc-machine.h: New file.
* malloc/thread-m.h: Removed.
* malloc/Makefile: Remove CFLAGS-malloc.c parameter addition, it
is in sysdeps/generic/malloc-machine.h now.
* elf/dl-reloc.c (_dl_allocate_static_tls): Move definition of
variables only used if TLS_TCB_AT_TP is defined into the #if
branch.
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/unix/sysv/linux/Makefile: Remove db2 directory handling.
* malloc/Makefile (CFLAGS-malloc.c): Define DEFAULT_TOP_PAD to 128k.
* sysdeps/unix/sysv/linux/Makefile (CFLAGS-malloc.c): Add to, not
replace.
2003-04-05 Ulrich Drepper <drepper@redhat.com>
* malloc/thread-m.h [PTHREAD_MUTEX_INITIALIZER]: If
HAVE_register_atfork_malloc is defined use __register_atfork_malloc
instead of __register_atfork.
Add comment.
(atomic_decrement_and_test): Add comment.
2003-03-22 Jakub Jelinek <jakub@redhat.com>
* include/atomic.h (atomic_compare_and_exchange_val_acq): Add comment.
Don't define if __arch_compare_and_exchange_val_32_acq is not defined.
(atomic_compare_and_exchange_bool_acq): Add comment. Don't use
__oldval variable in the macro, since it might be macro argument.
(atomic_decrement_if_positive): Initialize __memp, remove setting
of non-existent variable.
(atomic_bit_test_set): Cast 1 to __typeof (*mem) before shifting.
* sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Implement
using atomic_compare_and_exchange_val_acq.
(atomic_decrement_if_positive, atomic_bit_test_set): Define.
* sysdeps/s390/bits/atomic.h (__arch_compare_and_exchange_val_8_acq):
Renamed from...
(__arch_compare_and_exchange_bool_8_acq): ... this.
(__arch_compare_and_exchange_val_16_acq): Renamed from...
(__arch_compare_and_exchange_bool_16_acq): ... this.
(__arch_compare_and_exchange_val_32_acq): Return old value. Renamed
from...
(__arch_compare_and_exchange_bool_32_acq): ... this.
(__arch_compare_and_exchange_val_64_acq): Return old value. Renamed
from...
(__arch_compare_and_exchange_bool_64_acq): ... this.
(__arch_compare_and_exchange_val_32_acq): Use __typeof for local
variables types instead of assuming int.
Change prefix of local variables to __arch.
* sysdeps/generic/bits/atomic.h (arch_compare_and_exchange_acq):
Remove.
(atomic_compare_and_exchange_val_acq,
atomic_compare_and_exchange_bool_acq): Define.
* csu/tst-atomic.c: New test.
* csu/tst-atomic-long.c: New test.
* csu/Makefile (tests): Add tst-atomic and tst-atomic-long.
* malloc/memusagestat.c (main): Kill warning if uint64_t is ulong.
* sysdeps/s390/Versions: Add trailing newline.
* sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Kill warning
if INTERNAL_SYSCALL_ERROR_P doesn't use its first argument.
* malloc/thread-freeres.c: New file.
* malloc/Makefile (aux): Add it.
* sunrpc/Versions (GLIBC_PRIVATE): Removed.
* sunrpc/rpc_thread.c (__rpc_thread_destroy): Put in special section
"__libc_thread_freeres_fn" and add to __libc_thread_subfreeres set.
* sysdeps/unix/sysv/linux/i386/geteuid.c (__geteuid): Typo fix.
* sysdeps/unix/sysv/linux/i386/getgid.c (__getgid): Typo fix.
2003-02-21 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/opendir.c (__opendir): Use O_NONBLOCK in open.
* iconvdata/Makefile (tests): Add bug-iconv3 only if
[$(have-thread-library) = yes].
* malloc/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
(void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
when compiling Bison 1.875's `bitset bset = obstack_alloc
(bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
2002-12-31 Ulrich Drepper <drepper@redhat.com>
* string/string-inlines.c: Define __memcpy_g and __strchr_g macros
to avoid using the exported symbols. Define aliases with the
original names separately.
* include/time.h: Add libc_hidden_proto for __strftime_l.
* include/wchar.h: Add libc_hidden_proto for __wcsftime_l.
* time/strftime.c: Always use libc_hidden_def if _LIBC.
* libio/libioP.h: Add libc_hidden_proto for _IO_file_open.
* libio/fileops.c: Add libc_hidden_def for _IO_file_open.
* malloc/mtrace.c: Add libc_hidden_proto and libc_hidden_def for
tr_break.
* csu/Makefile (routines): Add dso_handle.
* csu/dso_handle.c: New file.
2002-12-17 Jakub Jelinek <jakub@redhat.com>
* malloc/thread-m.h (mutex_init, mutex_lock, mutex_trylock,
mutex_unlock): If not building NPTL, use __libc_maybe_call2 if
available, otherwise __libc_maybe_call.
* sysdeps/unix/sysv/linux/x86_64/recv.c: Add support for
cancellation handling.
* sysdeps/unix/sysv/linux/x86_64/send.c: Likewise.
2002-12-11 Ulrich Drepper <drepper@redhat.com>
* malloc/thread-m.h: Remove thread_id type and MUTEX_INITIALIZER
definitions. Not needed.
[_LIBC]: Use definitions from libc-lock.h instead of referencing
pthread routines directly.
* malloc/arena.c (ptmalloc_unlock_all2): Don't add (void) to
mutex_init calls.
(arena_get2): Don't look at return value of mutex_lock.
* 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.
* malloc/arena.c
(ptmalloc_lock_all, ptmalloc_unlock_all, ptmalloc_unlock_all2): Do
nothing if not initialized. Bug report from Marcus Brinkmann
<Marcus.Brinkmann@ruhr-uni-bochum.de>.
* Makefile (distribute): Add it.
* Makerules ($(objpfx)%.dynsym, $(objpfx)%.symlist): New rules.
(tests): Depend on .symlist file for each $(install-lib.so-versioned).
[! subdir] (tests): Depend on libc.symlist.
(generated): Add those files.
* aclocal.m4 (LIBC_PROG_BINUTILS): Check for objdump, set OBJDUMP.
* configure: Regenerated.
* config.make.in (OBJDUMP): New variable, substituted by configure.
* malloc/mcheck.c (struct hdr): New members `block' and `magic2'.
(mallochook, reallochook): Set them up.
(checkhdr): Check HDR->magic2 value.
(freehook): Reset HDR->magic2.
(memalignhook): New static function.
(old_memalign_hook): New static variable.
(mcheck, reallochook): Set __memalign_hook to memalignhook.
file-specific variable override so it compiles properly when using
--with-headers.
* NEWS: Added item for powerpc64-linux port.
* include/libc-symbols.h [HAVE_ASM_GLOBAL_DOT_NAME]
(C_SYMBOL_DOT_NAME): Insure that C_SYMBOL_DOT_NAME works for
various gcc versions. Dot names required for powerpc64.
[HAVE_ASM_GLOBAL_DOT_NAME] (_weak_extern): Add .weakext '.'ed symbol.
[HAVE_ASM_GLOBAL_DOT_NAME] (strong_alias): Add .global
C_SYMBOL_DOT_NAME(alias).
[HAVE_ASM_GLOBAL_DOT_NAME] (strong_data_alias): New macro. Same as
original strong_alias macro.
[HAVE_ASM_GLOBAL_DOT_NAME] (weak_alias): Add .weakext/.weak
C_SYMBOL_DOT_NAME(alias).
[HAVE_ASM_GLOBAL_DOT_NAME] (_symbol_version): Add .symver '.'ed name.
[HAVE_ASM_GLOBAL_DOT_NAME] (_default_symbol_version): Add .symver
'.'ed name.
Add comments on libc_hidden_data_def and libc_hidden_data_weak usage.
[HAVE_ASM_GLOBAL_DOT_NAME] (hidden_dot_def1): New macro. Generate
.global C_SYMBOL_DOT_NAME(alias). Otherwise an empty macro.
(hidden_def): Append hidden_dot_def1 macro to definition.
(hidden_ver): Append hidden_dot_def1 macro to definition.
(hidden_data_def): New macro. Same as original hidden_def macro.
(hidden_data_ver): New macro. Same as original hidden_ver macro.
[HAVE_ASM_GLOBAL_DOT_NAME] (hidden_dot_weak1): New macro. Generate
.weakext C_SYMBOL_DOT_NAME(alias). Otherwise an empty macro.
(hidden_weak): Append hidden_dot_weak1 macro to definition.
(hidden_data_weak): New macro. Same as original hidden_weak macro.
[HAVE_ASM_GLOBAL_DOT_NAME] (HIDDEN_JUMPTARGET): Define as .__GI_name.
Otherwise defined as __GI_name.
(libc_hidden_data_def): New macro. Use hidden_data_def.
(libc_hidden_data_weak): New macro. Use hidden_data_weak.
(libc_hidden_data_ver): New macro. Use hidden_data_ver.
(rtld_hidden_data_def): New macro. Use hidden_data_def.
(rtld_hidden_data_weak): New macro. Use hidden_data_weak.
(rtld_hidden_data_ver): New macro. Use hidden_data_ver.
(libm_hidden_data_def): New macro. Use hidden_data_def.
(libm_hidden_data_weak): New macro. Use hidden_data_weak.
(libm_hidden_data_ver): New macro. Use hidden_data_ver.
* inet/in6_addr.c: Replace libc_hidden_def with libc_hidden_data_def.
__malloc_hook, __realloc_hook, __memalign_hook,
__after_morecore_hook): Variable definitions moved to ...
* malloc/malloc.c: ... here, so as to be before all references.
* malloc/hooks.c: Move variable definitions ahead of uses.
* libio/fileops.c: Move versioned_symbol defns ahead of _IO_jump_t
initializers that make reference to variables they define.
2002-08-04 Ulrich Drepper <drepper@redhat.com>
* stdio-common/psignal.c: Declare _sys_siglist_internal. Use USEINT
to access _sys_siglist.
* string/strsignal.c: Likewise.
* sysdeps/generic/siglist.c: Add _sys_siglist_internal alias.
* sysdeps/gnu/siglist.c: Likewise.
* sysdeps/unix/siglist.c: Likewise.
* sysdeps/unix/sysv/linux/arm/siglist.c: Likewise.
* libio/fileops.c: Add missing INTUSEs for _IO_file_jumps.
* libio/wfileops.c: Add missing INTUSE for _IO_file_close.
* intl/dcigettext.c: Define _nl_default_dirname_internal as hidden
alias and use it.
* intl/bindtextdom.c: Use _nl_default_dirname_internal.
* include/netinet/in.h: Add declaration of in6addr_loopback_internal.
* inet/in6_addr.c: Add INTVARDEF for in6addr_loopback.
* sysdeps/posix/getaddrinfo.c: Use INTUSE for in6addr_loopback access.
* include/time.h: Add libc_hidden_proto for __gmtime_r.
* time/gmtime.c (__gmtime_r): Add libc_hidden_def.
* iconv/Versions: Replace __gconv_alias_db, __gconv_modules_db,
and __gconv_cache with __gconv_get_alias_db, __gconv_get_modules_db,
and __gconv_get_cache respectively.
* iconv/gconv_cache.c (gconv_cache): Renamed for __gconv_cache and
defined static. Change all users.
(__gconv_get_cache): New function.
* iconv/gconv_db.c (__gconv_get_modules_db): New function.
(__gconv_get_alias_db): New function.
* iconv/gconv_int.h (__gconv_alias_db): Declare as hidden.
(__conv_modules_db): Likewise.
Add prototypes for __gconv_get_cache, __gconv_get_modules_db,
and __gconv_get_alias_db.
* iconv/iconv_prog.c: Use the new functions instead of accessing the
variables.
* include/stdlib.h: Add prototype and libc_hidden_proto for
__default_morecore.
* sysdeps/generic/morecore.c: Include <stdlib.h>.
* malloc/obstack.c: Remove fputs macro.
* malloc/mtrace.c: Remove fopen macro.
2002-08-03 Jakub Jelinek <jakub@redhat.com>
Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (public_cALLOc): Only divide if at least one of
arguments is big enough to cause an overflow.
[USE_TLS && HAVE___THREAD]: Just include the sysdeps/generic file,
which does the right thing when __thread support is available.
* descr.h (struct _pthread_descr_struct) [USE_TLS && HAVE___THREAD]:
Omit `p_libc_specific', `p_errnop', `p_errno', `p_h_errnop',
`p_h_errno', `p_resp', and `p_res' members.
* pthread.c (__pthread_initialize_minimal) [USE_TLS && HAVE___THREAD]:
Don't initialize `p_errnop' and `p_h_errnop' members.
(__pthread_reset_main_thread): Likewise.
(__pthread_initialize_manager): Likewise.
* manager.c (__pthread_manager, pthread_handle_create): Likewise.
* pthread.c (pthread_initialize) [USE_TLS && HAVE___THREAD]:
Don't initialize `p_resp' member.
(__pthread_reset_main_thread): Likewise.
* manager.c (pthread_handle_create): Likewise.
* specific.c (libc_internal_tsd_set, libc_internal_tsd_get):
Conditionalize these on [!(USE_TLS && HAVE___THREAD)].
* errno.c [USE_TLS && HAVE___THREAD]
(__h_errno_location, __res_state): Don't define these at all.
* sysdeps/i386/tls.h (INSTALL_DTV): Add parens around arguments!
(INSTALL_NEW_DTV, GET_DTV): Likewise.
* sysdeps/sh/tls.h (INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV): Likewise.
* weaks.c: Don't include <errno.h> here.
2002-08-01 Roland McGrath <roland@redhat.com>
* 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.
* malloc/hooks.c (realloc_check): If mremap succeeds actually use
the result.
* sysdeps/i386/i486/bits/string.h: Add early clobber for "a"
output parameter. Reported by Denis Zaitsev <zzz@cd-club.ru>.
* Versions.def (libthread_db): Add GLIBC_2.3.
2002-07-09 Jakub Jelinek <jakub@redhat.com>
* libio/freopen.c (freopen): Reset jump tables, use mmap stdio for the
new stream if possible.
* libio/freopen64.c (freopen64): Likewise.
* libio/Makefile (tests): Add tst-freopen.
* libio/tst-freopen.c: New file.
2002-07-03 Jakub Jelinek <jakub@redhat.com>
* libio/stdio.h (obstack_printf): Add format attribute.
(obstack_vprintf): Likewise.
2002-07-04 Jakub Jelinek <jakub@redhat.com>
* posix/regex_internal.h (re_token_t): Shrink the structure to 8
resp. 16 bytes on 32-bit resp. 64-bit platforms.
(re_charset_t, re_string_t): Reorder structure members for 64-bit
architectures.
2002-07-04 Jakub Jelinek <jakub@redhat.com>
* posix/regcomp.c (re_compile_internal): Move clearing of dfa...
(init_dfa): ...here.
2002-07-05 Isamu Hasegawa <isamu@yamato.ibm.com>
* posix/regcomp.c (parse_sub_exp): Add nodes OP_OPEN_SUBEXP and
OP_CLOSE_SUBEXP at both ends of sub expressions instead of SUBEXP
nodes in parse trees.
(calc_first): Fix the Definition of `firsts' of OP_OPEN_SUBEXP
and OP_CLOSE_SUBEXP, and remove the definition of SUBEXP.
(calc_epsdest): Treat OP_OPEN_SUBEXP and OP_CLOSE_SUBEXP as the
nodes which can epsilon transit.
* posix/regex_internal.h: Add OP_OPEN_SUBEXP and OP_CLOSE_SUBEXP
to IS_EPSILON_NODE macro.
* posix/regexec.c (update_regs): New function to update registers
by refering OP_OPEN_SUBEXP and OP_CLOSE_SUBEXP nodes.
(proceed_next_node): Use the entities of the nodes to determine
whether the node can transit to.
(set_regs): Use update_regs function to update registers.
2002-07-03 Jakub Jelinek <jakub@redhat.com>
* posix/bug-regex4.c (main): Remove duplicate setlocale.
* posix/bug-regex6.c: New file.
* posix/Makefile (tests): Add bug-regex6.
(bug-regex6-ENV): Set LOCPATH.
2002-07-10 Ulrich Drepper <drepper@redhat.com>
2002-04-03 Ulrich Drepper <drepper@redhat.com>
* locale/programs/charmap.c (charmap_read): If the charmap doesn't
define a code_set_name provide one based on the filename.
* malloc/hooks.c: Define weak_variable correctly for _LIBC.
2001-12-28 Andreas Jaeger <aj@suse.de>
* time/mktime.c (__mktime_internal): Check for year < 70
[PR libc/2738].
* sysdeps/generic/w_lgamma.c: Initialized local_signgam.
* sysdeps/generic/w_lgammaf.c: Likewise.
* sysdeps/generic/w_lgammal.c: Likewise [PR libc/2854].
* debug/catchsegv.sh (exval): Quote [ in pattern [PR libc/2902].
Adjust for new output format of the backtrace functions.
* misc/syslog.c (vsyslog): Only use cleanup handler if
_LIBC_REENTRANT is defined [PR libc/2924].
* sysdeps/s390/s390-64/bits/byteswap.h: Likewise [PR libc/2757].
2002-04-02 Jakub Jelinek <jakub@redhat.com>
* inet/ether_ntoh.c (__nss_ethers_lookup): Add internal_function.
* inet/ether_hton.c (__nss_ethers_lookup): Likewise.
* inet/getnetgrent_r.c (__nss_netgroup_lookup): Likewise.
* sunrpc/netname.c (__nss_publickey_lookup): Likewise.
* sunrpc/publickey.c (__nss_publickey_lookup): Likewise.
2002-03-30 Jakub Jelinek <jakub@redhat.com>
* elf/dynamic-link.h (elf_get_dynamic_info): Don't abort on unknown
dynamic tags.
2002-03-29 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/fpu/s_fabs.S: New file.
* sysdeps/i386/fpu/s_fabsf.S: New file.
* sysdeps/i386/fpu/s_fabsl.S: New file.
* sysdeps/sparc/sparc64/fpu/s_fabs.c: New file.
* sysdeps/sparc/sparc64/fpu/s_fabsf.c: New file.
* sysdeps/sparc/sparc64/fpu/s_fabsl.c: New file.
2002-04-02 Ulrich Drepper <drepper@redhat.com>
* rt/tst-shm.c (do_test): Add one more test for size of shared
memory object.
2002-03-29 Wolfram Gloger <wg@malloc.de>
* malloc/malloc.c: Add short description and prototypes for
malloc_get_state, malloc_set_state and posix_memalign, for
consistency and to avoid warnings with -Wstrict-prototypes.
Reported by Andreas Jaeger <aj@suse.de>.
2002-04-02 Ulrich Drepper <drepper@redhat.com>
* po/gl.po: Update from translation team.
2002-03-13 Wolfram Gloger <wg@malloc.de>
* malloc/malloc.c (sYSMALLOc): Don't change brk if mmap failed.
2002-03-02 Andreas Schwab <schwab@suse.de>
* stdio-common/vfprintf.c (process_arg): Fix decimal format with
'h' flag and positional arg.
* stdio-common/tst-printf.c (rfg3): New function to test
positional arguments.
(main): Fix some warnings.
2002-03-13 Jakub Jelinek <jakub@redhat.com>
* elf/dl-minimal.c (_itoa): Use _itoa_lower_digits_internal if SHARED.
* elf/dl-reloc.c (_dl_reloc_bad_type): Likewise.
2002-01-18 Wolfram Gloger <wg@malloc.de>
* malloc/malloc.c: Rewrite, adapted from Doug Lea's malloc-2.7.0.c.
* malloc/malloc.h: Likewise.
* malloc/arena.c: New file.
* malloc/hooks.c: New file.
* malloc/tst-mallocstate.c: New file.
* malloc/Makefile: Add new testcase tst-mallocstate.
Add arena.c and hooks.c to distribute. Fix commented CPPFLAGS.
2002-01-28 Ulrich Drepper <drepper@redhat.com>
* stdlib/msort.c: Remove last patch. The optimization violates the
same rule which qsort.c had problems with.
2002-01-27 Paul Eggert <eggert@twinsun.com>
* stdlib/qsort.c (_quicksort): Do not apply the comparison function
to a pivot element that lies outside the array to be sorted, as
ISO C99 requires that the comparison function be called only with
addresses of array elements [PR libc/2880].
2001-10-26 Ulrich Drepper <drepper@redhat.com>
* string/strxfrm.c [USE_IN_EXTENDED_LOCALE_MODEL]: Correctly get
nrules value.
2001-10-24 H.J. Lu <hjl@gnu.org>
* sysdeps/generic/bits/dlfcn.h (DL_CALL_FCT): Cast to void *.
Use __BEGIN_DECLS/__END_DECLS around prototypes.
* sysdeps/mips/bits/dlfcn.h (DL_CALL_FCT): Likewise.
2001-10-21 Jim Meyering <meyering@lucent.com>
* malloc/obstack.c (_): Honor the setting of ENABLE_NLS. Otherwise,
this code would end up calling gettext even in packages built
with --disable-nls.
* posix/getopt.c (_): Likewise.
* posix/regex.c (_): Likewise.
2001-10-26 Ulrich Drepper <drepper@redhat.com>
* resolv/gethnamaddr.c (gethostbyaddr): Use ip6.addr for reverse
lookup not ip6.int.
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyaddr_r): Likewise.
Reported by Martin.v.Loewis@t-online.de [PR libc/2598].
2001-10-19 Jakub Jelinek <jakub@redhat.com>
* misc/sys/cdefs.h (__attribute_used__): Define.
* elf/rtld.c (_dl_start): Add __attribute_used__.
* elf/dl-runtime.c (fixup, profile_fixup): Likewise.
2001-08-29 Ulrich Drepper <drepper@redhat.com>
* nis/nis_findserv.c (__nis_findfastest): Don't fail if reply received
first is from a previous call.
Patch by Alexander Belopolsky <alexb@rentec.com> for [PR libc/3670].
2001-08-29 Andreas Schwab <schwab@suse.de>
* sysdeps/ia64/fpu/libm-test-ulps: Updated.
2001-08-25 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
* config.make.in (INSTALL_SCRIPT): Define.
* Makeconfig (INSTALL_SCRIPT): Define.
* Makerules (do-install-script): New macro to install scripts using
INSTALL_SCRIPT.
(install-bin-script): New rule to install scripts with
do-install-script.
(install-bin-script-nosubdir): New rule.
(install-no-libc.a-nosubdir): Add install-bin-script-nosubdir.
(distinfo-vars): Add $(install-bin-script).
* Rules (others): Likewise.
* Makefile (glibcbug): Install with install-bin-script.
* debug/Makefile (xtrace): Likewise.
(catchsegv): Likewise.
* elf/Makefile (ldd): Likewise.
* malloc/Makefile (mtrace): Likewise.
* timezone/Makefile (tzselect): Likewise.
2001-08-29 H.J. Lu <hjl@gnu.org>
* sysdeps/mips/dl-machine.h (__dl_runtime_resolve): Pass
ELF_RTYPE_CLASS_PLT, instead of R_MIPS_REL32, to
_dl_lookup_versioned_symbol () and _dl_lookup_symbol ().
Add it to LDFLAGS.so, LDFLAGS-rtld, and +link.
2001-08-22 Ulrich Drepper <drepper@redhat.com>
* elf/dl-addr.c (_dl_addr): Fix tests to determine dli_sname.
* malloc/mtrace.c (tr_where): dli_sname always points to a
non-empty string is != NULL.
Reported by Tim Janik <timj@gtk.org>.
2001-08-20 Ulrich Drepper <drepper@redhat.com>
* misc/error.c (error_tail): Use fputws_unlocked instead of fputws.
* misc/err.c (convert_and_print): Likewise.
* malloc/obstack.c (print_and_abort): Use fprintf instead of two
function calls.
2001-08-11 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (ptmalloc_init): Don't call getenv five times.
Instead use new function next_env_entry which iterates over the
environment once.
* sysdeps/arm/dl-machine.h (elf_machine_runtime_setup): Only set
_dl_profile_map for the right object.
* elf/dl-reloc.c (_dl_relocate_object): Allocate l_reloc_result
only if consider_profiling is != 0, not if _dl_profile != NULL.
* sysdeps/generic/dl-environ.c (_dl_next_ld_env_entry): Optimize a bit.
Now returns pointer to first character set "LD_".
* elf/rtld.c (process_envvars): Adjust for change above.
* sysdeps/unix/sysv/linux/dl-librecon.h (EXTRA_LD_ENVVARS): Likewise.
* sysdeps/unix/sysv/linux/i386/dl-librecon.h (EXTRA_LD_ENVVARS):
Likewise.
2001-08-10 Wolfram Gloger <wg@malloc.de>
* malloc/malloc.c (grow_heap): Use mmap() rather than mprotect()
to allocate new memory, for better performance with Linux-2.4.x.
2001-08-07 Ulrich Drepper <drepper@redhat.com>
* sysdeps/ia64/memusage.h (GETTIME): Define using hp-timing.h
funcationality.
* sysdeps/ia64/hp-timing.h (HP_TIMING_NOW): Fix comment.
2001-08-07 Jakub Jelinek <jakub@redhat.com>
* malloc/memusage.c (initialized): New variable.
(init): If not yet initialized, call me().
(me): Do all dlsym calls here.
(malloc, realloc, calloc, free): If not yet initialized,
call me(). If in the middle of initializing, return NULL or
do nothing.
2001-08-04 Ulrich Drepper <drepper@redhat.com>
* libio/genops.c (_IO_unbuffer_write): Force streams in narrow
orientation so that conversion modules aren't used anymore.
* malloc/set-freeres.c: Call _IO_cleanup before running subfreeres
functions to avoid using wide streams afterwards.
* iconvdata/Makefile: Add rules to build GEORGIAN-PS and
GEORGIAN-ACADEMY.
* iconvdata/georgian-ps.c: New file.
* iconvdata/georgian-academy.c: New file.
* iconvdata/gconv-modules: Add entries for GEORGIAN-PS and
GEORGIAN-ACADEMY.
* iconvdata/tst-tables.sh: Add GEORGIAN-PS and GEORGIAN-ACADEMY.
* libio/fileops.c (_IO_new_file_fopen): Correctly locate ccs=
substring. Don't handle ccs= if no descriptor was allocated.
Normalize codeset name before calling __wcsmbs_named_conv.
Initialize transliteration elements. Free step data structure.
* libio/iofclose.c (_IO_new_fclose): Correct freeing of the step data.
* libio/iofwide.c (__libio_translit): Renamed from libio_translit
and made public. Various little cleanup changes.
* wcsmbs/wcsmbsload.h (struct gconv_fcts): Add towc_nsteps and
tomb_nsteps member.
* wcsmbs/wcsmbsload.c: Add some casts to avoid warnings.
(__wcsmbs_gconv_fcts): Initialize towc_nsteps and tomb_nsteps member.
(getfct): Take additional parameter with pointer to variable where the
number of steps is stored in. Disable code which allows to use more
than one step for now. Adjust all callers.
(free_mem): New function. Frees data associated with currently
selected converters.
2001-07-27 Ulrich Drepper <drepper@redhat.com>
* malloc/mtrace.pl: Extract addresses from DSOs.
2001-07-26 Ulrich Drepper <drepper@redhat.com>
* malloc/mcheck.c (checkhdr): Disable mcheck before reporting an
error. Don't run any tests if mcheck is disabled.
* elf/dl-support.c (_dl_important_hwcaps): Avoid using malloc
early in the program.
>>>>>>> 1.5525
2001-07-18 Ulrich Drepper <drepper@redhat.com>
* libio/filedoalloc.c (_IO_file_doallocate): A few more minor
cleanups and improvements.
2001-07-18 Andreas Schwab <schwab@suse.de>
* posix/regex.c (WORDCHAR_P) [WCHAR]: Also return true for the
underscore character.
2001-07-18 Jakub Jelinek <jakub@redhat.com>
* malloc/malloc (new_heap): Don't call munmap for zero length.
2001-07-18 Ulrich Drepper <drepper@redhat.com>
* libio/filedoalloc.c (_IO_file_doallocate): Use DEV_TTY_P if
available to determine whether descriptor is for tty before
calling isatty.
* sysdeps/unix/sysv/linux/device-nrs.h: Define DEV_TTY_P.
* sysdeps/generic/device-nrs.h: Likewise.
2001-07-15 Ulrich Drepper <drepper@redhat.com>
* malloc/obstack.c: Define __attribute__ for non-gcc compilers.
Patch by Jim Meyering <jim@meyering.net>.
2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/unix/sysv/linux/s390/s390-64/bits/sigaction.h: Reorder
fields in the sigaction struct to match the definition in the kernel.
2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/unix/sysv/linux/s390/s390-32/mmap64.S: Correct the
test for ENOSYS.
2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/s390/s390-32/bits/setjmp.h: Add leading underscores
to the entries in the __jmp_buf structure.
* sysdeps/s390/s390-64/bits/setjmp.h: Likewise.
2001-07-12 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/s390/s390-32/bcopy.S: Use mvcle for big blocks
(> 64K) and a mvc loop for small blocks.
* sysdeps/s390/s390-32/memcpy.S: Likewise.
* sysdeps/s390/s390-64/bcopy.S: Likewise.
* sysdeps/s390/s390-64/memcpy.S: Likewise.