|
From: <sv...@va...> - 2005-10-15 02:00:43
|
Author: sewardj
Date: 2005-10-15 03:00:41 +0100 (Sat, 15 Oct 2005)
New Revision: 4927
Log:
Various fixes to reduce noise level on SuSE 10 (PPC). Also fix some
ppc32 syscalls.
Modified:
trunk/coregrind/m_redir.c
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
trunk/coregrind/m_trampoline.S
trunk/coregrind/pub_core_trampoline.h
trunk/coregrind/vki_unistd-ppc32-linux.h
trunk/glibc-2.3.supp
Modified: trunk/coregrind/m_redir.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_redir.c 2005-10-15 00:58:26 UTC (rev 4926)
+++ trunk/coregrind/m_redir.c 2005-10-15 02:00:41 UTC (rev 4927)
@@ -375,6 +375,10 @@
"soname:ld.so.1", "strcmp",
(Addr)&VG_(ppc32_linux_REDIR_FOR_strcmp)
); =20
+ add_redirect_sym_to_addr(
+ "soname:ld.so.1", "index",
+ (Addr)&VG_(ppc32_linux_REDIR_FOR_strchr)
+ ); =20
=20
#else
# error Unknown platform
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-10-15 00:58:26 U=
TC (rev 4926)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-10-15 02:00:41 U=
TC (rev 4927)
@@ -1825,11 +1825,11 @@
//.. // (__NR_sysfs, sys_sysfs), // 135 SVr=
4
//.. 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
-//..=20
+ 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
Modified: trunk/coregrind/m_trampoline.S
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_trampoline.S 2005-10-15 00:58:26 UTC (rev 4926)
+++ trunk/coregrind/m_trampoline.S 2005-10-15 02:00:41 UTC (rev 4927)
@@ -209,6 +209,29 @@
blr
.size VG_(ppc32_linux_REDIR_FOR_strcmp), .-VG_(ppc32_linux_REDIR_FOR_str=
cmp)
=20
+/* 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_st=
rchr)
+=09
.global VG_(trampoline_stuff_end)
VG_(trampoline_stuff_end):
=20
Modified: trunk/coregrind/pub_core_trampoline.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/pub_core_trampoline.h 2005-10-15 00:58:26 UTC (rev 49=
26)
+++ trunk/coregrind/pub_core_trampoline.h 2005-10-15 02:00:41 UTC (rev 49=
27)
@@ -60,8 +60,9 @@
#endif
=20
#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
=20
#endif // __PUB_CORE_TRAMPOLINE_H
Modified: trunk/coregrind/vki_unistd-ppc32-linux.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/vki_unistd-ppc32-linux.h 2005-10-15 00:58:26 UTC (rev=
4926)
+++ trunk/coregrind/vki_unistd-ppc32-linux.h 2005-10-15 02:00:41 UTC (rev=
4927)
@@ -167,8 +167,8 @@
//#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
Modified: trunk/glibc-2.3.supp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/glibc-2.3.supp 2005-10-15 00:58:26 UTC (rev 4926)
+++ trunk/glibc-2.3.supp 2005-10-15 02:00:41 UTC (rev 4927)
@@ -419,6 +419,18 @@
=20
=20
##----------------------------------------------------------------------=
##
+## glibc-2.3.5 on SuSE 10.0 (PPC)
+#=20
+# 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
# level memory manager.
|