Update of /cvsroot/ltp/utils/analysis/gcov-kernel
In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv10627
Added Files:
linux-2.6.20-gcov-arm-hack.patch linux-2.6.20-gcov.patch
Log Message:
gcov-kernel: adding gcov-kernel patch for 2.6.20
--- NEW FILE: linux-2.6.20-gcov-arm-hack.patch ---
#
# gcov-kernel-2.6.20-1 (2007-05-22)
#
# anderson.lizardo@...:
# The following parts of the kernel code had coverage disabled by
# default for now (on ARM platform only) because they consistently cause
# kernel problems:
#
# arch/arm/nwfpe/: make FP operations results go wrong
# fs/: soft lockup at the end of kernel boot
# fs/nfs/: generates BUG_ON() in net/sunrpc/xdr.c when mounting NFS root
# lib/: kernel hangs right after decompression
# mm/: many commands fail with "File size limit exceeded"
# net/ipv4/: NFS root mount fails
#
# TODO: find the specific problematic .c files files in these
# directories and either (a) fix the buggy code or (b) disable coverage
# for those specific file(s) using "CFLAGS_file.o".
#
# arch/arm/nwfpe/Makefile | 3 +++
# arch/arm/nwfpe/Makefile | 3 +++
# fs/Makefile | 3 +++
# fs/nfs/Makefile | 3 +++
# lib/Makefile | 3 +++
# mm/Makefile | 3 +++
# net/ipv4/Makefile | 3 +++
# 6 files changed, 18 insertions(+)
#
diff -Naurp linux-2.6.20-gcov/arch/arm/nwfpe/Makefile linux-2.6.20-gcov-arm-hack/arch/arm/nwfpe/Makefile
--- linux-2.6.20-gcov/arch/arm/nwfpe/Makefile 2007-02-04 19:44:54.000000000 +0100
+++ linux-2.6.20-gcov-arm-hack/arch/arm/nwfpe/Makefile 2007-05-22 11:08:17.000000000 +0200
@@ -1,6 +1,9 @@
#
# Copyright (C) 1998, 1999, 2001 Philip Blundell
#
+ifeq ($(CONFIG_ARM),y)
+CFLAGS := $(CFLAGS_NOGCOV)
+endif
obj-$(CONFIG_FPE_NWFPE) += nwfpe.o
diff -Naurp linux-2.6.20-gcov/fs/Makefile linux-2.6.20-gcov-arm-hack/fs/Makefile
--- linux-2.6.20-gcov/fs/Makefile 2007-02-04 19:44:54.000000000 +0100
+++ linux-2.6.20-gcov-arm-hack/fs/Makefile 2007-05-22 11:08:17.000000000 +0200
@@ -4,6 +4,9 @@
# 14 Sep 2000, Christoph Hellwig <hch@...>
# Rewritten to use lists instead of if-statements.
#
+ifeq ($(CONFIG_ARM),y)
+CFLAGS := $(CFLAGS_NOGCOV)
+endif
obj-y := open.o read_write.o file_table.o super.o \
char_dev.o stat.o exec.o pipe.o namei.o fcntl.o \
diff -Naurp linux-2.6.20-gcov/fs/nfs/Makefile linux-2.6.20-gcov-arm-hack/fs/nfs/Makefile
--- linux-2.6.20-gcov/fs/nfs/Makefile 2007-02-04 19:44:54.000000000 +0100
+++ linux-2.6.20-gcov-arm-hack/fs/nfs/Makefile 2007-05-22 11:08:17.000000000 +0200
@@ -1,6 +1,9 @@
#
# Makefile for the Linux nfs filesystem routines.
#
+ifeq ($(CONFIG_ARM),y)
+CFLAGS := $(CFLAGS_NOGCOV)
+endif
obj-$(CONFIG_NFS_FS) += nfs.o
diff -Naurp linux-2.6.20-gcov/lib/Makefile linux-2.6.20-gcov-arm-hack/lib/Makefile
--- linux-2.6.20-gcov/lib/Makefile 2007-02-04 19:44:54.000000000 +0100
+++ linux-2.6.20-gcov-arm-hack/lib/Makefile 2007-05-22 11:08:17.000000000 +0200
@@ -1,6 +1,9 @@
#
# Makefile for some libs needed in the kernel.
#
+ifeq ($(CONFIG_ARM),y)
+CFLAGS := $(CFLAGS_NOGCOV)
+endif
lib-y := ctype.o string.o vsprintf.o cmdline.o \
bust_spinlocks.o rbtree.o radix-tree.o dump_stack.o \
diff -Naurp linux-2.6.20-gcov/mm/Makefile linux-2.6.20-gcov-arm-hack/mm/Makefile
--- linux-2.6.20-gcov/mm/Makefile 2007-02-04 19:44:54.000000000 +0100
+++ linux-2.6.20-gcov-arm-hack/mm/Makefile 2007-05-22 11:08:17.000000000 +0200
@@ -1,6 +1,9 @@
#
# Makefile for the linux memory manager.
#
+ifeq ($(CONFIG_ARM),y)
+CFLAGS := $(CFLAGS_NOGCOV)
+endif
mmu-y := nommu.o
mmu-$(CONFIG_MMU) := fremap.o highmem.o madvise.o memory.o mincore.o \
diff -Naurp linux-2.6.20-gcov/net/ipv4/Makefile linux-2.6.20-gcov-arm-hack/net/ipv4/Makefile
--- linux-2.6.20-gcov/net/ipv4/Makefile 2007-02-04 19:44:54.000000000 +0100
+++ linux-2.6.20-gcov-arm-hack/net/ipv4/Makefile 2007-05-22 11:08:17.000000000 +0200
@@ -1,6 +1,9 @@
#
# Makefile for the Linux TCP/IP (INET) layer.
#
+ifeq ($(CONFIG_ARM),y)
+CFLAGS := $(CFLAGS_NOGCOV)
+endif
obj-y := route.o inetpeer.o protocol.o \
ip_input.o ip_fragment.o ip_forward.o ip_options.o \
--- NEW FILE: linux-2.6.20-gcov.patch ---
#
# gcov-kernel-2.6.20-1 (2007-05-22)
# Provides GCOV code coverage infrastructure for Linux kernel 2.6.20.
# See http://ltp.sourceforge.net/coverage/gcov.php for details.
#
# Makefile | 19
# arch/arm/boot/compressed/Makefile | 1
# arch/i386/boot/compressed/Makefile | 1
# arch/powerpc/kernel/vmlinux.lds.S | 4
# arch/ppc/boot/Makefile | 1
# arch/ppc/boot/common/misc-common.c | 4
# arch/ppc/boot/simple/misc-prep.c | 4
# include/asm-generic/vmlinux.lds.h | 16
# include/linux/gcov.h | 243 +++
# include/linux/module.h | 5
# kernel/Makefile | 1
# kernel/gcov/Kconfig | 55
# kernel/gcov/Makefile | 14
# kernel/gcov/gcov-core.c | 294 +++
[...3066 lines suppressed...]
--- linux-2.6.20/scripts/Makefile.lib 2007-02-04 19:44:54.000000000 +0100
+++ linux-2.6.20-gcov/scripts/Makefile.lib 2007-05-22 11:02:30.000000000 +0200
@@ -93,7 +93,7 @@ _cpp_flags = $(CPPFLAGS) $(EXTRA_CPP
# If building the kernel in a separate objtree expand all occurrences
# of -Idir to -I$(srctree)/dir except for absolute paths (starting with '/').
-ifeq ($(KBUILD_SRC),)
+ifeq ($(KBUILD_SRC)$(CONFIG_GCOV_PROFILE),)
__c_flags = $(_c_flags)
__a_flags = $(_a_flags)
__cpp_flags = $(_cpp_flags)
@@ -103,7 +103,7 @@ else
# $(call addtree,-I$(obj)) locates .h files in srctree, from generated .c files
# and locates generated .h files
# FIXME: Replace both with specific CFLAGS* statements in the makefiles
-__c_flags = $(call addtree,-I$(obj)) $(call flags,_c_flags)
+__c_flags = $(call addtree,-I$(obj)) $(call addtree2,-I$(obj)) $(call flags,_c_flags)
__a_flags = $(call flags,_a_flags)
__cpp_flags = $(call flags,_cpp_flags)
endif
|