From 08162fa888913a5153d2fcdc4e1a816b57b1fe56 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 2 May 1995 05:56:40 +0000 Subject: [PATCH] Tue May 2 01:52:58 1995 Roland McGrath Implemented runtime dynamic linker to support ELF shared libraries. * elf/Makefile: Added rules to make ld.so and libdl. * elf/dl-error.c: New file. * elf/dl-fini.c: New file. * elf/dl-init.c: New file. * elf/dl-load.c: New file. * elf/dl-lookup.c: New file. * elf/dl-object.c: New file. * elf/dl-reloc.c: New file. * elf/dlclose.c: New file. * elf/dlerror.c: New file. * elf/dlopen.c: New file. * elf/dlsym.c: New file. * elf/dynamic-link.h: New file. * elf/link.h: New file. * elf/rtld.c: New file. Mon May 1 18:48:30 1995 Roland McGrath * Makerules (LDFLAGS-c.so): Add -interp and -e switches to make libc.so runnable. * version.c (__libc_print_version): Add "et al" and missing NL to author credit. --- ChangeLog | 26 ++++++++++++++++++++++++++ Makerules | 2 ++ sysdeps/stub/elfreloc.h | 36 ------------------------------------ version.c | 4 ++-- 4 files changed, 30 insertions(+), 38 deletions(-) delete mode 100644 sysdeps/stub/elfreloc.h diff --git a/ChangeLog b/ChangeLog index e0a7a5c..2efcc82 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,29 @@ +Tue May 2 01:52:58 1995 Roland McGrath + + Implemented runtime dynamic linker to support ELF shared libraries. + * elf/Makefile: Added rules to make ld.so and libdl. + * elf/dl-error.c: New file. + * elf/dl-fini.c: New file. + * elf/dl-init.c: New file. + * elf/dl-load.c: New file. + * elf/dl-lookup.c: New file. + * elf/dl-object.c: New file. + * elf/dl-reloc.c: New file. + * elf/dlclose.c: New file. + * elf/dlerror.c: New file. + * elf/dlopen.c: New file. + * elf/dlsym.c: New file. + * elf/dynamic-link.h: New file. + * elf/link.h: New file. + * elf/rtld.c: New file. + +Mon May 1 18:48:30 1995 Roland McGrath + + * Makerules (LDFLAGS-c.so): Add -interp and -e switches to make + libc.so runnable. + * version.c (__libc_print_version): Add "et al" and missing NL to + author credit. + Sat Apr 29 15:46:57 1995 Roland McGrath * posix/glob.c (S_ISDIR): Define if undefined. diff --git a/Makerules b/Makerules index 6c01013..0e67398 100644 --- a/Makerules +++ b/Makerules @@ -350,6 +350,8 @@ lib%.so: lib%_pic.a # Also omits crti.o and crtn.o, which we do not want # since we define our own `.init' section specially. LDFLAGS-c.so = -nostdlib +# Give libc.so an entry point and make it directly runnable itself. +LDFLAGS-c.so += -Wl,-interp -Wl,/lib/ld.so -e __libc_print_version endif libobjs: $(foreach o,$(object-suffixes),\ diff --git a/sysdeps/stub/elfreloc.h b/sysdeps/stub/elfreloc.h deleted file mode 100644 index 2fea444..0000000 --- a/sysdeps/stub/elfreloc.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Machine-dependent ELF dynamic relocation inline functions. Stub version. -Copyright (C) 1995 Free Software Foundation, Inc. -This file is part of the GNU C Library. - -The GNU C Library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -The GNU C Library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ - -/* Perform the relocation specified by RELOC and SYM (which is fully resolved). - LOADADDR is the load address of the object; INFO is an array indexed - by DT_* of the .dynamic section info. */ - -static inline void -elf_machine_rel (Elf32_Addr loadaddr, const Elf32_Word *info, - const Elf32_Rel *reloc, Elf32_Sym *sym) -{ - abort (); -} - -static inline void -elf_machine_rela (Elf32_Addr loadaddr, const Elf32_Word *info, - const Elf32_Rela *reloc) -{ - abort (); -} diff --git a/version.c b/version.c index a838bf7..4ef29e4 100644 --- a/version.c +++ b/version.c @@ -20,12 +20,12 @@ Cambridge, MA 02139, USA. */ #include CONST char __libc_release[] = "alpha"; -CONST char __libc_version[] = "1.09.6"; +CONST char __libc_version[] = "1.09.7"; void DEFUN_VOID(__libc_print_version) { - printf ("GNU C Library %s release version %s, by Roland McGrath.", + printf ("GNU C Library %s release version %s, by Roland McGrath et al.\n", __libc_release, __libc_version); #ifdef __VERSION__ printf ("Compiled by GNU CC version %s.\n", __VERSION__); -- 2.7.4