>> -KERNEL_IMAGE = $(TOPDIR)/vmlinux >> +KERNEL_IMAGE = $(objtree)/vmlinux > >Current directory when building is $(objtree) so here we should >just skip the use of TOPDIR like this: >> +KERNEL_IMAGE = vmlinux > > >> KERNEL_START = $(shell $(NM) $(KERNEL_IMAGE) | grep " _text" | cut -f1 -d\ ) >> KERNEL_ENTRY = $(shell $(NM) $(KERNEL_IMAGE) | grep kernel_entry | cut -f1 -d\ ) >> >> @@ -24,7 +24,7 @@ HEAD_DEFINES := -D_kernel_start=0x$(KERNEL_START) \ >> -D TIMESTAMP=$(shell date +%s) >> >> $(obj)/head.o: $(obj)/head.S $(KERNEL_IMAGE) >> - $(CC) -fno-pic $(HEAD_DEFINES) -I$(TOPDIR)/include -c -o $@ $< >> + $(CC) -fno-pic $(HEAD_DEFINES) -I$(objtree)/include -c -o $@ $< >This has never worked with O=.. builds. >The correct fix here is to use: >> + $(CC) -fno-pic $(HEAD_DEFINES) -Iinclude -Iinclude2 -c -o $@ $< > >The -Iinclude2 is only for O=... builds so to keep current >behaviour removing $(TOPDIR)/ would do it. Thank you for your explanations! The following one corrects all the mistakes as you told. -------> Since TOPDIR is obsolete, this patch removes TOPDIR from the Mips Makefiles. Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx> Cc: Sam Ravnborg <sam@xxxxxxxxxxxx> Signed-off-by: WANG Cong <xiyou.wangcong@xxxxxxxxx> --- diff --git a/arch/mips/lasat/image/Makefile b/arch/mips/lasat/image/Makefile index 5332449..1ae73ce 100644 --- a/arch/mips/lasat/image/Makefile +++ b/arch/mips/lasat/image/Makefile @@ -12,7 +12,7 @@ endif MKLASATIMG = mklasatimg MKLASATIMG_ARCH = mq2,mqpro,sp100,sp200 -KERNEL_IMAGE = $(TOPDIR)/vmlinux +KERNEL_IMAGE = vmlinux KERNEL_START = $(shell $(NM) $(KERNEL_IMAGE) | grep " _text" | cut -f1 -d\ ) KERNEL_ENTRY = $(shell $(NM) $(KERNEL_IMAGE) | grep kernel_entry | cut -f1 -d\ ) @@ -24,7 +24,7 @@ HEAD_DEFINES := -D_kernel_start=0x$(KERNEL_START) \ -D TIMESTAMP=$(shell date +%s) $(obj)/head.o: $(obj)/head.S $(KERNEL_IMAGE) - $(CC) -fno-pic $(HEAD_DEFINES) -I$(TOPDIR)/include -c -o $@ $< + $(CC) -fno-pic $(HEAD_DEFINES) -Iinclude -Iinclude2 -c -o $@ $< OBJECTS = head.o kImage.o