Re: 9da0763 "kbuild: Use relative path ..." Broke my IDE

From: Alexei Starovoitov
Date: Wed Jun 18 2014 - 15:57:01 EST


On Wed, Jun 18, 2014 at 11:00 AM, Boaz Harrosh <openosd@xxxxxxxxx> wrote:
> Hi Sir Michal
>
> Below patch broke my stupid yet useful IDE tool. I use kdevelop.
>
> kdevelop now gets confused on warnings and errors because it now comes out
> as (for example):
> ../fs/ext4/fsync.c:63:3: error: implicit declaration of function âiputdddâ [-Werror=implicit-function-declaration]
>
> From what I understand kdevelop picks up the "[make] cd ..." outputs from make and
> will interpret those for finding gcc files output. But Linux Makefile will suppress
> these messages and kdevelop as no way to interpret the "../xxxx"
>
> I do not know what other IDEs do, but this one here is not smart enough.
>
> Could we please define a new input to Makefile that will revert to
> old behavior. like:
> KBUILD_FULL_PATH
>
> let me cook up a patch tomorrow (getting late here)
> Thanks
> Boaz
>
> The patch that broke it

Boaz, thanks for the bisect.
reverting it also helps to solve 'make deb-pkg' problem I reported in
the other thread.

> ----
> From 9da0763bdd82572be243fcf5161734f11568960f Mon Sep 17 00:00:00 2001
> From: Michal Marek <mmarek@xxxxxxx>
> Date: Fri, 25 Apr 2014 23:25:18 +0200
> Subject: [PATCH] kbuild: Use relative path when building in a subdir of the
> source tree
>
> When doing make O=<subdir>, use '..' to refer to the source tree. This
> allows for more readable compiler messages, and, more importantly, it
> sets the VPATH to '..', so filenames in WARN_ON() etc. will be shorter.
>
> Acked-by: Sam Ravnborg <sam@xxxxxxxxxxxx>
> Signed-off-by: Michal Marek <mmarek@xxxxxxx>
> ---
> Makefile | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/Makefile b/Makefile
> index 3e134ec..f4702c1 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -149,7 +149,17 @@ else
> _all: modules
> endif
>
> -srctree := $(if $(KBUILD_SRC),$(KBUILD_SRC),.)
> +ifeq ($(KBUILD_SRC),)
> + # building in the source tree
> + srctree := .
> +else
> + ifeq ($(KBUILD_SRC)/,$(dir $(CURDIR)))
> + # building in a subdirectory of the source tree
> + srctree := ..
> + else
> + srctree := $(KBUILD_SRC)
> + endif
> +endif
> objtree := .
> src := $(srctree)
> obj := $(objtree)
> --
> 1.9.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/