about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--linuxthreads/ChangeLog5
-rw-r--r--linuxthreads/sysdeps/pthread/pt-initfini.c18
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c7
3 files changed, 3 insertions, 27 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 12e72b5686..c4676e9f7f 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,7 +1,8 @@
 2001-04-23  Ulrich Drepper  <drepper@redhat.com>
 
-	* sysdeps/pthread/pt-initfini.c (_init): We don't have to call
-	__gmon_start__ in the libpthread DSO.
+	* sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init): We don't
+	have to call __gmon_start__ in the libpthread DSO.
+	* sysdeps/pthread/pt-initfini.c (_init): Likewise.
 
 	* Makefile (libpthread-routines): Add ptclock_gettime and
 	ptclock_settime.
diff --git a/linuxthreads/sysdeps/pthread/pt-initfini.c b/linuxthreads/sysdeps/pthread/pt-initfini.c
index 8694f7ba64..55d9f31562 100644
--- a/linuxthreads/sysdeps/pthread/pt-initfini.c
+++ b/linuxthreads/sysdeps/pthread/pt-initfini.c
@@ -70,16 +70,6 @@ call_initialize_minimal (void)
   __pthread_initialize_minimal ();
 }
 
-static void
-call_gmon_start(void)
-{
-  extern void __gmon_start__ (void) __attribute__ ((weak)); /*weak_extern (__gmon_start__);*/
-  void (*gmon_start) (void) = __gmon_start__;
-
-  if (gmon_start)
-    gmon_start ();
-}
-
 SECTION (".init");
 extern void _init (void);
 void
@@ -88,14 +78,6 @@ _init (void)
   /* The very first thing we must do is to set up the registers.  */
   call_initialize_minimal ();
 
-  /* We cannot use the normal constructor mechanism in gcrt1.o because it
-     appears before crtbegin.o in the link, so the header elt of .ctors
-     would come after the elt for __gmon_start__.  One approach is for
-     gcrt1.o to reference a symbol which would be defined by some library
-     module which has a constructor; but then user code's constructors
-     would come first, and not be profiled.  */
-  call_gmon_start ();
-
   asm ("ALIGN");
   asm("END_INIT");
   /* Now the epilog. */
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c b/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c
index 5ea75d6aed..b7da3c87de 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c
+++ b/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c
@@ -52,17 +52,12 @@ _init:
 	mov r32 = r12
 	mov r33 = b0
 	adds r12 = -16, r12
-	addl r14 = @ltoff(@fptr(__gmon_start__#)), gp
 	;;
-	ld8 r15 = [r14]
 /* we could use r35 to save gp, but we use the stack since that's what
  * all the other init routines will do --davidm 00/04/05 */
 	st8 [r12] = gp, -16
 	br.call.sptk.many b0 = __pthread_initialize_minimal# ;;
 	;;
-	cmp.ne p6, p0 = 0, r15
-
-(p6)	br.call.sptk.many b0 = __gmon_start__# ;;
 	adds r12 = 16, r12
 	;;
 	ld8 gp = [r12]
@@ -97,8 +92,6 @@ _fini:
 	.endp _fini#
 
 /*@_fini_PROLOG_ENDS*/
-	br.call.sptk.many b0 = i_am_not_a_leaf# ;;
-	;;
 
 /*@_fini_EPILOG_BEGINS*/
 	.section .fini