aboutsummaryrefslogtreecommitdiff
path: root/malloc
AgeCommit message (Collapse)Author
2006-01-11[BZ #321]Roland McGrath
2005-10-14 Paul Eggert <eggert@cs.ucla.edu> * malloc/obstack.c: Fix old comments. Update FSF snail mail address. * malloc/obstack.h: Likewise. [BZ #321] Fix portability bugs encountered when porting to Itanium. * malloc/obstack.h (obstack_empty_p, obstack_finish): Do not assume that the "contents" member is suitably aligned. It is not, for some hosts and alignments: e.g., Itanium, long-double. * malloc/obstack.c (_obstack_begin, _obstack_begin_1, _obstack_newchunk): Likewise. * malloc/obstack.c: Include <stddef.h>, for size_t. Include <inttypes.h>, <stdint.h> if needed and available. (DEFAULT_ALIGNMENT): Now an enum constant, not a macro. Use C89 offsetof rather than K&R trick. Use the maximum alignment of uintmax_t, long double, void * rather than the alignment of double. (union fooround): Use uintmax_t, long double, void * members rather than just long and double. [BZ #321] Fix portability bugs encountered when porting to the IBM iSeries, where pointers are 256 bits wide and no integers are that wide. * malloc/obstack.h (__PTR_TO_INT, __INT_TO_PTR): Remove. All uses changed to: (__BPTR_ALIGN, __PTR_ALIGN): New macros. (struct _obstack_chunk.temp): Change from int to a union of pointer and int. All uses changed. [BZ #321] * malloc/obstack.c (print_and_abort) [!_LIBC]: Call fprintf (stderr, ...), not __fxprintf (NULL, ...). [_LIBC && USE_IN_LIBIO]: Don't include <wchar.h>; no longer needed.
2006-01-01Update copyright year.Ulrich Drepper
2005-12-14Moved to csu/errno-loc.c.Ulrich Drepper
2005-12-07* catgets/gencat.c: Use GPL, not LGPL.Ulrich Drepper
* elf/cache.c: Likewise. * elf/chroot_canon.c: Likewise. * elf/ldconfig.c: Likewise. * elf/readlib.c: Likewise. * iconv/dummy-repertoire.c: Likewise. * iconv/iconv_charmap.c: Likewise. * iconv/iconv_prog.c: Likewise. * iconv/iconvconfig.c: Likewise. * locale/programs/3level.h: Likewise. * locale/programs/charmap-dir.c: Likewise. * locale/programs/charmap-dir.h: Likewise. * locale/programs/charmap-kw.gperf: Likewise. * locale/programs/charmap.c: Likewise. * locale/programs/charmap.h: Likewise. * locale/programs/config.h: Likewise. * locale/programs/ld-address.c: Likewise. * locale/programs/ld-collate.c: Likewise. * locale/programs/ld-ctype.c: Likewise. * locale/programs/ld-identification.c: Likewise. * locale/programs/ld-measurement.c: Likewise. * locale/programs/ld-messages.c: Likewise. * locale/programs/ld-monetary.c: Likewise. * locale/programs/ld-name.c: Likewise. * locale/programs/ld-numeric.c: Likewise. * locale/programs/ld-paper.c: Likewise. * locale/programs/ld-telephone.c: Likewise. * locale/programs/ld-time.c: Likewise. * locale/programs/linereader.c: Likewise. * locale/programs/linereader.h: Likewise. * locale/programs/locale-spec.c: Likewise. * locale/programs/locale.c: Likewise. * locale/programs/localedef.c: Likewise. * locale/programs/localedef.h: Likewise. * locale/programs/locarchive.c: Likewise. * locale/programs/locfile-kw.gperf: Likewise. * locale/programs/locfile-token.h: Likewise. * locale/programs/locfile.c: Likewise. * locale/programs/locfile.h: Likewise. * locale/programs/repertoire.c: Likewise. * locale/programs/repertoire.h: Likewise. * locale/programs/simple-hash.c: Likewise. * locale/programs/simple-hash.h: Likewise. * locale/programs/xmalloc.c: Likewise. * locale/programs/xstrdup.c: Likewise. * malloc/memusagestat.c: Likewise. * nscd/aicache.c: Likewise. * nscd/cache.c: Likewise. * nscd/connections.c: Likewise. * nscd/dbg_log.c: Likewise. * nscd/gai.c: Likewise. * nscd/getgrgid_r.c: Likewise. * nscd/getgrnam_r.c: Likewise. * nscd/gethstbyad_r.c: Likewise. * nscd/gethstbynm2_r.c: Likewise. * nscd/getpwnam_r.c: Likewise. * nscd/getpwuid_r.c: Likewise. * nscd/grpcache.c: Likewise. * nscd/hstcache.c: Likewise. * nscd/initgrcache.c: Likewise. * nscd/mem.c: Likewise. * nscd/nscd.c: Likewise. * nscd/nscd_conf.c: Likewise. * nscd/pwdcache.c: Likewise. * posix/getconf.c: Likewise. * sysdeps/generic/nscd_setup_thread.c: Likewise. * sysdeps/unix/sysv/linux/nscd_setup_thread.c: Likewise.
2005-12-06* malloc/tst-mallocfork.c (do_test): Make sure sa_flags isRoland McGrath
initialized. Reported by John Reiser <jreiser@BitWagon.com>.
2005-11-21..Ulrich Drepper
2005-11-21 Ulrich Drepper <drepper@redhat.com> * locales/se_NO: Remove RCS ID line.
2005-11-07* malloc/malloc.c (munmap_chunk): Suppress warnings from last change.Roland McGrath
* sysdeps/unix/sysv/linux/tcflush.c: Rewritten. * sysdeps/unix/sysv/linux/tcflow.c: Rewritten.
2005-11-06* malloc/malloc.c (munmap_chunk): Add sanity checks.Ulrich Drepper
* sysdeps/pthread/configure: Fix comment.
2005-10-14[BZ #804]Ulrich Drepper
* malloc/tst-mtrace.sh: Work around for bootstraping.
2005-10-14* sysdeps/unix/opendir.c (__opendir): Pass extra argument toUlrich Drepper
__alloc_dir. (__alloc_dir): Only close descriptor on error if new parameter is true. * sysdeps/unix/fdopendir.c (fdopendir): Pass extra argument to __alloc_dir. Don't close fd on error. * include/dirent.h (__alloc_dir): Adjust prototype. * include/sys/mman.h (__mremap): Add ellipsis. * malloc/memusage.c: Adjust mremap wrapper for optional additional parameter.
2005-10-13* malloc/malloc.c (_int_free): Fail if block size is obviously wrong.Ulrich Drepper
2005-10-12* include/malloc.h: Remove _int_new_arena prototype.Ulrich Drepper
* malloc/arena.c (_int_new_arena): Move definition ahead of arena_get2 and make static.
2005-10-12Correctly implement M_MXFAST.Ulrich Drepper
* malloc/malloc.c (struct malloc_state): Replace max_fast with flags fields. (global_max_fast): New variable. (set_max_fast): Change to not require arena parameter and to modify global_max_fast. Change all callers. (get_max_fast): New macro. Use this instead of directly accessing now removed max_fast arena member. (have_fastchunks): Use flags instead of max_fast. (clear_fastchunks): Likewise. (set_fastchunks): Likewise. (contiguous): Likewise. (noncontiguous): Likewise. (set_noncontiguous): Likewise. (set_contiguous): Likewise. (malloc_init_state): Explicitly set FASTCHUNKS_BIT. Call set_max_fast only for main arena. * malloc/hooks.c (public_sET_STATe): Adjust set_max_fast use.
2005-10-10* malloc/arena.c (ptmalloc_unlock_all2): Reset atfork_arena_ptr.Ulrich Drepper
2005-09-30* posix/regexec.c (update_cur_sifted_state, check_arrival,Ulrich Drepper
check_arrival_add_next_nodes): Avoid using uninitialized variable. * malloc/memusage.c (dest): Fix a bunch of warnings on 32-bit arches. * sysdeps/i386/fpu/libm-test-ulps: Update for GCC 4.0.x.
2005-09-27[BZ #838]Ulrich Drepper
* malloc/arena.c (ptmalloc_lock_all): If global lock already taken by the same thread, just bump the counter. (ptmalloc_unlock_all): If counter for recursive locks hasn't reached zero, don't do anything else. * malloc/Makefile (tests): Add tst-mallocfork. * malloc/tst-mallocfork.c: New file.
2005-09-27[BZ #786]Ulrich Drepper
* malloc/malloc.c (_int_realloc): Make error message clearer.
2005-09-12[BZ #1331]Roland McGrath
2005-09-12 Roland McGrath <roland@redhat.com> [BZ #1331] * malloc/obstack.h [!__STDC__] (obstack_int_grow_fast): Fix misnamed macro argument. Reported by Matej Vela <vela@debian.org>.
2005-09-12* malloc/malloc.c (struct malloc_chunk): Fix comment typo.Ulrich Drepper
(public_cALLOc): For mmapped chunks and perturb_byte != 0, don't clear SIZE_SZ bytes more than should be cleared.
2005-08-20* sysdeps/ia64/fpu/libm_error.c (__libm_error_support): Don't abort.Ulrich Drepper
2005-08-17 Robert Love <rml@novell.com> * sysdeps/unix/sysv/linux/sys/inotify.h: Add IN_MOVE_SELF event. 2005-08-19 Bruno Haible <bruno@clisp.org> * intl/localealias.c (read_alias_file): In case of failure, close the file descriptor and sort the array before returning. 2005-08-19 Ulrich Drepper <drepper@redhat.com> * malloc/Makefile: Link libmemusage.so with ld.so. * malloc/memusage.c: Use atomic operations for all counter and size computations. Handle thread stacks. * sysdeps/generic/memusage.h: Define memusage_cntr_t and memusage_size_t. * sysdeps/i386/i686/memusage.h: New file. * include/atomic.h: Define atomic_max and atomic_min. * debug/tst-chk1.c: Add tests for mbstowcs and wcstombs.
2005-07-20* include/stdio.h (__fxprintf): Remove wfmt argument.Ulrich Drepper
* stdio-common/fxprintf.c: Include assert.h, ctype.h and wchar.h. (__fxprintf): Remove wfmt argument, create wfmt format string on the fly from fmt. * argp/argp-fmtstream.c: Adjust all __fxprintf callers. * argp/argp-help.c: Likewise. * assert/assert-perr.c: Likewise. * assert/assert.c: Likewise. * gmon/gmon.c: Likewise. * inet/rcmd.c: Likewise. * malloc/obstack.c: Likewise. * misc/error.c: Likewise. * misc/getpass.c: Likewise. * posix/getopt.c: Likewise. * resolv/res_hconf.c: Likewise. * stdio-common/perror.c: Likewise. * stdio-common/psignal.c: Likewise. * stdlib/fmtmsg.c: Likewise. * sunrpc/auth_unix.c: Likewise. * sunrpc/clnt_perr.c: Likewise. * sunrpc/clnt_tcp.c: Likewise. * sunrpc/clnt_udp.c: Likewise. * sunrpc/clnt_unix.c: Likewise. * sunrpc/svc_simple.c: Likewise. * sunrpc/svc_tcp.c: Likewise. * sunrpc/svc_udp.c: Likewise. * sunrpc/svc_unix.c: Likewise. * sunrpc/xdr.c: Likewise. * sunrpc/xdr_array.c: Likewise. * sunrpc/xdr_rec.c: Likewise. * sunrpc/xdr_ref.c: Likewise. * sysdeps/generic/wordexp.c: Likewise.
2005-07-20* wcsmbs/bits/wchar2.h: Add definitions for wcrtomb, mbsrtowcs,Ulrich Drepper
wcsrtombs, mbsnrtowcs, and wcsnrtombs. * debug/Makefile (routines): Add wcrtomb_chk, mbsrtowcs_chk, wcsrtombs_chk, mbsnrtowcs_chk, and wcsnrtombs_chk. * debug/Versions: Add __wcrtomb_chk, __mbsrtowcs_chk, __wcsrtombs_chk, __mbsnrtowcs_chk, and __wcsnrtombs_chk. * debug/tst-chk1.c: Add tests for new functions. * debug/mbsnrtowcs_chk.c: New file. * debug/mbsrtowcs_chk.c: New file. * debug/wcrtomb_chk.c: New file. * debug/wcsnrtombs_chk.c: New file. * debug/wcsrtombs_chk.c: New file. * include/stdio.h: Add declaration for __fxprintf.
2005-04-27* elf/dl-close.c: Include stddef.h.Ulrich Drepper
(_dl_close): If called recursively, just remember GC needs to be rerun and decrease l_direct_opencount. Avoid GC if l_direct_opencount decreased to 1. Rerun GC at the end if any destructor unloaded some additional libraries. * elf/Makefile: Add rules to build and run unload6 test. * elf/unload6.c: New test. * elf/unload6mod1.c: New file. * elf/unload6mod2.c: New file. * elf/unload6mod3.c: New file. * malloc/hooks.c (mem2chunk_check): Add magic_p argument, set *magic_p if magic_p is not NULL. (top_check): Invoke MALLOC_FAILURE_ACTION if MORECORE failed. (malloc_check): Fail if sz == -1. (free_check): Adjust mem2chunk_check caller. (realloc_check): Likewise. Fail if bytes == -1. If bytes == 0 and oldmem != NULL, call free_check and return NULL. If reallocating and returning NULL, invert magic byte again to make oldmem valid region for further checking. (memalign_check): Fail if bytes == -1. * malloc/Makefile: Add rules to build and run tst-mcheck. * malloc/tst-mcheck.c: New test.
2005-03-20* malloc/malloc.c (public_cALLOc): We cannot skip the memoryUlrich Drepper
clearing if perturb_byte != 0.
2005-03-19[BZ #779]Ulrich Drepper
2005-03-10 Jakub Jelinek <jakub@redhat.com> * math/test-misc.c (main): Add some more tests. 2005-03-17 Jakub Jelinek <jakub@redhat.com> * posix/regcomp.c (re_compile_fastmap_iter): Fix check for failed __wcrtomb. Check return values of other __wcrtomb calls. * posix/regex_internal.c (build_wcs_buffer, re_string_skip_chars): Change mbclen type to size_t. (build_wcs_upper_buffer): Change mbclen and mbcdlen type to size_t. Handle mb chars whose upper case doesn't have multibyte representation in locale's charset. 2005-03-15 Jakub Jelinek <jakub@redhat.com> * malloc/malloc.c (_int_icalloc, _int_icomalloc, iALLOc, public_iCALLOc, public_iCALLOc, public_iCOMALLOc): Protect with #ifndef _LIBC. [BZ #779] * malloc/malloc.c (public_mTRIm): Initialize malloc if not yet initialized. 2005-03-10 Jakub Jelinek <jakub@redhat.com> * misc/sys/cdefs.h (__always_inline): Define. * posix/bits/unistd.h (read, pread, pread64, readlink, getcwd, getwd): Use __always_inline instead of __inline. * socket/bits/socket2.h (recv, recvfrom): Likewise. * libio/bits/stdio2.h (gets, fgets, fgets_unlocked): Likewise. * string/bits/string3.h (__memcpy_ichk, __memmove_ichk, __mempcpy_ichk, __memset_ichk, __strcpy_ichk, __stpcpy_ichk, __strncpy_ichk, __strcat_ichk, __strncat_ichk): Use __always_inline instead of __inline__ __attribute__ ((__always_inline__)). 2005-03-09 Jakub Jelinek <jakub@redhat.com> * debug/tst-chk1.c: Include sys/socket.h and sys/un.h. (do_test): Add new tests for recv, recvfrom, getcwd, getwd and readlink. Add some more tests for read, pread, pread64, fgets and fgets_unlocked. * posix/bits/unistd.h (read, pread, pread64, readlink, getcwd, getwd): Change macros into extern inline functions. (__read_alias, __pread_alias, __pread64_alias, __readlink_alias, __getcwd_alias, __getwd_alias): New prototypes. * socket/bits/socket2.h (recv, recvfrom): Change macros into extern inline functions. (__recv_alias, __recvfrom_alias): New prototypes. * libio/bits/stdio2.h (gets, fgets, fgets_unlocked): Change macros into extern inline functions. (__gets_alias, __fgets_alias, __fgets_unlocked_alias): New prototypes. * debug/pread_chk.c (__pread_chk): Fix order of arguments passed to __pread. * debug/pread64_chk.c (__pread64_chk): Fix order of arguments passed to __pread64.
2005-03-08* malloc/arena.c (ptmalloc_init): Recognize MALLOC_PERTURB_ and callUlrich Drepper
mallopt appropriately. * malloc/malloc.h: Define M_PERTURB. * malloc/malloc.c (perturb_byte): New variable. (alloc_perturb, free_perturb): New macros. (_int_malloc): Before returning, overwrite the memory if this is requested. (_int_free): Overwrite freed memory if requested. (mALLOPt): Handle M_PERTURB. * test-skeleton.c: Add call to mallopt with M_PERTURB command.
2005-03-08(ptmalloc_init): Recognize MALLOC_PERTURB_ and call mallopt appropriately.Ulrich Drepper
2005-03-012005-03-01 Alfred M. Szmidt <ams@gnu.org>Roland McGrath
* malloc/arena.c: #include <stdbool.h> outside of [SHARED && USE_TLS && !USE___THREAD].
2005-02-22* malloc/Makefile (CFLAGS-mcheck-init.c): Add.Ulrich Drepper
* sunrpc/Makefile: Add $(PIC-ccflag) to CFLAGS-x* for librpcsvc.a objects.
2005-02-21* sysdeps/unix/sysv/linux/libc_fatal.c: Print backtrace and memoryUlrich Drepper
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>
2005-01-12* posix/getconf.c: Update copyright year.Ulrich Drepper
* nss/getent.c: Likewise. * nscd/nscd_nischeck.c: Likewise. * iconv/iconvconfig.c: Likewise. * iconv/iconv_prog.c: Likewise. * elf/ldconfig.c: Likewise. * catgets/gencat.c: Likewise. * csu/version.c: Likewise. * elf/ldd.bash.in: Likewise. * elf/sprof.c (print_version): Likewise. * locale/programs/locale.c: Likewise. * locale/programs/localedef.c: Likewise. * nscd/nscd.c (print_version): Likewise. * debug/xtrace.sh: Likewise. * malloc/memusage.sh: Likewise. * malloc/mtrace.pl: Likewise. * debug/catchsegv.sh: Likewise.
2005-01-12Always include features.h.Ulrich Drepper
Remove no-glibc support.
2005-01-07Update.Ulrich Drepper
* malloc/malloc.c (malloc_printerr): Print program name as part of error message.
2005-01-07Update.Ulrich Drepper
* 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>.
2004-12-22(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.Ulrich Drepper
2007-07-122.5-18.1Jakub Jelinek
2004-12-15Update.Ulrich Drepper
22004-06-05 Joseph S. Myers <jsm@polyomino.org.uk> * malloc/Makefile (install-bin): Remove memusage. (install-bin-script): Add memusage. 004-12-15 Jakub Jelinek <jakub@redhat.com>
2004-12-14[BZ #457]Ulrich Drepper
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-11Update.Ulrich Drepper
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-12-10Update.Ulrich Drepper
2004-12-10 Ulrich Drepper <drepper@redhat.com> * malloc/arena.c (arena_get2): Prevent endless loop if arenas and list lock are taken.
2004-12-10Update.Ulrich Drepper
2004-12-09 Ulrich Drepper <drepper@redhat.com> * malloc/malloc.c (public_rEALLOc): Add parameter checks. (_int_free): Provide better error message for invalid pointers.
2004-11-20Update.Ulrich Drepper
* malloc/malloc.c (_int_malloc): Check for corruption of chunk which is about to be returned.
2004-11-19Update.Ulrich Drepper
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-13Update.cvs/fedora-glibc-20041115T0915Ulrich Drepper
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-13Update.Ulrich Drepper
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-13Update.Ulrich Drepper
* malloc/malloc.c (_int_free): Remove test for NULL parameter. (_int_realloc): Call _int_free only if memory parameter is not NULL.
2004-11-13Update.Ulrich Drepper
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-30Update.Ulrich Drepper
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-18Update.cvs/fedora-glibc-20041018T2320Ulrich Drepper
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.
2004-10-14[BZ #77]Ulrich Drepper
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>