summaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorskrll <skrll@NetBSD.org>2010-09-30 19:32:40 +0000
committerskrll <skrll@NetBSD.org>2010-09-30 19:32:40 +0000
commit0e07ba713843a7f00bed2fcda3eded1c58303d00 (patch)
tree904a68eaff8733577c24a2c82bc3d1ad6aa7c48f /libexec
parent61da8c5b7a3ec41e922c60fa09229709f1e016f9 (diff)
Add the magic branch instruction that is used by GCC's
__canonicalize_funcptr_for_compare() function to fixup relocations in order to do function pointer comparisons. From OpenBSD.
Diffstat (limited to 'libexec')
-rw-r--r--libexec/ld.elf_so/arch/hppa/rtld_start.S11
1 files changed, 10 insertions, 1 deletions
diff --git a/libexec/ld.elf_so/arch/hppa/rtld_start.S b/libexec/ld.elf_so/arch/hppa/rtld_start.S
index 8fb69caa464..ce2f229e312 100644
--- a/libexec/ld.elf_so/arch/hppa/rtld_start.S
+++ b/libexec/ld.elf_so/arch/hppa/rtld_start.S
@@ -1,4 +1,4 @@
-/* $NetBSD: rtld_start.S,v 1.8 2010/09/24 11:41:46 skrll Exp $ */
+/* $NetBSD: rtld_start.S,v 1.9 2010/09/30 19:32:40 skrll Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -146,6 +146,15 @@ EXIT(__rtld_hppa_setup_pltgot)
* very closely tied to the shared-library call stub and the PLT stub, both
* inserted by the linker.
*/
+
+/*
+ * This is a magic branch instruction that is used by GCC's
+ * __canonicalize_funcptr_for_compare() function to fixup relocations
+ * in order to do function pointer comparisons.
+ */
+
+ bl _rtld_bind, %rp
+
ENTRY(_rtld_bind_start,HPPA_FRAME_SIZE)
/* Start stack calling convention. */