gcov: architecture specific compile flag adjustments
Subsystems (4)
PATCH 6/6 gcov: architecture specific compile flag adjustments
From: Peter Oberparleiter <[email protected]>
Exclude code from profiling which is not linked to the main kernel or which is running in a context not compatible with the assumptions made by gcc's profiling code.
--- arch/arm/boot/compressed/Makefile | 1 + arch/powerpc/kernel/vdso32/Makefile | 1 + arch/powerpc/kernel/vdso64/Makefile | 1 + arch/ppc/boot/Makefile | 1 + arch/ppc/boot/common/Makefile | 1 + arch/ppc/boot/simple/Makefile | 1 + arch/x86/boot/Makefile | 1 + arch/x86/boot/compressed/Makefile | 1 + arch/x86/kernel/acpi/realmode/Makefile | 1 + 9 files changed, 9 insertions(+)
arch/arm/boot/compressed/Makefile +1 -0
@@ -7,6 +7,7 @@ HEAD = head.o OBJS = misc.o FONTC = $(srctree)/drivers/video/console/font_acorn_8x8.c +GCOV := n # # Architecture dependencies
arch/x86/boot/compressed/Makefile +1 -0
@@ -12,6 +12,7 @@ cflags-$(CONFIG_X86_64) := -mcmodel=smal KBUILD_CFLAGS += $(cflags-y) KBUILD_CFLAGS += $(call cc-option,-ffreestanding) KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector) +GCOV := n KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
arch/ppc/boot/Makefile +1 -0
@@ -16,6 +16,7 @@ # KBUILD_CFLAGS used when building rest of boot (takes effect recursively) KBUILD_CFLAGS += -fno-builtin -D__BOOTER__ -Iarch/$(ARCH)/boot/include HOSTCFLAGS += -Iarch/$(ARCH)/boot/include +GCOV := n BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd
arch/ppc/boot/common/Makefile +1 -0
@@ -5,6 +5,7 @@ # Tom Rini January 2001 # +GCOV := n lib-y := string.o util.o misc-common.o \ serial_stub.o bootinfo.o lib-$(CONFIG_SERIAL_8250_CONSOLE) += ns16550.o
arch/ppc/boot/simple/Makefile +1 -0
@@ -21,6 +21,7 @@ # XXX_memory.o file for this to work, as well as editing the # misc-$(CONFIG_MACHINE) variable. +GCOV := n boot := arch/ppc/boot common := $(boot)/common utils := $(boot)/utils
arch/x86/boot/Makefile +1 -0
@@ -71,6 +71,7 @@ KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os $(call cc-option, -mpreferred-stack-boundary=2) KBUILD_CFLAGS += $(call cc-option,-m32) KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ +GCOV := n $(obj)/zImage: IMAGE_OFFSET := 0x1000 $(obj)/zImage: asflags-y := $(SVGA_MODE) $(RAMDISK)
arch/x86/kernel/acpi/realmode/Makefile +1 -0
@@ -42,6 +42,7 @@ KBUILD_CFLAGS := $(LINUXINCLUDE) -g -Os $(call cc-option, -mpreferred-stack-boundary=2) KBUILD_CFLAGS += $(call cc-option, -m32) KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ +GCOV := n WAKEUP_OBJS = $(addprefix $(obj)/,$(wakeup-y))
arch/powerpc/kernel/vdso32/Makefile +1 -0
@@ -17,6 +17,7 @@ EXTRA_CFLAGS := -shared -fno-common -fno EXTRA_CFLAGS += -nostdlib -Wl,-soname=linux-vdso32.so.1 \ $(call ld-option, -Wl$(comma)--hash-style=sysv) EXTRA_AFLAGS := -D__VDSO32__ -s +GCOV := n obj-y += vdso32_wrapper.o extra-y += vdso32.lds
arch/powerpc/kernel/vdso64/Makefile +1 -0
@@ -11,6 +11,7 @@ EXTRA_CFLAGS := -shared -fno-common -fno EXTRA_CFLAGS += -nostdlib -Wl,-soname=linux-vdso64.so.1 \ $(call ld-option, -Wl$(comma)--hash-style=sysv) EXTRA_AFLAGS := -D__VDSO64__ -s +GCOV := n obj-y += vdso64_wrapper.o extra-y += vdso64.lds
Quoted 3 lines · On Mon, 02 Jun 2008 15:34:47 +0200 Peter Oberparleiter…
Exclude code from profiling which is not linked to the main kernel or which is running in a context not compatible with the assumptions made by gcc's profiling code.
powerpc allmodconfig fails with
Error: External symbol '__gcov_init' referenced from prom_init.c
Error: External symbol '__gcov_merge_add' referenced from prom_init.c
This:
arch/powerpc/kernel/Makefile renamed from arch/powerpc/kernel/Makefile~a +4 -0
@@ -12,6 +12,10 @@ CFLAGS_prom_init.o += -fPIC CFLAGS_btext.o += -fPIC endif +ifdef CONFIG_GCOV_PROFILE +CFLAGS_prom_init.o += -fno-profile-arcs -fno-test-coverage +endif +
didn't fix it so I gave up.
Quoted 11 lines · Andrew Morton
Quoted 3 lines · On Mon, 02 Jun 2008 15:34:47 +0200 Peter Oberparleiter…
Exclude code from profiling which is not linked to the main kernel or which is running in a context not compatible with the assumptions made by gcc's profiling code.
powerpc allmodconfig fails with
Error: External symbol '
__gcov_init' referenced fromprom_init.c
Error: External symbol '__gcov_merge_add' referenced fromprom_init.c
--
From: Peter Oberparleiter <[email protected]>
Fix for gcov patch fallout:
powerpc allmodconfig fails with
Error: External symbol '__gcov_init' referenced from prom_init.c
Error: External symbol '__gcov_merge_add' referenced from prom_init.c
--- arch/powerpc/kernel/Makefile | 1 + 1 files changed, 1 insertion(+)
arch/powerpc/kernel/Makefile +1 -0
@@ -11,6 +11,7 @@ ifeq ($(CONFIG_PPC32),y) CFLAGS_prom_init.o += -fPIC CFLAGS_btext.o += -fPIC endif +GCOV_prom_init.o := n ifdef CONFIG_FTRACE # Do not trace early boot code