From: Peter Oberparleiter <peter.oberparleiter@de.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@de.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)),\ --
| debian developer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg Kroah-Hartman | [PATCH 002/196] Chinese: rephrase English introduction in HOWTO |
| Jan Engelhardt | intel iommu (Re: -mm merge plans for 2.6.23) |
| Vladislav Bolkhovitin | Re: Integration of SCST in the mainstream Linux kernel |
git: | |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| Antonio Almeida | HTB accuracy for high speed |
| David Miller | [GIT]: Networking |
