summaryrefslogtreecommitdiff
path: root/ldso/ldso/frv
diff options
context:
space:
mode:
authorJoakim Tjernlund <joakim.tjernlund@transmode.se>2004-09-23 07:00:45 +0000
committerJoakim Tjernlund <joakim.tjernlund@transmode.se>2004-09-23 07:00:45 +0000
commitea64c4b3c6fbf77577b7019182bc93cabe21fdd5 (patch)
treef78beaaff3a65188212a70a4dc35f28b9208306f /ldso/ldso/frv
parent6dfefd64985e6a6872aebf0c53a5f2c9da5b0da9 (diff)
Don't allow undefined global symbols to pass.
Move COPY relocs back to _dl_do_reloc().
Diffstat (limited to 'ldso/ldso/frv')
-rw-r--r--ldso/ldso/frv/elfinterp.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/ldso/ldso/frv/elfinterp.c b/ldso/ldso/frv/elfinterp.c
index bdf033bae..2b2891880 100644
--- a/ldso/ldso/frv/elfinterp.c
+++ b/ldso/ldso/frv/elfinterp.c
@@ -286,12 +286,10 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct dyn_elf *scope,
* here, so all bases should be covered.
*/
- if (!symbol_addr && ELF32_ST_BIND(symtab[symtab_index].st_info) == STB_GLOBAL) {
-#if defined (__SUPPORT_LD_DEBUG__)
- _dl_dprintf(2, "\tglobal symbol '%s' already defined in '%s'\n",
- symname, tpnt->libname);
-#endif
- return 0;
+ if (!symbol_addr && ELF32_ST_BIND(symtab[symtab_index].st_info) != STB_WEAK) {
+ _dl_dprintf (2, "%s: can't resolve symbol '%s'\n",
+ _dl_progname, strtab + symtab[symtab_index].st_name);
+ _dl_exit (1);
}
}