From 9945834acc1dc910de4c9d1f33d4dbe9acfb2c6a Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Fri, 10 May 2002 23:20:58 +0000 Subject: [PATCH] Hook libpthread.so's .init section to start up Valgrind too. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@262 --- coregrind/arch/x86-linux/vg_libpthread.c | 11 ++++++++--- coregrind/vg_libpthread.c | 11 ++++++++--- vg_libpthread.c | 11 ++++++++--- 3 files changed, 24 insertions(+), 9 deletions(-) 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"); } -- 2.47.2