]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Various fixes to reduce noise level on SuSE 10 (PPC). Also fix some
authorJulian Seward <jseward@acm.org>
Sat, 15 Oct 2005 02:00:41 +0000 (02:00 +0000)
committerJulian Seward <jseward@acm.org>
Sat, 15 Oct 2005 02:00:41 +0000 (02:00 +0000)
ppc32 syscalls.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4927

coregrind/m_redir.c
coregrind/m_syswrap/syswrap-ppc32-linux.c
coregrind/m_trampoline.S
coregrind/pub_core_trampoline.h
coregrind/vki_unistd-ppc32-linux.h
glibc-2.3.supp

index 493125862a653a193e72c88e8dd46698a51cf17d..05902334029910c0bd6902d1107edcb074be7252 100644 (file)
@@ -375,6 +375,10 @@ void VG_(setup_code_redirect_table) ( void )
       "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
index d3013354f80575bde72c4398a54e5431a271b7a1..b8dad4170a8a6e6101547b41e8dd993d36bdb741 100644 (file)
@@ -1825,11 +1825,11 @@ const SyscallTableEntry ML_(syscall_table)[] = {
 //..    //   (__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
index 3477a54e176840c81af1c652bc7ecaa160273fa1..54a6a76d6a8307b8c23b053a3df2ccb529e45f8b 100644 (file)
@@ -209,6 +209,29 @@ VG_(ppc32_linux_REDIR_FOR_strcmp):
         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):
 
index 666e1482a64b4b576072108c719e64b77f1b60e8..95f58d4bffb36c688bf55c994803be652d8bd30c 100644 (file)
@@ -60,8 +60,9 @@ extern void VG_(amd64_linux_REDIR_FOR_vtime);
 #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
index fd9e2923941650ff0fb0d421d5dfee91c9d0624c..d43f69cda7de5481abd97d9f898ec838457050c4 100644 (file)
 //#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
index cea67318dee392fdce093a21f3d6baaeef78da9a..eb7fc2cb4d23c92e9bb19928e074eba3c81e9760 100644 (file)
 #}
 
 
+##----------------------------------------------------------------------##
+## 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