summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/sh
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2004-08-21 21:19:29 +0000
committerEric Andersen <andersen@codepoet.org>2004-08-21 21:19:29 +0000
commit6e112da93a731085ff9b07f0804395bb3866925a (patch)
tree63320d9f5200bb3892ccfbcc55be84a5da535023 /libc/sysdeps/linux/sh
parente50f6d1c15483fc17323ecdd427f4a84c018f3af (diff)
Kill off all support for 'gcc -pg' / 'gprof' style profiling. There is both a
size and performance penalty to profiling applications this way, as well as Heisenberg effects, where the act of measuring changes what is measured. There are better tools for doing profiling, such as OProfile, that do not require gcc to instrument the application code. -Erik
Diffstat (limited to 'libc/sysdeps/linux/sh')
-rw-r--r--libc/sysdeps/linux/sh/Makefile8
-rw-r--r--libc/sysdeps/linux/sh/bits/machine-gmon.h83
-rw-r--r--libc/sysdeps/linux/sh/crt0.S6
3 files changed, 2 insertions, 95 deletions
diff --git a/libc/sysdeps/linux/sh/Makefile b/libc/sysdeps/linux/sh/Makefile
index fa87f3ae2..5382d5b5a 100644
--- a/libc/sysdeps/linux/sh/Makefile
+++ b/libc/sysdeps/linux/sh/Makefile
@@ -24,7 +24,7 @@ CFLAGS+= -I../
SFLAGS= $(CFLAGS) -D__ASSEMBLER__
CRT0_SRC = crt0.S
-CRT0_OBJ = crt0.o crt1.o gcrt1.o
+CRT0_OBJ = crt0.o crt1.o
CRT0_DEPS=gmon-start.S
CTOR_TARGETS=$(TOPDIR)lib/crti.o $(TOPDIR)lib/crtn.o
@@ -56,12 +56,6 @@ $(COBJS): %.o : %.c
$(CC) $(CFLAGS) -c $< -o $@
$(STRIPTOOL) -x -R .note -R .comment $*.o
-ifeq ($(strip $(UCLIBC_PROFILING)),y)
-gmon-start.S: ../common/gmon-start.c
- $(CC) $(CFLAGS) -c $< -S -o $*.S
-gcrt1.o: $(CRT0_DEPS)
-endif
-
ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y)
crti.o: crti.S
$(CC) $(CFLAGS) -c crti.S -o crti.o
diff --git a/libc/sysdeps/linux/sh/bits/machine-gmon.h b/libc/sysdeps/linux/sh/bits/machine-gmon.h
deleted file mode 100644
index f2ef019c7..000000000
--- a/libc/sysdeps/linux/sh/bits/machine-gmon.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Machine-dependent definitions for profiling support. SH version.
- *
- * Copyright (C) 2003 Stefan Allius <allius@atecom.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the Free
- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- * 02111-1307 USA
- */
-
-#define mcount_internal __mcount_internal
-
-#define _MCOUNT_DECL(frompc, selfpc) \
-static void __attribute_used__ mcount_internal (u_long frompc, u_long selfpc)
-
-/*
- * This mcount implementation expect the 'frompc' return address on
- * the stack and the 'selfpc' return address in register pr.
- *
- * Your compiler should include some stuff like this at each function
- * entry:
- *
- * mov.l 1f,r1
- * sts.l pr,@-r15
- * mova 2f,r0
- * jmp @r1
- * lds r0,pr
- * .align 2
- * 1: .long mcount
- * 2: lds.l @r15+,pr
- *
- * or for PIC:
- *
- * mov.l 3f,r1
- * mova 3f,r0
- * add r1,r0
- * mov.l 1f,r1
- * mov.l @(r0,r1),r1
- * sts.l pr,@-r15
- * mova 2f,r0
- * jmp @r1
- * lds r0,pr
- * .align 2
- * 1: .long mcount@GOT
- * 3: .long _GLOBAL_OFFSET_TABLE_
- * 2: lds.l @r15+,pr
- *
- *
- * This ABI will be supported by GCC version 3.3 or newer!
- */
-#define MCOUNT asm(\
- ".align 4\n\t" \
- ".globl _mcount\n\t" \
- ".type _mcount,@function\n" \
- "_mcount:\n\t" \
- "mov.l r4, @-r15\n\t" \
- "mov.l r5, @-r15\n\t" \
- "mov.l r6, @-r15\n\t" \
- "mov.l r7, @-r15\n\t" \
- "sts.l pr, @-r15\n\t" \
- "sts pr, r5\n\t" \
- "bsr __mcount_internal\n\t" \
- " mov.l @(5*4,r15), r4\n\t" \
- "lds.l @r15+, pr\n\t" \
- "mov.l @r15+, r7\n\t" \
- "mov.l @r15+, r6\n\t" \
- "mov.l @r15+, r5\n\t" \
- "rts\n\t" \
- " mov.l @r15+, r4\n\t" \
- ".size _mcount,.-_mcount;\n\t" \
- ".weak mcount;\n\t" \
- " mcount = _mcount;");
-
diff --git a/libc/sysdeps/linux/sh/crt0.S b/libc/sysdeps/linux/sh/crt0.S
index f5efe35e1..6851698d5 100644
--- a/libc/sysdeps/linux/sh/crt0.S
+++ b/libc/sysdeps/linux/sh/crt0.S
@@ -76,7 +76,7 @@ _start_end:
L_main:
.long __uClibc_main /* in libuClibc.*.so */
-#else /* (L_crt1 || L_gcrt1) && __UCLIBC_CTOR_DTOR__ */
+#else /* (L_crt1) && __UCLIBC_CTOR_DTOR__ */
/* Push the finip argument to __uClibc_start_main() onto the stack */
mov.l L_fini,r6
mov.l r6,@-r15
@@ -141,7 +141,3 @@ __fpscr_values:
.long 0x80000
#endif
-#if defined L_gcrt1 && defined __UCLIBC_PROFILING__
-# include "./gmon-start.S"
-#endif
-