about summary refs log tree commit diff
path: root/elf/dl-lookup.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-11-16 02:37:06 +0000
committerRoland McGrath <roland@gnu.org>1995-11-16 02:37:06 +0000
commit8738e7f8b0c6d6254a31450dc528bddc8bdae0f7 (patch)
tree5e7e75d0e75996d699cfdeb09575a4fcb6e57c59 /elf/dl-lookup.c
parentec967c06ac7474fa58266ea309d6488ee3c53851 (diff)
downloadglibc-8738e7f8b0c6d6254a31450dc528bddc8bdae0f7.tar.gz
glibc-8738e7f8b0c6d6254a31450dc528bddc8bdae0f7.tar.xz
glibc-8738e7f8b0c6d6254a31450dc528bddc8bdae0f7.zip
* elf/dl-lookup.c (_dl_lookup_symbol): Undefined symbol is no cvs/libc-951116
	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".
Diffstat (limited to 'elf/dl-lookup.c')
-rw-r--r--elf/dl-lookup.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c
index 62802ddea7..cb337d47cd 100644
--- a/elf/dl-lookup.c
+++ b/elf/dl-lookup.c
@@ -22,7 +22,7 @@ Cambridge, MA 02139, USA.  */
 #include <link.h>
 #include <assert.h>
 
-/* Search loaded objects' symbol tables for a definition of 
+/* Search loaded objects' symbol tables for a definition of
    the symbol UNDEF_NAME.  If NOSELF is nonzero, then *REF
    cannot satisfy the reference itself; some different binding
    must be found.  */
@@ -100,7 +100,7 @@ _dl_lookup_symbol (const char *undef_name, const Elf32_Sym **ref,
 	}
     }
 
-  if (weak_value.s == NULL)
+  if (weak_value.s == NULL && ELF32_ST_BIND ((*ref)->st_info) != STB_WEAK)
     {
       const char msg[] = "undefined symbol: ";
       char buf[sizeof msg + strlen (undef_name)];