• J
    [PATCH] disable init/initramfs.c · c33df4ea
    Jean-Paul Saman 提交于
    The file init/initramfs.c is always compiled and linked in the kernel
    vmlinux even when BLK_DEV_RAM and BLK_DEV_INITRD are disabled and the
    system isn't using any form of an initramfs or initrd.  In this situation
    the code is only used to unpack a (static) default initial rootfilesystem.
    The current init/initramfs.c code.  usr/initramfs_data.o compiles to a size
    of ~15 kbytes.  Disabling BLK_DEV_RAM and BLK_DEV_INTRD shrinks the kernel
    code size with ~60 Kbytes.
    
    This patch avoids compiling in the code and data for initramfs support if
    CONFIG_BLK_DEV_INITRD is not defined.  Instead of the initramfs code and
    data it uses a small routine in init/noinitramfs.c to setup an initial
    static default environment for mounting a rootfilesystem later on in the
    kernel initialisation process.  The new code is: 164 bytes of size.
    
    The patch is separated in two parts:
    1) doesn't compile initramfs code when CONFIG_BLK_DEV_INITRD is not set
    2) changing all plaforms vmlinux.lds.S files to not reserve an area of
    PAGE_SIZE when CONFIG_BLK_DEV_INITRD is not set.
    
    [deweerdt@free.fr: warning fix]
    Signed-off-by: NJean-Paul Saman <jean-paul.saman@nxp.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: <linux-arch@vger.kernel.org>
    Signed-off-by: NFrederik Deweerdt <frederik.deweerdt@gmail.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    c33df4ea
Kconfig 19.8 KB