[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <48313E08.8070904@de.ibm.com>
Date: Mon, 19 May 2008 10:44:56 +0200
From: Peter Oberparleiter <peter.oberparleiter@...ibm.com>
To: linux-kernel@...r.kernel.org
CC: ltp-coverage@...ts.sourceforge.net,
Andrew Morton <akpm@...ux-foundation.org>,
Sam Ravnborg <sam@...nborg.org>,
Peter Oberparleiter <oberparleiter@...glemail.com>
Subject: [PATCH 6/7] kbuild: make source and include paths absolute
From: Peter Oberparleiter <peter.oberparleiter@...ibm.com>
Change all source and include paths to absolute form when
CONFIG_GCOV_PROFILE is enabled.
Example:
gcc -Idir1 -c a.c -o a.o
will become
gcc -I/path/to/dir1 -c /path/to/a.c -o a.o
Required by the gcov profiling infrastructure: when compiling with
option -fprofile-arcs, gcc stores file names inside object files.
Relative paths prevent the gcov tool from finding corresponding source
files.
Signed-off-by: Peter Oberparleiter <peter.oberparleiter@...ibm.com>
---
scripts/Kbuild.include | 7 +++++++
scripts/Makefile.build | 3 ++-
scripts/Makefile.lib | 8 +++++++-
3 files changed, 16 insertions(+), 2 deletions(-)
Index: linux-2.6.26-rc3/scripts/Makefile.lib
===================================================================
--- linux-2.6.26-rc3.orig/scripts/Makefile.lib
+++ linux-2.6.26-rc3/scripts/Makefile.lib
@@ -126,10 +126,16 @@ __a_flags = $(c
__cpp_flags = $(call flags,_cpp_flags)
endif
-c_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) \
+___c_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) \
$(__c_flags) $(modkern_cflags) \
-D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags)
+ifeq ($(CONFIG_GCOV_PROFILE),)
+c_flags = $(___c_flags)
+else
+c_flags = $(call flags_addpath,___c_flags,$(objtree))
+endif
+
a_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) \
$(__a_flags) $(modkern_aflags)
Index: linux-2.6.26-rc3/scripts/Makefile.build
===================================================================
--- linux-2.6.26-rc3.orig/scripts/Makefile.build
+++ linux-2.6.26-rc3/scripts/Makefile.build
@@ -165,7 +165,8 @@ $(obj)/%.symtypes : $(src)/%.c FORCE
# (See cmd_cc_o_c + relevant part of rule_cc_o_c)
quiet_cmd_cc_o_c = CC $(quiet_modtag) $@
-cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $<
+cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ \
+ $(if $(CONFIG_GCOV_PROFILE),$(call addpath,$<,$(objtree)),$<)
ifdef CONFIG_MODVERSIONS
# When module versioning is enabled the following steps are executed
Index: linux-2.6.26-rc3/scripts/Kbuild.include
===================================================================
--- linux-2.6.26-rc3.orig/scripts/Kbuild.include
+++ linux-2.6.26-rc3/scripts/Kbuild.include
@@ -149,6 +149,13 @@ addtree = $(if $(filter-out -I/%,$(1)),$
# Find all -I options and call addtree
flags = $(foreach o,$($(1)),$(if $(filter -I%,$(o)),$(call addtree,$(o)),$(o)))
+# Prefix $(1) with $(2)/ if $(1) does not start with /
+addpath = $(if $(filter-out /%,$(1)),$(2)/$(1),$(1))
+
+# Find all -I options and call addpath
+flags_addpath = $(foreach o,$($(1)),\
+ $(if $(filter -I%,$(o)),-I$(call addpath,$(o:-I%=%),$(2)),$(o)))
+
# echo command.
# Short version is used, if $(quiet) equals `quiet_', otherwise full one.
echo-cmd = $(if $($(quiet)cmd_$(1)),\
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists