|
|
84e434 |
diff --git a/coregrind/m_redir.c b/coregrind/m_redir.c
|
|
|
84e434 |
index b8cc022..d54cae7 100644
|
|
|
84e434 |
--- a/coregrind/m_redir.c
|
|
|
84e434 |
+++ b/coregrind/m_redir.c
|
|
|
84e434 |
@@ -1485,6 +1485,17 @@ void VG_(redir_initialise) ( void )
|
|
|
84e434 |
(Addr)&VG_(arm_linux_REDIR_FOR_strcmp),
|
|
|
84e434 |
complain_about_stripped_glibc_ldso
|
|
|
84e434 |
);
|
|
|
84e434 |
+ /* index */
|
|
|
84e434 |
+ add_hardwired_spec(
|
|
|
84e434 |
+ "ld-linux.so.3", "index",
|
|
|
84e434 |
+ (Addr)&VG_(arm_linux_REDIR_FOR_index),
|
|
|
84e434 |
+ complain_about_stripped_glibc_ldso
|
|
|
84e434 |
+ );
|
|
|
84e434 |
+ add_hardwired_spec(
|
|
|
84e434 |
+ "ld-linux-armhf.so.3", "index",
|
|
|
84e434 |
+ (Addr)&VG_(arm_linux_REDIR_FOR_index),
|
|
|
84e434 |
+ complain_about_stripped_glibc_ldso
|
|
|
84e434 |
+ );
|
|
|
84e434 |
}
|
|
|
84e434 |
|
|
|
84e434 |
# elif defined(VGP_arm64_linux)
|
|
|
84e434 |
diff --git a/coregrind/m_trampoline.S b/coregrind/m_trampoline.S
|
|
|
84e434 |
index a532071..0488b54 100644
|
|
|
84e434 |
--- a/coregrind/m_trampoline.S
|
|
|
84e434 |
+++ b/coregrind/m_trampoline.S
|
|
|
84e434 |
@@ -625,26 +625,26 @@ VG_(arm_linux_REDIR_FOR_strlen):
|
|
|
84e434 |
bx lr
|
|
|
84e434 |
UD2_4
|
|
|
84e434 |
|
|
|
84e434 |
-//.global VG_(arm_linux_REDIR_FOR_index)
|
|
|
84e434 |
-//VG_(arm_linux_REDIR_FOR_index):
|
|
|
84e434 |
-// ldrb r3, [r0, #0] @ zero_extendqisi2
|
|
|
84e434 |
-// and r1, r1, #255
|
|
|
84e434 |
-// cmp r3, r1
|
|
|
84e434 |
-// @ lr needed for prologue
|
|
|
84e434 |
-// bne .L9
|
|
|
84e434 |
-// bx lr
|
|
|
84e434 |
-//.L12:
|
|
|
84e434 |
-// ldrb r3, [r0, #1]! @ zero_extendqisi2
|
|
|
84e434 |
-// cmp r3, r1
|
|
|
84e434 |
-// beq .L11
|
|
|
84e434 |
-//.L9:
|
|
|
84e434 |
-// cmp r3, #0
|
|
|
84e434 |
-// bne .L12
|
|
|
84e434 |
-// mov r0, #0
|
|
|
84e434 |
-// bx lr
|
|
|
84e434 |
-//.L11:
|
|
|
84e434 |
-// bx lr
|
|
|
84e434 |
-// UD2_4
|
|
|
84e434 |
+.global VG_(arm_linux_REDIR_FOR_index)
|
|
|
84e434 |
+VG_(arm_linux_REDIR_FOR_index):
|
|
|
84e434 |
+ ldrb r3, [r0, #0] @ zero_extendqisi2
|
|
|
84e434 |
+ and r1, r1, #255
|
|
|
84e434 |
+ cmp r3, r1
|
|
|
84e434 |
+ @ lr needed for prologue
|
|
|
84e434 |
+ bne .L9
|
|
|
84e434 |
+ bx lr
|
|
|
84e434 |
+.L12:
|
|
|
84e434 |
+ ldrb r3, [r0, #1]! @ zero_extendqisi2
|
|
|
84e434 |
+ cmp r3, r1
|
|
|
84e434 |
+ beq .L11
|
|
|
84e434 |
+.L9:
|
|
|
84e434 |
+ cmp r3, #0
|
|
|
84e434 |
+ bne .L12
|
|
|
84e434 |
+ mov r0, #0
|
|
|
84e434 |
+ bx lr
|
|
|
84e434 |
+.L11:
|
|
|
84e434 |
+ bx lr
|
|
|
84e434 |
+ UD2_4
|
|
|
84e434 |
|
|
|
84e434 |
.global VG_(arm_linux_REDIR_FOR_memcpy)
|
|
|
84e434 |
VG_(arm_linux_REDIR_FOR_memcpy):
|
|
|
84e434 |
diff --git a/coregrind/pub_core_trampoline.h b/coregrind/pub_core_trampoline.h
|
|
|
84e434 |
index 3a9bafe..e29427d 100644
|
|
|
84e434 |
--- a/coregrind/pub_core_trampoline.h
|
|
|
84e434 |
+++ b/coregrind/pub_core_trampoline.h
|
|
|
84e434 |
@@ -100,7 +100,7 @@ extern Addr VG_(ppctoc_magic_redirect_return_stub);
|
|
|
84e434 |
extern Addr VG_(arm_linux_SUBST_FOR_sigreturn);
|
|
|
84e434 |
extern Addr VG_(arm_linux_SUBST_FOR_rt_sigreturn);
|
|
|
84e434 |
extern UInt VG_(arm_linux_REDIR_FOR_strlen)( void* );
|
|
|
84e434 |
-//extern void* VG_(arm_linux_REDIR_FOR_index) ( void*, Int );
|
|
|
84e434 |
+extern void* VG_(arm_linux_REDIR_FOR_index) ( void*, Int );
|
|
|
84e434 |
extern void* VG_(arm_linux_REDIR_FOR_memcpy)( void*, void*, Int );
|
|
|
84e434 |
extern void* VG_(arm_linux_REDIR_FOR_strcmp)( void*, void* );
|
|
|
84e434 |
#endif
|