From 7e9463020bc7ef69f66eb4bb27c1a1e065cdc90c Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 24 Apr 2001 04:40:38 +0000 Subject: [PATCH] Update. * 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. --- linuxthreads/ChangeLog | 5 +++-- linuxthreads/sysdeps/pthread/pt-initfini.c | 18 ------------------ .../sysdeps/unix/sysv/linux/ia64/pt-initfini.c | 7 ------- 3 files changed, 3 insertions(+), 27 deletions(-) diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 12e72b5..c4676e9 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,7 +1,8 @@ 2001-04-23 Ulrich Drepper - * 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 8694f7b..55d9f31 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 5ea75d6..b7da3c8 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 -- 2.7.4