Re: [PATCH v2 3/5] kbuild: Use relative path for $(objtree)

From: Michal Marek
Date: Wed Jun 04 2014 - 09:31:03 EST


On 2014-06-04 11:43, Michal Marek wrote:
> On 2014-06-04 11:03, Richard Weinberger wrote:
>> On Fri, May 9, 2014 at 2:52 PM, Michal Marek <mmarek@xxxxxxx> wrote:
>>> The main Makefile sets its working directory to the object tree and
>>> never changes it again. Therefore, we can use '.' instead of the
>>> absolute path. The only case where we need the absolute path is when
>>> creating the 'build' symlink in /lib/modules.
>>>
>>> Acked-by: Sam Ravnborg <sam@xxxxxxxxxxxx>
>>> Signed-off-by: Michal Marek <mmarek@xxxxxxx>
>>> ---
>>> v1->v2: Fix the 'build' symlink
>>>
>>> Makefile | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/Makefile b/Makefile
>>> index 60ccbfe..480503a 100644
>>> --- a/Makefile
>>> +++ b/Makefile
>>> @@ -154,7 +154,7 @@ _all: modules
>>> endif
>>>
>>> srctree := $(if $(KBUILD_SRC),$(KBUILD_SRC),$(CURDIR))
>>> -objtree := $(CURDIR)
>>> +objtree := .
>>> src := $(srctree)
>>> obj := $(objtree)
>>>
>>> @@ -1057,7 +1057,7 @@ _modinst_:
>>> @ln -s $(srctree) $(MODLIB)/source
>>> @if [ ! $(objtree) -ef $(MODLIB)/build ]; then \
>>> rm -f $(MODLIB)/build ; \
>>> - ln -s $(objtree) $(MODLIB)/build ; \
>>> + ln -s $(CURDIR) $(MODLIB)/build ; \
>>> fi
>>> @cp -f $(objtree)/modules.order $(MODLIB)/
>>> @cp -f $(objtree)/modules.builtin $(MODLIB)/
>>
>> This commit breaks the of-of-tree build of UML.
>>
>> CC arch/x86/um/user-offsets.s
>> /home/rw/linux-next/arch/x86/um/user-offsets.c:21:29: fatal error:
>> asm/syscalls_64.h: No such file or directory
>> compilation terminated.
>> make[2]: *** [arch/x86/um/user-offsets.s] Error 1
>> make[1]: *** [arch/x86/um/user-offsets.s] Error 2
>> make: *** [sub-make] Error 2
>>
>> To reproduce run:
>> make defconfig ARCH=um O=/mnt/o && make linux ARCH=um O=/mnt/
>>
>> If there is anything in UML which needs fixing, please tell. :-)
>
> I'll have a look, thanks for the report.

Findings so far: For some reason, syscalls_32.h is generated in the
source tree (which is wrong) and syscalls_64.h is not generated at all.
Looking further.

Also, it looks like make O=/dir bzImage on x86_64 non-um has been broken
even before this commit. 'make all' works fine. Not sure if it is related.

Michal
--
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/