From: Julian Seward Date: Fri, 10 May 2002 23:20:58 +0000 (+0000) Subject: Hook libpthread.so's .init section to start up Valgrind too. X-Git-Tag: svn/VALGRIND_1_0_3~202 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9945834acc1dc910de4c9d1f33d4dbe9acfb2c6a;p=thirdparty%2Fvalgrind.git Hook libpthread.so's .init section to start up Valgrind too. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@262 --- diff --git a/coregrind/arch/x86-linux/vg_libpthread.c b/coregrind/arch/x86-linux/vg_libpthread.c index df895171a3..5e6e14c61c 100644 --- a/coregrind/arch/x86-linux/vg_libpthread.c +++ b/coregrind/arch/x86-linux/vg_libpthread.c @@ -107,6 +107,13 @@ void ensure_valgrind ( char* caller ) VG_(startup)(); } +/* While we're at it ... hook our own startup function into this + game. */ +__asm__ ( + ".section .init\n" + "\tcall vgPlain_startup" +); + static __attribute__((noreturn)) @@ -703,9 +710,7 @@ int __pthread_atfork ( void (*prepare)(void), __attribute__((weak)) void __pthread_initialize ( void ) { - static int moans = N_MOANS; - if (moans-- > 0) - ignored("__pthread_initialize"); + ensure_valgrind("__pthread_initialize"); } diff --git a/coregrind/vg_libpthread.c b/coregrind/vg_libpthread.c index df895171a3..5e6e14c61c 100644 --- a/coregrind/vg_libpthread.c +++ b/coregrind/vg_libpthread.c @@ -107,6 +107,13 @@ void ensure_valgrind ( char* caller ) VG_(startup)(); } +/* While we're at it ... hook our own startup function into this + game. */ +__asm__ ( + ".section .init\n" + "\tcall vgPlain_startup" +); + static __attribute__((noreturn)) @@ -703,9 +710,7 @@ int __pthread_atfork ( void (*prepare)(void), __attribute__((weak)) void __pthread_initialize ( void ) { - static int moans = N_MOANS; - if (moans-- > 0) - ignored("__pthread_initialize"); + ensure_valgrind("__pthread_initialize"); } diff --git a/vg_libpthread.c b/vg_libpthread.c index df895171a3..5e6e14c61c 100644 --- a/vg_libpthread.c +++ b/vg_libpthread.c @@ -107,6 +107,13 @@ void ensure_valgrind ( char* caller ) VG_(startup)(); } +/* While we're at it ... hook our own startup function into this + game. */ +__asm__ ( + ".section .init\n" + "\tcall vgPlain_startup" +); + static __attribute__((noreturn)) @@ -703,9 +710,7 @@ int __pthread_atfork ( void (*prepare)(void), __attribute__((weak)) void __pthread_initialize ( void ) { - static int moans = N_MOANS; - if (moans-- > 0) - ignored("__pthread_initialize"); + ensure_valgrind("__pthread_initialize"); }