Re: [PATCH 1/1 linux-next] kbuild: add make force=1 for testing

From: Michal Marek
Date: Tue Jul 26 2016 - 17:47:55 EST


Dne 26.7.2016 v 02:05 Andrew Morton napsal(a):
> On Sun, 24 Jul 2016 15:28:18 +0200 Fabian Frederick <fabf@xxxxxxxxx> wrote:
>> This patch adds ability to do make force=1 for people
>> not interested in modules_install in this case but only testing.
>>
>> (Note that other options could go under ifndef force)
>
> That's a bit of a hack on a hack.

Agreed.


> 51193b76bfff said:
>
> : When the kernel path contains a space or a colon somewhere in the path
> : name, the modules_install target doesn't work anymore, as the path names
> : are not enclosed in double quotes. It is also supposed that and O= build
> : will suffer from the same weakness as modules_install.
> :
> : Instead of checking and improving kbuild to resist to directories
> : including these characters, error out early to prevent any build if the
> : kernel's main directory contains a space.
>
> What's involved in fixing this properly? Make the whole kbuild
> system operate correctly when there are spaces/colons in the
> pathname?

modules_install probably could be fixed. However, O= builds are
definitely unfixable: We use -I$(srctree)/... in various *FLAGS
variables, which are space-separated lists. We assign $(srctree) to
VPATH, which is a colon-separated list. Also, we pass $(srctree)/... to
the wildcard, addprefix or patsubst functions, which take a
space-separated list of words. The Makefile language simply does does
not give us tools to handle special characters properly.

To work around such paths, I suggest to create a symlink and use that.
As far as I can tell, we do not call readlink/realpath in the buildsystem.

Michal