1997-09-27 01:14 Ulrich Drepper <drepper@cygnus.com>
* Makeconfig (extra-objs): Depend in before-compile.
* configure.in: Locate Perl and substitute with complete path.
* config.make.in: Add PERL for substitution.
* elf/Makefile (routines): Add dl-addr.
* elf/dladdr.c: Move the real code into ...
* elf/dl-addr.c: New file.
* elf/link.h: Add prototype for _dl_addr.
* elf/dladdr.c (dladdr): Change address argument to be const.
* elf/dlfcn.h: Likewise.
* locale/C_name.c: Add _nl_POSIX_name.
* locale/localeinfo.h: Add declaration of _nl_POSIX_name.
* locale/findlocale.c (_nl_find_locale): Use _nl_POSIX_name.
(_nl_remove_locale): Free name of data set.
* locale/setlocale.c (clever_copy): Remove.
(new_composite_name): Use _nl_C_name and _nl_POSIX_name in compare.
(setname): Only remove old name when it is for category LC_ALL.
Change malloc, free, realloc, and memalign hooks for glibc to take
another parameter indicating the location of the caller.
* malloc/malloc.c: Change hook functions and variables.
* malloc/malloc.h: Likewise.
* malloc/mcheck.c: Likewise. Make sure later hooked function also
get the original caller address.
* malloc/mtrace.c: Likewise.
(tr_where): If no information in _mtrace_file is given use the
information about the caller.
* malloc/Makefile (distribute): Replace mtrace.awk by mtrace.pl.
Add rules to install mtrace.pl after rewriting.
* malloc/mtrace.pl: New file. Based on the old AWK script but
with extended functionality.
* malloc/mtrace.awk: Removed.
* po/fr.po: New version.
* string/Makefile: Do use builtins for tester.c and inl-tester.c.
* string/tester.c: Rewrite. Split in many small functions to not
exceed gcc's limits.
* sysdeps/unix/sysv/linux/syscalls.list: Add prctl.
1997-09-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h (__stpcpy_small): Don't use casts as
lvalues.
1997-09-26 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/time.texi (Formatting Date and Time): Clarify
explanation of strftime flags a bit.
Suggested by Robert Bihlmeyer <robbe@orcus.priv.at>.
1997-09-25 00:13 David S. Miller <davem@tanya.rutgers.edu>
* sysdeps/libm-ieee754/s_exp2f.c: Protect _GNU_SOURCE definition.
Fix typo, it is FLT_MANT_DIG.
1997-09-24 18:52 H.J. Lu <hjl@gnu.ai.mit.edu>
* math/atest-exp2.c: Include <stdlib/gmp.h> instead of <gmp.h>.
1997-08-27 08:10 H.J. Lu <hjl@gnu.ai.mit.edu>
* libio/libio.h, libio/libioP.h: Support libio in libstdc++.
* libio/libio.h (_IO_peekc): Defined as _IO_peekc_unlocked if
_IO_MTSAFE_IO is undefined.
1997-09-24 23:27 Richard Henderson <rth@cygnus.com>
* elf/dl-runtime.c (fixup): Don't go through elf_machine_relplt, but
lookup the value of the target symbol ourselves and call the new
elf_machine_fixup_plt. This kills the ELF_FIXUP_RETURN_VALUE hack.
(profile_fixup): Likewise, but don't fix up the plt.
* elf/rtld.c (_dl_main): ELF_MACHINE_RELOC_NOPLT renamed _JMP_SLOT.
* sysdeps/alpha/dl-machine.h (ELF_MACHINE_RELOC_NOPLT): Renamed.
(elf_alpha_fix_plt): Renamed elf_machine_fixup_plt.
* sysdeps/i386/dl-machine.h (elf_machine_relplt): Killed.
(ELF_MACHINE_JMP_SLOT): Renamed.
(elf_machine_fixup_plt): New function.
* sysdeps/m68k/dl-machine.h: Likewise.
* sysdeps/powerpc/dl-machine.h: Likewise.
(elf_machine_rela): Moved JMP_SLOT fixup out to elf_machine_fixup_plt.
* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
* sysdeps/stub/dl-machine.h: Update, sorta.
* sysdeps/alpha/dl-machine.h (elf_machine_runtime_setup): Do profiling.
(TRAMPOLINE_TEMPLATE): From the carcas of _RUNTIME_TRAMPOLINE, do
both normal and profile code.
(elf_machine_rela): Handle r_addend for .got and .plt too.
* sysdeps/mach/hurd/dl-sysdep.c (__open): Define this instead of open.
(__close, __mmap): Likewise define with __ names now.
Mon Jun 10 05:13:18 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* elf/dl-support.c: New file.
* elf/Makefile (CFLAGS-dl-support.c): New variable.
(routines, elide-routines.so): Add dl-support.
* elf/dl-minimal.c (_dl_pagesize): Remove common defn.
* elf/dl-load.c (_dl_pagesize): Define it here.
(_dl_map_object_from_fd): Initialize it if zero.
* elf/link.h (_dl_pagesize): Remove const.
Sun Jun 9 04:04:26 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* elf/Makefile (routines): Add dl-symbol.
* elf/dl-lookup.c (_dl_symbol_value): Moved to ...
* elf/dl-symbol.c: New file.
* elf/elf.h (Elf32_Xword, Elf32_Sxword): New types.
(Elf32_Section, Elf64_Section): New types, 16 bits.
(Elf32_Sym, Elf64_Sym): Use it.
* elf/dl-deps.c (_dl_open): Moved to ...
* elf/dl-open.c: New file.
* Makefile (routines): Add dl-open.
* elf/Makefile (dl-routines): New variable.
(routines): Add $(dl-routines).
(elide-routines.so): New variable, set to $(dl-routines).
(libdl-inhibit-o): Variable removed; build all flavors of -ldl.
(rtld-routines): All but rtld, dl-sysdep, and dl-minimal moved to
$(dl-routines).
* elf/dl-lookup.c (_dl_lookup_symbol): Remove magic symbol grokage.
* elf/dladdr.c: Use ELFW(ST_BIND) in place of ELF32_ST_BIND.
* elf/dl-load.c (open_path): Use __ names for open and close. Avoid
using strdup.
(_dl_map_object): Likewise.
(_dl_map_object_from_fd): Use __ names for mmap, munmap, and mprotect.
* elf/dl-minimal.c (malloc): Likewise.
* elf/dl-reloc.c (_dl_relocate_object): Likewise.
* elf/dl-minimal.c (_dl_pagesize): New variable.
(malloc): Use that instead of a static variable.
* elf/dl-reloc.c (_dl_relocate_object): Use _dl_pagesize instead of
calling getpagesize.
* elf/dl-load.c (_dl_map_object_from_fd): Likewise.
* elf/link.h: Declare _dl_pagesize.
* elf/rtld.c (dl_r_debug): Renamed to _dl_r_debug.
* elf/link.h (struct link_map): Use Half for l_phnum instead of Word.
* elf/rtld.c (dl_main): Use Half for phdr count arg.
(_dl_sysdep_start): Update prototype of DL_MAIN function ptr arg.
* elf/dl-load.c (_dl_map_object_from_fd): Use explicit Elf32_Word to
extract 4-byte magic number, not ElfW(Word). Match EI_CLASS against
native wordsize, either 32 or 64.
* elf/elf.h (Elf64_Byte, Elf64_Section): Typedefs removed. In C a
char is always a byte, no need for a typedef. Section indices are
16-bit quantities in elf64, which already have a typedef Elf64_Half.
Remove partial -lelf implementation. There is now a
separately-distributed `libelf' package that implements it.
* elf/dl-lookup.c: Don't #include <libelf.h> any more.
(_dl_elf_hash): New function, moved from
libelf.h:elf_hash.
(_dl_lookup_symbol): Use it instead of elf_hash.
* elf/libelf.h: File removed.
* elf/elf_hash.c: File removed.
* elf/Makefile (headers): Remove libelf.h.
(extra-libs): Remove libelf.
(libelf-routines): Variable removed.
* elf/Makefile (libdl.so): Remove commands from this target. The
implicit rule commands are correct, this explicit rule just serves to
add some dependencies.
* elf/dl-lookup.c (_dl_lookup_symbol): Use ELFW(ST_TYPE) in place of
ELF32_ST_TYPE. Likewise ST_BIND.
* elf/do-rel.h (elf_dynamic_do_rel): Likewise R_SYM.
* elf/link.h (ElfW): New macro for wordsize-independent ElfXX_* type
naming.
(ELFW): New macro, likewise for ELFXX_* macro naming.
(_ElfW, _ElfW_1): New macros, subroutines of ElfW and ELF.
Sat Jun 8 20:52:38 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* elf/link.h, elf/do-rel.h, elf/dynamic-link.h, elf/dl-deps.c,
elf/dl-init.c, elf/dl-load.c, elf/dl-lookup.c, elf/dl-reloc.c,
elf/dl-runtime.c, elf/dladdr.c, elf/dlclose.c, elf/dlsym.c,
elf/linux-compat.c, elf/rtld.c: Change all uses of `Elf32_XXX' to
`ElfW(XXX)' for wordsize-independence.
Sat Jun 8 20:50:42 1996 Richard Henderson <rth@tamu.edu>
* elf/elf.h: Move Elf64_* types in parity with Elf32 counterparts.
(Elf64_auxv_t): New type.
(EM_ALPHA, R_ALPHA_*): New macros for elf64-alpha format.
* elf/dladdr.c: Remove #include <setjmp.h>, we don't use it.
* shlib-versions: Set libdl=2.
* elf/dl-deps.c (_dl_map_object_deps): Use a linked list of alloca'd
elements and then scan it to fill the single malloc'd array, instead
of using realloc to grow the array in the first pass. _dl_map_object
may do some mallocs that break our stream of reallocs, and the minimal
realloc can't handle that.
* elf/dl-init.c (_dl_init_next): Take argument, link_map whose
searchlist describes the piece of the DT_NEEDED graph to be
initialized.
* elf/link.h: Update prototype.
* sysdeps/i386/dl-machine.h (RTLD_START): Pass _dl_loaded as argument
to _dl_init_next.
* sysdeps/m68k/dl-machine.h: Likewise.
* elf/dl-deps.c (_dl_open): Pass new object as arg to _dl_init_next.
* elf/link.h (struct link_map): Add `l_reserved' member, soaking up
extra bits in last byte.
* elf/dl-deps.c (_dl_map_object_deps): Use that for mark bit to avoid
putting dup elts in search list.
* elf/dlclose.c: Use MAP->l_searchlist to find deps to close.
* elf/dlsym.c: Don't tweak linked list. Scope array given to
_dl_lookup_symbol does the right thing.
Tue Jun 4 02:25:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
macro. _IO_size_t is just an alias for the real size_t anyway.
* elf/Makefile (libdl-routines): Add dladdr.
* elf/dladdr.c: New file.
* elf/dlfcn.h (Dl_info): New typedef.
(dladdr): Declare it.