Re: kbuild: global makefile and spaces in path
From: Michal Marek <hidden>
Date: 2016-02-08 20:03:03
Dne 5.2.2016 v 22:30 Robert Jarzmik napsal(a):
Robert Jarzmik [off-list ref] writes:quoted
Michal Marek [off-list ref] writes:quoted
On 2015-12-21 21:49, Robert Jarzmik wrote:quoted
Hi Michal, I compiled my kernel in a directory /home/robert jarzmik/kernel, and that's the first time I encountered a space in the path containing my kernel in years. I was wondering if there is a known constraint that the linux kernel source should be contained within a path without any space ?Whitespace and colons are problematic.Ok.quoted
quoted
If no such constraint is known, maybe you could consider the patch in [1].I expect it is going to break in lot more places, especially if you do an O= build. I think it's better to just check for this and error out early.Ok, I'll try to do that. Let's see if the patch at the end of this mail is what you're expecting. Cheers. -- Robert ---8<--- From 68bcedba135cc50254a234a949ed5cd3b4e92b7a Mon Sep 17 00:00:00 2001 From: Robert Jarzmik <robert.jarzmik@free.fr> Date: Thu, 7 Jan 2016 22:39:51 +0100 Subject: [PATCH] kbuild: forbid kernel directory to contain spaces When the kernel path contains a space 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 spaces, error out early to prevent any build if the kernel's main directory contains a space. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> --- Makefile | 4 ++++ 1 file changed, 4 insertions(+)diff --git a/Makefile b/Makefile index 45ec34644b4f..72e9b7371b0d 100644 --- a/Makefile +++ b/Makefile@@ -128,6 +128,10 @@ _all: # Cancel implicit rules on top Makefile $(CURDIR)/Makefile Makefile: ; +ifneq ($(words $(CURDIR)),1) + $(error main directory cannot contain spaces) +endif + ifneq ($(KBUILD_OUTPUT),) # Invoke a second make in the output directory, passing relevant variables # check that the output directory actually existsHi Michal, Have you had the time to look at the patch above ?
Hi Robert, sorry for the delay. We should also check for colons in path, because they break the build in a similar way. Michal