about summary refs log tree commit diff
path: root/elf/dl-load.c
Commit message (Collapse)AuthorAgeFilesLines
* (MAP_FILE): Define to zero if undefined. (MAP_COPY): Define to MAP_PRIVATE ↵Roland McGrath1995-12-121-3/+23
| | | | if undefined. (_dl_map_object_from_fd): Don't use MAP_INHERIT in mmap calls. If file it ET_EXEC, set its l_type to lt_executable.
* Thu Nov 16 06:07:49 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> cvs/libc-951117Roland McGrath1995-11-171-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start_cleanup): New function. (_dl_sysdep_start): Move cleanup code there. * Makeconfig (default-rpath): New variable. (link-libc): Use it. * elf/Makefile (ld.so): Pass -rpath=$(default-rpath). * elf/rtld.c (_dl_rpath): New variable. (_dl_start): Set it from rtld_map's DT_RPATH. Call _dl_setup_hash on rtld_map. (dl_main): Cache address of _exit in variable before relocating, and use that in later calls. Call _dl_sysdep_start_cleanup before relocating. Keep track of dependency order while loading; remove rtld_map from chain, and reinsert in proper order if there is a dependency on it. * sysdeps/generic/Makefile (make_siglist): Pass -DSIGNUM_H=... with config's signum.h location. * sysdeps/generic/make_siglist.c: Include SIGNUM_H to define signal numbers. (HAVE_STRSIGNAL, HAVE_PSIGNAL): Define these before including signame.c (main): Deansideclize output. * elf/dl-load.c (_dl_map_object): Use _dl_rpath variable in place of DEFAULT_RPATH macro. * elf/Makefile: Undo last change. * sysdeps/mach/hurd/dl-sysdep.c (free): Don't abort, just nop.
* * elf/dl-lookup.c (_dl_lookup_symbol): Undefined symbol is no cvs/libc-951116Roland McGrath1995-11-161-1/+1
| | | | | | | | | error if weak. * elf/Makefile (default-rpath): New variable. (CPPFLAGS): Append -DDEFAULT_RPATH=.... * elf/dl-load.c (_dl_map_object): Use DEFAULT_RPATH instead of hard-coded "/lib:/usr/lib".
* Mon Oct 9 02:54:14 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-10-091-108/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makeconfig (config-LDFLAGS): Define to -Wl-dynamic-linker=$(libdir)$(rtld-installed-name). (rtld-installed-name): New variable. * elf/Makefile (install-lib): Variable removed. (install-others): Define this instead, to $(libdir)(rtld-installed-name). ($(libdir)(rtld-installed-name)): New target; install from ld.so. * elf/ldd.sh.in: New file. * elf/Makefile (distribute): Add ldd.sh.in. (install-bin): Add ldd. ($(objpfx)ldd: ldd.sh.in): New rule. * sysdeps/mach/hurd/dl-sysdep.c: Use __hurd_fail throughout. * hurd/hurd.h (__hurd_fail): Replace macro with inline function. Translate some Mach errors to Hurd errors. * elf/rtld.c (dl_main): Under --list, print msg if executable is statically linked. * elf/dl-load.c (_dl_map_object_from_fd): Rewrote program header table processing. Sat Oct 7 01:25:48 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> * sysdeps/stub/machine-gmon.h: Add #error. Fri Oct 6 01:49:48 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> * elf/dynamic-link.h (elf_get_dynamic_info): If DYN is null, don't examine it.
* * sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start): If started byRoland McGrath1995-09-301-13/+16
| | | | | | | | | | | | | | | | | kernel with args on stack, point _dl_hurd_data at zero data instead of garbage. When ld.so run as program, grok args -LIB=MEMOBJ and pre-load shared object files found in memory objects loaded by the boot loader. * elf/link.h (struct link_map): New member `l_entry'. (_dl_map_object, _dl_map_object_from_fd): Remove last arg ENTRY_POINT. * elf/dl-load.c (_dl_map_object, _dl_map_object_from_fd): Remove last arg ENTRY_POINT. Store the entry point location in the `l_entry' member of the new map. * elf/rtld.c (dl_main): Don't pass USER_ENTRY arg to _dl_map_object. When run as program, set *USER_ENTRY to L->l_entry. * elf/dl-init.c (_dl_init_next): Don't pass ENTRY_POINT arg to _dl_map_object.
* Wed Sep 27 00:27:25 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-09-271-35/+48
| | | | | | | | | | | * config.make.in (AS): New variable; set to `$(CC) -c'. * posix/unistd.h [__USE_BSD]: Declare profil. * elf/dl-load.c (_dl_map_object_from_fd): New function, broken out of _dl_map_object. (_dl_map_object): Call it. * elf/link.h (_dl_map_object_from_fd): Declare it.
* * elf/dl-load.c (_dl_map_object): Add MAP_INHERIT flag in mmapRoland McGrath1995-06-121-2/+2
| | | | | | | | | | | | | | | | | | | from zero fill. * elf/dl-lookup.c (_dl_lookup_symbol): Take new flag arg NOSELF; if nonzero, don't let *REF satisfy the reference itself. * elf/link.h (_dl_lookup_symbol): Add new arg NOSELF in decl. * sysdeps/i386/dl-runtime.c (_dl_runtime_resolve): Pass new arg to _dl_lookup_symbol. * elf/do-rel.h (elf_dynamic_do_rel): Pass new second arg of R->r_offset to RESOLVE callback. * elf/dl-reloc.c (_dl_relocate_object: resolve): Don't let *REF satisfy the reference itself if its value equals the reloc's offset. * elf/rtld.c (dl_main): Write a newline in fatal msg. * Makerules (lib%.so: lib%_pic.a): Pass $(LDFLAGS.so).
* Thu Jun 8 02:50:26 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-06-081-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* Tue May 30 15:52:32 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-05-311-10/+11
| | | | | | * 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.
* Sat May 6 11:06:47 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>Roland McGrath1995-05-081-20/+18
| | | | | | | | | | | | | | | | | | | | | | * 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/mach/i386/sysdep.h (SNARF_ARGS, CALL_WITH_SP): Rewritten.Roland McGrath1995-05-021-0/+377
* 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.