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

From: Robert Jarzmik
Date: Tue Jul 26 2016 - 02:45:27 EST


Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> writes:

> On Sun, 24 Jul 2016 15:28:18 +0200 Fabian Frederick <fabf@xxxxxxxxx> wrote:
>
>> Commit 51193b76bfff
>> ("kbuild: forbid kernel directory to contain spaces and colons")
>>
>> makes it impossible to build kernel on default SD labels like
>> "SD Card" for instance.
>>
>> Makefile:133: *** main directory cannot contain spaces nor colons. Stop.
>>
>> User could rename directories but volume name is not always writable.
>>
>> 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.
>
> 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?

I was thinking originally fixing it by :
http://www.spinics.net/lists/linux-kbuild/msg12036.html

This fixed "properly" the make modules_install I think.
And Marek pointed out that there were other cases, such as O=/my dir/ but not
limited to, where it would also break, hence this patch.

I'm not a kbuild expert so I'd like someone else (Marek) to enumerate the
remaining cases not covered by the original patch.

Cheers.

--
Robert