* mach/Machrules (include-%.defs): New canned sequence.
Change all uses of `#include <$*.defs>' in cmds to use it.
* mach/Makefile (mach_interface.defs): New variable, set to mach.defs.
* sysdeps/i386/dl-machine.h (elf_machine_rel): Handle RESOLVE being
null in all cases but R_386_COPY.
(elf_machine_rel):
* sysdeps/unix/bsd/ultrix4/mips/Dist: Updated.
* sysdeps/unix/bsd/ultrix4/Dist: Removed.
* sysdeps/unix/sysv/sysv4/Dist: Updated.
* sysdeps/unix/sysv/sco3.2.4/Dist: Removed.
* sysdeps/unix/sysv/irix4/Dist: Updated.
* sysdeps/unix/sysv/linux/i386/Dist: Removed.
* sysdeps/unix/sysv/Dist: Updated.
* sysdeps/unix/bsd/sun/sunos4/Dist: Removed.
* sysdeps/unix/bsd/sony/newsos4/Dist: Removed.
* sysdeps/gnu/Dist: New file.
* sysdeps/alpha/Dist: Updated.
* sysdeps/mach/hurd/Dist: Updated.
* Make-dist [subdir-dirs]: Set a vpath for %.c.
* Make-dist (README): Fix typo in cvs cmd.
* 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>
* elf/dl-lookup.c (_dl_lookup_symbol): Take new arg RELOC_ADDR and
don't allow a defn resolving to that address.
* elf/link.h: Update prototype and comment.
* elf/dl-runtime.c (fixup): Define local `resolve' function and pass
it to elf_machine_relplt.
* elf/dl-reloc.c (_dl_relocate_object: resolve): Take new arg
RELOC_ADDR and pass it through to _dl_lookup_symbol.
* elf/do-rel.h (elf_dynamic_do_rel): Pass RESOLVE to elf_machine_rel
instead of calling it ourselves and passing its results.
(elf_dynamic_do_rel): RESOLVE fn takes new arg RELOC_ADDR.
* elf/rtld.c (dl_main): Pass 0 for RELOC_ADDR to _dl_lookup_symbol.
* sysdeps/i386/dl-machine.h (elf_machine_rel): Remove SYM_LOADADDR
arg. Add RESOLVE function ptr arg. Call *RESOLVE as necessary.
* sysdeps/m68k/dl-machine.h (elf_machine_rela): Likewise.
* sysdeps/stub/dl-machine.h: Likewise.
* csu/initfini.c (_fini): Add extern decl for i_am_not_a_leaf.
* elf/dlfcn.h (dl_open_mode): Enumerated type removed.
(RTLD_LAZY, RTLD_NOW): Define these as macros instead.
(RTLD_GLOBAL): New macro.
(dlopen): Take arg of type int instead of dl_open_mode.
* elf/dlopen.c: Likewise.
* math/math.h (_Mldbl): New macro, either produces L suffix or not.
(M_*): Use it for these constants.
* Makefile (subdirs): Added db.
* resolv/Makefile (routines): Add res_data.
* resolv/res_data.c, resolv/res_debug.c, resolv/resolv.h:
Updated from BIND 4.9.3 final release.
* elf/dynamic-link.h (elf_get_dynamic_info): Handle
processor-specific tags.
(ELF_DYNAMIC_DO_REL, ELF_DYNAMIC_DO_RELA): Handle absent DT_PLTREL tag.
* elf/elf.h (DT_MIPS_NUM, DT_PROCNUM): New macros.
* elf/link.h (struct link_map): Extend `l_info' by DT_PROCNUM.
* sysdeps/i386/dl-machine.h (elf_machine_runtime_setup): Take new
arg LAZY. Only do our work if LAZY and there is a DT_JMPREL record.
* elf/dl-reloc.c (_dl_relocate_object): Call
elf_machine_runtime_setup unconditionally, and pass it LAZY flag.
* elf/dl-load.c: Fixed ELFMAG check to work for either byte order.
Align end of load segment only to page size, not to segment alignment.
Merge new message handling code from GNU gettext, by Drepper.
* intl: New directory.
* Makefile (subdirs): Add intl.
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Return
USER_ENTRY instead of storing it on our stack.
* elf/rtld.c (rtld_command): Variable removed.
(_dl_skip_args): New variable.
(dl_main): Increment _dl_skip_args instead of setting rtld_command.
If the link_map for the executable itself is not first in the chain,
make it so.
* sysdeps/i386/dl-machine.h (RTLD_START): Use _dl_skip_args as
count of args to skip.
Thu Sep 28 09:20:04 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* stdlib/strtod.c (STRTOF): Fix handling of numbers with lots of
leading zeroes.
* libc-symbols.h (link_warning): Take new first arg SYMBOL; ask
for a warning on references to that specific symbol, not the
entire containing object file.
(stub_warning): Pass symbol name to link_warning.
* stdio/gets.c: Pass function name in link_warning invocation.
* hurd/intr-msg.c: Treat apparent EINTR return from msg trap like
MACH_SEND_INTERRUPTED. That indicates interrupt_operation was
sent, but failed.
* stdlib/msort.c: Include memcopy.h.
(msort_with_tmp): If operating on aligned op_t words, use direct word
fetches and stores.
* sysdeps/i386/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC): Add
missing backslash.
* sysdeps/mach/hurd/select.c: Deal with out of order replies
during io_select request loop.
Handle MACH_RCV_TIMED_OUT error from requests.
* hurd/intr-msg.c: If the user passed the MACH_RCV_TIMEOUT option,
distinguish MACH_RCV_TIMED_OUT from EINTR.
* posix/glob.c (glob): Use realloc to extend strings for GLOB_MARK
slash.
(glob_in_dir): Don't allocate extra byte here.
* sysdeps/i386/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC):
Decrement the DT_RELSZ value for the skipped reloc.
* elf/rtld.c [! NDEBUG] (__assert_perror_fail): New function.
* hurd/hurdstartup.c (_hurd_startup): Fancier kludge to guess phdr
and user entry point addresses.
* elf/dl-load.c (open_path): Don't do strlen on DIRPATH if it's null.
(_dl_map_object): DT_RPATH value is relative to DT_STRTAB value.
* Makerules (install-lib.so): Don't include libc.so.
[$(build-shared)=yes] (install): Depend on the installed libc.so file.
[$(build-shared)=yes] (install-no-libc.a): Make this, rather than
install, depend on the installed $(install-lib.so) files.
[$(build-shared)=yes] (install-lib.so): Append libc.so after that rule.
* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): Add kludge to
allocate high addresses to avoid random mappings appearing there.
(mmap): Comment out mask; always pass zero.
Tue Jun 6 13:34:53 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/i386/dl-machine.h (ELF_MACHINE_USER_ADDRESS_MASK): New macro.
* sysdeps/mach/hurd/dl-sysdep.c (mmap): Use it as mask in vm_map call.
* elf/dl-error.c (_dl_catch_error): Clear *ERRSTRING and *OBJNAME
when successful.
* sysdeps/mach/hurd/dl-sysdep.c (threadvars): New static variable.
(__hurd_threadvar_max, __hurd_threadvar_stack_offset): Define these
variables, using the `threadvars' buffer.
* elf/dl-reloc.c: Don't dereference L->l_prev when it's null.
* sysdeps/i386/dl-runtime.c: Likewise.
* elf/rtld.c (dl_main): Add missing NULL terminating argument in
_dl_sysdep_fatal call.
(__assert_fail): Likewise.
* locale/Makefile (localedef-modules): Renamed ctype to
locale-ctype so as not to conflict with the object file for
ctype/ctype.c in the build directory.
* sysdeps/i386/dl-machine.h (elf_machine_rel): If MAP->l_type is
lt_interpreter, first undo relocation done during bootstrapping.
* mach/Makefile (server-interfaces): Removed notify and
device_reply. For shlibs with eager binding, libmachuser.so must
not refer to any functions not defined in libc.
* Makeconfig (+gccwarn): Add -Winline.
* hurd/hurdsig.c (_hurd_internal_post_signal): If SS->context is
set, avoid abort_rpcs, and use reply and intr ports saved in
SS->context.
* sysdeps/mach/hurd/i386/trampoline.c: Don't set SS->intr_port
from SS->context. Don't clear SS->context.
* sysdeps/mach/hurd/i386/sigreturn.c: Don't set SS->intr_port when
setting SS->context. If msg_sig_post returns, re-lock and clear
SS->context.
Fri May 5 10:37:09 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* mach/Makefile (errsystems.c): Comment out generation rule.
* sysdeps/mach/_strerror.c: Consider a system unknown if its
bad_sub member is null.
* mach/mig-alloc.c: Add weak alias to non-__ name.
* sysdeps/i386/dl-machine.h: New file.
* sysdeps/stub/dl-machine.h: New file.
* sysdeps/i386/dl-runtime.c: New file.
* sysdeps/stub/dl-runtime.c: New file.
* sysdeps/i386/elf/start.S: New file.
* sysdeps/generic/dl-sysdep.c: New file.
* sysdeps/mach/hurd/dl-sysdep.c: New file.