uninitialised value" errors for aarch64 signal handlers
485148 vfmadd213ss instruction is instrumented incorrectly (the remaining
part of the register is cleared instead of kept unmodified)
+485487 glibc built with -march=x86-64-v3 does not work due to ld.so strcmp
n-i-bz Add redirect for memccpy
To see details of a given bug, visit
complain_about_stripped_glibc_ldso
# endif
);
+ add_hardwired_spec(
+ "ld-linux-x86-64.so.2", "strcmp",
+ (Addr)&VG_(amd64_linux_REDIR_FOR_strcmp),
+# ifndef GLIBC_MANDATORY_STRLEN_REDIRECT
+ NULL
+# else
+ complain_about_stripped_glibc_ldso
+# endif
+ );
}
# elif defined(VGP_ppc32_linux)
.LfnE5:
.size VG_(amd64_linux_REDIR_FOR_strlen), .-VG_(amd64_linux_REDIR_FOR_strlen)
+/* There's no particular reason that this needs to be handwritten
+ assembly, but since that's what this file contains, here's a
+ simple strcmp.)
+*/
+.global VG_(amd64_linux_REDIR_FOR_strcmp)
+.type VG_(amd64_linux_REDIR_FOR_strcmp), @function
+VG_(amd64_linux_REDIR_FOR_strcmp):
+ xorl %ecx, %ecx
+1:
+ movzbl (%rdi, %rcx), %eax
+ movzbl (%rsi, %rcx), %edx
+ testb %al, %al
+ jne 2f
+ movl %edx, %eax
+ negl %eax
+ ret
+2:
+ incq %rcx
+ subl %edx, %eax
+ je 1b
+ ret
+.size VG_(amd64_linux_REDIR_FOR_strcmp), .-VG_(amd64_linux_REDIR_FOR_strcmp)
+
.global VG_(amd64_linux_REDIR_FOR_index)
.type VG_(amd64_linux_REDIR_FOR_index), @function
VG_(amd64_linux_REDIR_FOR_index):
extern Addr VG_(amd64_linux_REDIR_FOR_vtime);
extern Addr VG_(amd64_linux_REDIR_FOR_vgetcpu);
extern UInt VG_(amd64_linux_REDIR_FOR_strlen)( void* );
+extern Int VG_(amd64_linux_REDIR_FOR_strcmp)( void*, void* );
extern Char* VG_(amd64_linux_REDIR_FOR_index) ( const Char*, Int );
#endif