From: Peter O. <obe...@us...> - 2007-05-22 10:56:21
|
Update of /cvsroot/ltp/utils/analysis/gcov-kernel In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv25887 Added Files: linux-2.6.21-gcov-arm-hack.patch linux-2.6.21-gcov.patch Log Message: gcov-kernel: adding gcov-kernel patch for 2.6.21 --- NEW FILE: linux-2.6.21-gcov-arm-hack.patch --- # # gcov-kernel-2.6.21-1 (2007-05-22) # # and...@gm...: # 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.21-gcov/arch/arm/nwfpe/Makefile linux-2.6.21-gcov-arm-hack/arch/arm/nwfpe/Makefile --- linux-2.6.21-gcov/arch/arm/nwfpe/Makefile 2007-04-26 05:08:32.000000000 +0200 +++ linux-2.6.21-gcov-arm-hack/arch/arm/nwfpe/Makefile 2007-05-22 11:34:25.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.21-gcov/fs/Makefile linux-2.6.21-gcov-arm-hack/fs/Makefile --- linux-2.6.21-gcov/fs/Makefile 2007-04-26 05:08:32.000000000 +0200 +++ linux-2.6.21-gcov-arm-hack/fs/Makefile 2007-05-22 11:34:25.000000000 +0200 @@ -4,6 +4,9 @@ # 14 Sep 2000, Christoph Hellwig <hc...@in...> # 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.21-gcov/fs/nfs/Makefile linux-2.6.21-gcov-arm-hack/fs/nfs/Makefile --- linux-2.6.21-gcov/fs/nfs/Makefile 2007-04-26 05:08:32.000000000 +0200 +++ linux-2.6.21-gcov-arm-hack/fs/nfs/Makefile 2007-05-22 11:34:25.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.21-gcov/lib/Makefile linux-2.6.21-gcov-arm-hack/lib/Makefile --- linux-2.6.21-gcov/lib/Makefile 2007-04-26 05:08:32.000000000 +0200 +++ linux-2.6.21-gcov-arm-hack/lib/Makefile 2007-05-22 11:34:25.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 \ rbtree.o radix-tree.o dump_stack.o \ diff -Naurp linux-2.6.21-gcov/mm/Makefile linux-2.6.21-gcov-arm-hack/mm/Makefile --- linux-2.6.21-gcov/mm/Makefile 2007-04-26 05:08:32.000000000 +0200 +++ linux-2.6.21-gcov-arm-hack/mm/Makefile 2007-05-22 11:34:25.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.21-gcov/net/ipv4/Makefile linux-2.6.21-gcov-arm-hack/net/ipv4/Makefile --- linux-2.6.21-gcov/net/ipv4/Makefile 2007-04-26 05:08:32.000000000 +0200 +++ linux-2.6.21-gcov-arm-hack/net/ipv4/Makefile 2007-05-22 11:34:25.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.21-gcov.patch --- # # gcov-kernel-2.6.21-1 (2007-05-22) # Provides GCOV code coverage infrastructure for Linux kernel 2.6.21. # 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.21/scripts/Makefile.lib 2007-04-26 05:08:32.000000000 +0200 +++ linux-2.6.21-gcov/scripts/Makefile.lib 2007-05-22 11:27:32.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 |