ppc32 syscalls.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4927
"soname:ld.so.1", "strcmp",
(Addr)&VG_(ppc32_linux_REDIR_FOR_strcmp)
);
+ add_redirect_sym_to_addr(
+ "soname:ld.so.1", "index",
+ (Addr)&VG_(ppc32_linux_REDIR_FOR_strchr)
+ );
#else
# error Unknown platform
//.. // (__NR_sysfs, sys_sysfs), // 135 SVr4
//.. LINX_(__NR_personality, sys_personality), // 136
//.. GENX_(__NR_afs_syscall, sys_ni_syscall), // 137
-//.. LINX_(__NR_setfsuid, sys_setfsuid16), // 138
-//.. LINX_(__NR_setfsgid, sys_setfsgid16), // 139
-//..
+ LINX_(__NR_setfsuid, sys_setfsuid16), // 138
+ LINX_(__NR_setfsgid, sys_setfsgid16), // 139
+
LINXY(__NR__llseek, sys_llseek), // 140
-//.. GENXY(__NR_getdents, sys_getdents), // 141
+ GENXY(__NR_getdents, sys_getdents), // 141
GENX_(__NR__newselect, sys_select), // 142
GENX_(__NR_flock, sys_flock), // 143
//.. GENX_(__NR_msync, sys_msync), // 144
blr
.size VG_(ppc32_linux_REDIR_FOR_strcmp), .-VG_(ppc32_linux_REDIR_FOR_strcmp)
+/* Ditto index/strchr */
+.global VG_(ppc32_linux_REDIR_FOR_strchr)
+.type VG_(ppc32_linux_REDIR_FOR_strchr), @function
+VG_(ppc32_linux_REDIR_FOR_strchr):
+ lbz 0,0(3)
+ cmpw 7,4,0
+ beqlr 7
+ cmpwi 7,0,0
+ beq 7,.L307
+ .p2align 4,,15
+.L310:
+ lbzu 0,1(3)
+ cmpw 7,0,4
+ cmpwi 6,0,0
+ beq 7,.L313
+ bne 6,.L310
+.L307:
+ li 3,0
+ blr
+.L313:
+ blr
+.size VG_(ppc32_linux_REDIR_FOR_strchr),.-VG_(ppc32_linux_REDIR_FOR_strchr)
+
.global VG_(trampoline_stuff_end)
VG_(trampoline_stuff_end):
#endif
#if defined(VGP_ppc32_linux)
-extern UInt VG_(ppc32_linux_REDIR_FOR_strlen)( void* );
-extern UInt VG_(ppc32_linux_REDIR_FOR_strcmp)( void*, void* );
+extern UInt VG_(ppc32_linux_REDIR_FOR_strlen)( void* );
+extern UInt VG_(ppc32_linux_REDIR_FOR_strcmp)( void*, void* );
+extern void* VG_(ppc32_linux_REDIR_FOR_strchr)( void*, Int );
#endif
#endif // __PUB_CORE_TRAMPOLINE_H
//#define __NR_sysfs 135
//#define __NR_personality 136
//#define __NR_afs_syscall 137 /* Syscall for Andrew File System */
-//#define __NR_setfsuid 138
-//#define __NR_setfsgid 139
+#define __NR_setfsuid 138
+#define __NR_setfsgid 139
#define __NR__llseek 140
#define __NR_getdents 141
#define __NR__newselect 142
#}
+##----------------------------------------------------------------------##
+## glibc-2.3.5 on SuSE 10.0 (PPC)
+#
+# I don't know why this is needed, but still:
+{
+ glibc-2.3.5-on-SuSE-10.0-(PPC)-1
+ Memcheck:Cond
+ fun:_dl_start
+ fun:_start
+}
+
+
##----------------------------------------------------------------------##
# Hacks pertaining to the fact that our intercept mechanism can't
# always get hold of strlen early enough, due to idiocy in the low