diff options
author | Nathan Whitehorn <nwhitehorn@FreeBSD.org> | 2010-09-12 17:04:51 +0000 |
---|---|---|
committer | Nathan Whitehorn <nwhitehorn@FreeBSD.org> | 2010-09-12 17:04:51 +0000 |
commit | d48dde6f68072916eb115b65cb71353edbb19e7e (patch) | |
tree | b482662e841f2f28f586dc6a8b870326a55c3c57 /libexec/rtld-elf/powerpc64 | |
parent | 89f81c964662f6934ef86f94f46507bb7f944d18 (diff) | |
download | src-test2-d48dde6f68072916eb115b65cb71353edbb19e7e.tar.gz src-test2-d48dde6f68072916eb115b65cb71353edbb19e7e.zip |
Notes
Diffstat (limited to 'libexec/rtld-elf/powerpc64')
-rw-r--r-- | libexec/rtld-elf/powerpc64/reloc.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libexec/rtld-elf/powerpc64/reloc.c b/libexec/rtld-elf/powerpc64/reloc.c index b35be1806529..d2430e741d86 100644 --- a/libexec/rtld-elf/powerpc64/reloc.c +++ b/libexec/rtld-elf/powerpc64/reloc.c @@ -405,8 +405,13 @@ reloc_jmpslots(Obj_Entry *obj) (void *)target, basename(defobj->path)); #endif - reloc_jmpslot(where, target, defobj, obj, - (const Elf_Rel *) rela); + if (def == &sym_zero) { + /* Zero undefined weak symbols */ + bzero(where, sizeof(struct funcdesc)); + } else { + reloc_jmpslot(where, target, defobj, obj, + (const Elf_Rel *) rela); + } } obj->jmpslots_done = true; |