aboutsummaryrefslogtreecommitdiff
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