On 06/19/2014 05:52 PM, Boaz Harrosh wrote:
> 
> The commit 9da0763bdd82572be243fcf5161734f11568960f
> 
>       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 <[email protected]>
>       Signed-off-by: Michal Marek <[email protected]>
> 
> Broke IDEs and other tools which analyze the make output.
> Introduce a new KBUILD_FULL_PATH switch to Makefile that will revert
> to the old output if KBUILD_FULL_PATH=1 is specified.
> The default is KBUILD_FULL_PATH=0
> 
> Signed-off-by: Boaz Harrosh <[email protected]>

Thanks Sir Michal

Please feel free to check out my broken grammar and change
what you see fit.

BTW: The old system was sensitive to absolute paths so if
I compile on local machine say at:
        /home/boaz/dev/lin/
but then go to a network station and do "make install" in:
        /mnt/boaz/home/boaz/dev/lin/

The build would attempt to rebuild everything what I do
is cd /net/boaz/home/boaz/dev on local and remote so the
make just works. Your patch actually fixed that ;-)

Thanks
Boaz

> ---
>  Documentation/kbuild/kbuild.txt |  9 +++++++++
>  Makefile                        | 13 ++++++++-----
>  2 files changed, 17 insertions(+), 5 deletions(-)
> 
> diff --git a/Documentation/kbuild/kbuild.txt b/Documentation/kbuild/kbuild.txt
> index 6466704..9133b47 100644
> --- a/Documentation/kbuild/kbuild.txt
> +++ b/Documentation/kbuild/kbuild.txt
> @@ -77,6 +77,15 @@ Specify the output directory when building the kernel.
>  The output directory can also be specified using "O=...".
>  Setting "O=..." takes precedence over KBUILD_OUTPUT.
>  
> +KBUILD_FULL_PATH
> +--------------------------------------------------
> +Since Linux v3.16-rc1 the Kernel build system prefers to use
> +relative paths when supplying file-paths to gcc and other
> +tools. This will break IDEs and other environments that would
> +parse the gcc output to find files and lines.
> +Use KBUILD_FULL_PATH=1 on make command line to revert to old
> +way of feeding tools with full-paths.
> +
>  KBUILD_DEBARCH
>  --------------------------------------------------
>  For the deb-pkg target, allows overriding the normal heuristics deployed by
> diff --git a/Makefile b/Makefile
> index 97b2861..51fcebd 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -153,11 +153,14 @@ 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)
> +        srctree := $(KBUILD_SRC)
> +
> +        # if KBUILD_FULL_PATH=1 then do not use relative path
> +     ifneq ($(KBUILD_FULL_PATH), 1)
> +                ifeq ($(KBUILD_SRC)/,$(dir $(CURDIR)))
> +                        # building in a subdirectory of the source tree
> +                        srctree := ..
> +                endif
>          endif
>  endif
>  objtree              := .
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to