Rebuild a changed kernel quickly with make?

Warlich, Christof christof.warlich at siemens.com
Thu Jul 4 02:53:40 EDT 2013


> When I change something in the kernel and just hit make from toplevel
> dir, it always compiles everything again, no matter if it wasn't changed
> at all in the meantime.
> I thought make should be able to make a second build time really quick.
> What am I doing wrong? Is there a make target I don't know of? I don't
> type in any, just make.

Are you sure it rebuilds _everything_, i.e. as in a fresh build or after a "make clean?"

When I rerun make without changing anything, it just does the following, which is much
Less than a complete build:

$ make
make -C /root/views/DCUOS_3/derived/tdc/kernel O=/root/views/DCUOS_3/derived/tdc/kernelObjects/. 
  Using /root/views/DCUOS_3/derived/tdc/kernel as source for kernel
  GEN     /root/views/DCUOS_3/derived/tdc/kernelObjects/Makefile
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-x86
  CALL    /root/views/DCUOS_3/derived/tdc/kernel/scripts/checksyscalls.sh
  CHK     include/linux/compile.h
  VDSOSYM arch/x86/vdso/vdso32-int80-syms.lds
  VDSOSYM arch/x86/vdso/vdso32-sysenter-syms.lds
  VDSOSYM arch/x86/vdso/vdso32-syms.lds
  LD      arch/x86/vdso/built-in.o
  LD      arch/x86/built-in.o
  LD      vmlinux.o
  MODPOST vmlinux.o
  GEN     .version
  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
  CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vmlinux1
  KSYM    .tmp_kallsyms1.S
  AS      .tmp_kallsyms1.o
  LD      .tmp_vmlinux2
  KSYM    .tmp_kallsyms2.S
  AS      .tmp_kallsyms2.o
  LD      vmlinux
  SYSMAP  System.map
  SYSMAP  .tmp_System.map
  VOFFSET arch/x86/boot/voffset.h
  OBJCOPY arch/x86/boot/compressed/vmlinux.bin
  GZIP    arch/x86/boot/compressed/vmlinux.bin.gz
  MKPIGGY arch/x86/boot/compressed/piggy.S
  AS      arch/x86/boot/compressed/piggy.o
  LD      arch/x86/boot/compressed/vmlinux
  ZOFFSET arch/x86/boot/zoffset.h
  AS      arch/x86/boot/header.o
  CC      arch/x86/boot/version.o
  LD      arch/x86/boot/setup.elf
  OBJCOPY arch/x86/boot/setup.bin
  OBJCOPY arch/x86/boot/vmlinux.bin
  BUILD   arch/x86/boot/bzImage
Root device is (8, 5)
Setup is 11148 bytes (padded to 11264 bytes).
System is 1759 kB
CRC f583db84
Kernel: arch/x86/boot/bzImage is ready  (#3)
  Building modules, stage 2.
  MODPOST 1 modules 


More information about the Kernelnewbies mailing list