From 8a594e3cb7ea389cec5043cfcfd865d2bd0b8138 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 3 Jul 1996 18:51:10 +0000 Subject: Wed Jul 3 11:26:28 1996 Roland McGrath * time/strftime.c (strftime: do_number): Adjust P and I after sprintf in case it wrote fewer than MAXDIGITS chars. * stdio/fwrite.c (fwrite: fill_buffer): Separate flushing for last newline from flushing full buffer in loop, fix test so no fflush is done when last byte written exactly fills the buffer. * nss/Makefile ($(services:%=$(objpfx)libnss_%.so)): Depend on libc.so. * sysdeps/mach/hurd/Makefile (LDLIBS-c.so): Variable removed. (libc.so): Instead, give this deps on lib{mach,hurd}user.so. * elf/dl-debug.c (_dl_debug_initialize): Use LDBASE arg instead of extracting _dl_rtld_map.l_addr. * sysdeps/i386/dl-machine.h (elf_machine_rel): Declare _dl_rtld_map as weak. * sysdeps/alpha/dl-machine.h (elf_machine_rela): Likewise. * shlib-versions (*-*-*): Set libnss_db=1. * elf/rtld.c (dl_main): Set _dl_rtld_map's DT_DEBUG location too. --- sysdeps/alpha/dl-machine.h | 1 + sysdeps/i386/dl-machine.h | 1 + sysdeps/mach/hurd/Makefile | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) (limited to 'sysdeps') diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h index a276551b00..bfde6662bf 100644 --- a/sysdeps/alpha/dl-machine.h +++ b/sysdeps/alpha/dl-machine.h @@ -161,6 +161,7 @@ elf_machine_rela (struct link_map *map, { Elf64_Addr *const reloc_addr = (void *)(map->l_addr + reloc->r_offset); unsigned long r_info = ELF64_R_TYPE (reloc->r_info); + weak_symbol (_dl_rtld_map); /* Defined in rtld.c, but not in libc.a. */ /* We cannot use a switch here because we cannot locate the switch jump table until we've self-relocated. */ diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h index c164d3d47f..406133861d 100644 --- a/sysdeps/i386/dl-machine.h +++ b/sysdeps/i386/dl-machine.h @@ -80,6 +80,7 @@ elf_machine_rel (struct link_map *map, { Elf32_Addr *const reloc_addr = (void *) (map->l_addr + reloc->r_offset); Elf32_Addr loadbase, undo; + weak_symbol (_dl_rtld_map); /* Defined in rtld.c, but not in libc.a. */ switch (ELF32_R_TYPE (reloc->r_info)) { diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile index bbee3faa65..200f2b02a5 100644 --- a/sysdeps/mach/hurd/Makefile +++ b/sysdeps/mach/hurd/Makefile @@ -103,7 +103,8 @@ endif # For the shared library, we don't need to do the linker script machination. # Instead, we specify the required libraries when building the shared object. -LDLIBS-c.so = -lmachuser -lhurduser +$(common-objpfx)libc.so: $(firstword $(objdir) $(..)mach)/libmachuser.so \ + $(firstword $(objdir) $(..)hurd)/libhurduser.so ifndef objpfx rpath-link += $(..)mach:$(..)hurd endif -- cgit 1.4.1