about summary refs log tree commit diff
path: root/elf/rtld.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2007-02-12 15:17:30 +0000
committerUlrich Drepper <drepper@redhat.com>2007-02-12 15:17:30 +0000
commit2f978feb67c29ce3eb866aa719ed75ebdaabf4d1 (patch)
treef61c658fbc5aa098e4fc86b67ac7a2d323793020 /elf/rtld.c
parent5ed61e0fd6177e6ef6054a15ca04d0f5e90851d8 (diff)
downloadglibc-2f978feb67c29ce3eb866aa719ed75ebdaabf4d1.tar.gz
glibc-2f978feb67c29ce3eb866aa719ed75ebdaabf4d1.tar.xz
glibc-2f978feb67c29ce3eb866aa719ed75ebdaabf4d1.zip
* elf/rtld.c (RESOLVE_MAP): Always return bootstrap_map reference.
	* elf/Makefile ($(objpfx)ld.so): Check that ld.so has no undefined
	references.
Diffstat (limited to 'elf/rtld.c')
-rw-r--r--elf/rtld.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/elf/rtld.c b/elf/rtld.c
index 5e6ee51603..c57ef17e13 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -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)