* elf/rtld.c (RESOLVE_MAP): Always return bootstrap_map reference.
authorUlrich Drepper <drepper@redhat.com>
Mon, 12 Feb 2007 15:17:30 +0000 (15:17 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 12 Feb 2007 15:17:30 +0000 (15:17 +0000)
* elf/Makefile ($(objpfx)ld.so): Check that ld.so has no undefined
references.

ChangeLog
elf/Makefile
elf/rtld.c

index 07fe6a9..6a2d824 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-12  Ulrich Drepper  <drepper@redhat.com>
+
+       * elf/rtld.c (RESOLVE_MAP): Always return bootstrap_map reference.
+       * elf/Makefile ($(objpfx)ld.so): Check that ld.so has no undefined
+       references.
+
 2007-02-09  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Remove incorrect comment.
index afebaec..1c5b169 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 1995-2004, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 1995-2004, 2005, 2006, 2007 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
@@ -307,6 +307,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld-map)
                  $(filter-out $(map-file),$^) $(load-map-file)         \
                  -Wl,-soname=$(rtld-installed-name) -T $@.lds
        rm -f $@.lds
+       nm -u $@ | cmp -s /dev/null -
 
 # interp.c exists just to get this string into the libraries.
 CFLAGS-interp.c = -D'RUNTIME_LINKER="$(slibdir)/$(rtld-installed-name)"' \
index 5e6ee51..c57ef17 100644 (file)
@@ -1,5 +1,5 @@
 /* Run time dynamic linker.
-   Copyright (C) 1995-2002,2003,2004,2005,2006 Free Software Foundation, Inc.
+   Copyright (C) 1995-2006, 2007 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
@@ -359,10 +359,11 @@ _dl_start (void *arg)
 #endif
 
   /* This #define produces dynamic linking inline functions for
-     bootstrap relocation instead of general-purpose relocation.  */
+     bootstrap relocation instead of general-purpose relocation.
+     Since ld.so must not have any undefined symbols the result
+     is trivial: always the map of ld.so itself.  */
 #define RTLD_BOOTSTRAP
-#define RESOLVE_MAP(sym, version, flags) \
-  ((*(sym))->st_shndx == SHN_UNDEF ? 0 : &bootstrap_map)
+#define RESOLVE_MAP(sym, version, flags) (&bootstrap_map)
 #include "dynamic-link.h"
 
   if (HP_TIMING_INLINE && HP_TIMING_AVAIL)