]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Postponed call of vg_set_main_thread_state() from /lib/ld-*.so:_start() to the call...
authorBart Van Assche <bvanassche@acm.org>
Fri, 2 May 2008 18:53:33 +0000 (18:53 +0000)
committerBart Van Assche <bvanassche@acm.org>
Fri, 2 May 2008 18:53:33 +0000 (18:53 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7991

exp-drd/drd_pthread_intercepts.c

index 5b28d6728c2bb52b997ac835d43e863ab0b21f08..f64ab1c535756e1f3541eb372518b77cc9508489 100644 (file)
@@ -97,7 +97,6 @@ static void vg_set_main_thread_state(void);
 static void init(void)
 {
   check_threading_library();
-  vg_set_main_thread_state();
   /* glibc up to and including version 2.7 triggers conflicting accesses   */
   /* on stdout and stderr when sending output to one of these streams from */
   /* more than one thread. Suppress data race reports on these objects.    */
@@ -105,6 +104,17 @@ static void init(void)
   DRD_IGNORE_VAR(*stderr);
 }
 
+int VG_WRAP_FUNCTION_ZZ(Za,main)(int argc, char** argv, char** envp);
+int VG_WRAP_FUNCTION_ZZ(Za,main)(int argc, char** argv, char** envp)
+{
+  int ret;
+  OrigFn fn;
+  VALGRIND_GET_ORIG_FN(fn);
+  vg_set_main_thread_state();
+  CALL_FN_W_WWW(ret, fn, argc, argv, envp);
+  return ret;
+}
+
 static MutexT pthread_to_drd_mutex_type(const int kind)
 {
   switch (kind)