08 Jul, 2017

1 commit

  • …asahiroy/linux-kbuild

    Pull misc Kbuild updates from Masahiro Yamada:

    - Use more portable shebang for Perl scripts

    - Remove trailing spaces from GCC version in kernel log

    - Make initramfs generation deterministic

    * tag 'kbuild-misc-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    kbuild: create deterministic initramfs directory listings
    scripts/mkcompile_h: Remove trailing spaces from compiler version
    scripts: Switch to more portable Perl shebang

    Linus Torvalds
     

07 Jul, 2017

1 commit


03 Jul, 2017

1 commit

  • kbuild runs "find" on each entry in CONFIG_INITRAMFS_SOURCE that is a
    directory. The order of the file listing output by "find" matter for
    build reproducability, hence this patch applies "sort" to get
    deterministic results.

    Without this patch, two different machines with identical initramfs
    directory input may produce differing initramfs cpio archives (different
    hash) due to the different order of the files within the archive.

    Signed-off-by: Bjørn Forsman
    Signed-off-by: Masahiro Yamada

    Bjørn Forsman
     

23 Sep, 2016

1 commit


20 Aug, 2014

1 commit


04 Mar, 2014

1 commit

  • LZ4 as implemented in the kernel differs from the default method now
    used by the reference implementation of LZ4. Until the in-kernel method
    is updated to support the new default, passing the legacy flag (-l) to
    the compressor is necessary. Without this flag the kernel-generated,
    LZ4-compressed initramfs is junk.

    Kyungsik said:

    : It seems that lz4 supports legacy format with the same option as lz4c
    : does. Just looking at the first few bytes of lz4 compressed image, we can
    : see whether it is new format or not.
    :
    : It shows new format magic number without this patch. New format magic
    : number is 0x184d2204.
    :
    : $ hexdump -C ./initramfs_data.cpio.lz4 |more
    : 00000000 04 22 4d 18 64 70 b9 69 (Little Endian)
    : ...
    :
    : Currently kernel supports legacy format only.

    Signed-off-by: Daniel M. Weeks
    Cc: Michal Marek
    Acked-by: Kyungsik Lee
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel M. Weeks
     

13 Nov, 2013

1 commit

  • When expert configuration option(CONFIG_EXPERT) is enabled, menuconfig
    offers a choice of compression algorithm to compress initial ramfs image;
    This choice is stored into CONFIG_RD_* variables. But usr/Makefile uses
    earlier INITRAMFS_COMPRESSION_* macros to build initial ramfs file. Since
    none of them is defined, resulting 'initramfs_data.cpio' file remains
    un-compressed.

    This patch updates the Makefile to use CONFIG_RD_* variables and adds
    support for LZ4 compression algorithm. Also updates the
    'gen_initramfs_list.sh' script to check whether a selected compression
    command is accessible or not. And fall-back to default gzip(1)
    compression when it is not.

    Signed-off-by: P J P
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    P J P
     

25 May, 2011

1 commit

  • * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6:
    kbuild: make KBUILD_NOCMDDEP=1 handle empty built-in.o
    scripts/kallsyms.c: fix potential segfault
    scripts/gen_initramfs_list.sh: Convert to a /bin/sh script
    kbuild: Fix GNU make v3.80 compatibility
    kbuild: Fix passing -Wno-* options to gcc 4.4+
    kbuild: move scripts/basic/docproc.c to scripts/docproc.c
    kbuild: Fix Makefile.asm-generic for um
    kbuild: Allow to combine multiple W= levels
    kbuild: Disable -Wunused-but-set-variable for gcc 4.6.0
    Fix handling of backlash character in LINUX_COMPILE_BY name
    kbuild: asm-generic support
    kbuild: implement several W= levels
    kbuild: Fix build with binutils <= 2.19
    initramfs: Use KBUILD_BUILD_TIMESTAMP for generated entries
    kbuild: Allow to override LINUX_COMPILE_BY and LINUX_COMPILE_HOST macros
    kbuild: Drop unused LINUX_COMPILE_TIME and LINUX_COMPILE_DOMAIN macros
    kbuild: Use the deterministic mode of ar
    kbuild: Call gzip with -n
    kbuild: move KALLSYMS_EXTRA_PASS from Kconfig to Makefile
    Kconfig: improve KALLSYMS_ALL documentation

    Fix up trivial conflict in Makefile

    Linus Torvalds
     

12 May, 2011

1 commit


18 Apr, 2011

2 commits


31 Mar, 2011

1 commit


14 Jan, 2011

1 commit

  • This implements the API defined in which is
    used for kernel, initramfs, and initrd decompression. This patch together
    with the first patch is enough for XZ-compressed initramfs and initrd;
    XZ-compressed kernel will need arch-specific changes.

    The buffering requirements described in decompress_unxz.c are stricter
    than with gzip, so the relevant changes should be done to the
    arch-specific code when adding support for XZ-compressed kernel.
    Similarly, the heap size in arch-specific pre-boot code may need to be
    increased (30 KiB is enough).

    The XZ decompressor needs memmove(), memeq() (memcmp() == 0), and
    memzero() (memset(ptr, 0, size)), which aren't available in all
    arch-specific pre-boot environments. I'm including simple versions in
    decompress_unxz.c, but a cleaner solution would naturally be nicer.

    Signed-off-by: Lasse Collin
    Cc: "H. Peter Anvin"
    Cc: Alain Knaff
    Cc: Albin Tonnerre
    Cc: Phillip Lougher
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lasse Collin
     

01 Jun, 2010

1 commit

  • * 'for-35' of git://repo.or.cz/linux-kbuild: (81 commits)
    kbuild: Revert part of e8d400a to resolve a conflict
    kbuild: Fix checking of scm-identifier variable
    gconfig: add support to show hidden options that have prompts
    menuconfig: add support to show hidden options which have prompts
    gconfig: remove show_debug option
    gconfig: remove dbg_print_ptype() and dbg_print_stype()
    kconfig: fix zconfdump()
    kconfig: some small fixes
    add random binaries to .gitignore
    kbuild: Include gen_initramfs_list.sh and the file list in the .d file
    kconfig: recalc symbol value before showing search results
    .gitignore: ignore *.lzo files
    headerdep: perlcritic warning
    scripts/Makefile.lib: Align the output of LZO
    kbuild: Generate modules.builtin in make modules_install
    Revert "kbuild: specify absolute paths for cscope"
    kbuild: Do not unnecessarily regenerate modules.builtin
    headers_install: use local file handles
    headers_check: fix perl warnings
    export_report: fix perl warnings
    ...

    Linus Torvalds
     

28 May, 2010

1 commit


23 Mar, 2010

1 commit


11 Apr, 2009

1 commit

  • When gen_initramfs_list is used to generate make dependencies, it
    includes symbolic links, for which make tracks the link target. Any
    change to that target will cause an initramfs rebuild, even if the
    symlink points to something outside of the initramfs directory.

    If the target happens to be /tmp, the rebuild occurs for each kernel
    build, since gen_initramfs_list uses mktemp...

    Proposed way to fix it is to omit symbolic links from generated
    dependencies, but this has a small drawback: changing perm/owner on a
    symlink will go unnoticed.

    Signed-off-by: Maxime Bizon
    Signed-off-by: Sam Ravnborg

    Maxime Bizon
     

20 Feb, 2009

1 commit


07 Jan, 2009

1 commit

  • Impact: Resolves build failures in some configurations

    Makes it possible to disable CONFIG_RD_GZIP . In that case, the
    built-in initramfs will be compressed by whatever compressor is
    available (bzip2 or lzma) or left uncompressed if none is available.

    It also removes a couple of warnings which occur when no ramdisk
    compression at all is chosen.

    It also restores the select ZLIB_INFLATE in drivers/block/Kconfig
    which somehow came missing. This is needed to activate compilation of
    the stuff in zlib_deflate.

    Signed-off-by: Alain Knaff
    Signed-off-by: H. Peter Anvin

    Alain Knaff
     

29 Apr, 2008

1 commit


17 Jul, 2007

1 commit


03 May, 2007

2 commits

  • If the find(1) in scripts/gen_initramfs_list.sh generates any errors, it
    will cause gen_initramfs_list.sh to fail (because of "set -e"), however
    the errors from find are not printed to the user. This is rather confusing:

    ~/src/powerpc$ make O=~/build/powerpc-cell32/
    make[2]: *** [usr/initramfs_data.cpio.gz] Error 1
    make[1]: *** [usr] Error 2
    make[1]: *** Waiting for unfinished jobs....
    make[1]: *** wait: No child processes. Stop.
    make: *** [_all] Error 2

    It is much easier to work out what the problem is if we let the errors
    from find hit the console, eg:

    ~/src/powerpc$ make O=~/build/powerpc-cell32/
    find: /home/michael/initramfs-source/home: Permission denied
    find: /home/michael/initramfs-source/lost+found: Permission denied
    find: /home/michael/initramfs-source/opt: Permission denied
    find: /home/michael/initramfs-source/root: Permission denied
    make[2]: *** [usr/initramfs_data.cpio.gz] Error 1
    make[1]: *** [usr] Error 2
    make[1]: *** Waiting for unfinished jobs....
    make[1]: *** wait: No child processes. Stop.
    make: *** [_all] Error 2

    Signed-off-by: Michael Ellerman
    Signed-off-by: Sam Ravnborg

    Michael Ellerman
     
  • Make kbuild handle compressed cpio initramfs-es. An already compressed
    cpio is copied directly to usr/, while a non-compressed cpio is filtered
    through gzip (no changes here) on its way to usr/.

    If the user has created a compressed cpio by other means, this saves him
    from uncompressing it, just to be compressed again by kbuild.

    Signed-off-by: Alex Landau
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Alex Landau
     

07 Feb, 2007

1 commit


26 Nov, 2006

1 commit

  • Fix bug 7401.

    Handle more than one source dir or file list to the initramfs gen scripts.

    The Kconfig help for INITRAMFS_SOURCE claims that you can specify multiple
    space-separated sources in order to allow unprivileged users to build an
    image. There are two bugs in the current implementation that prevent this
    from working.

    First, we pass "file1 dir2" to the gen_initramfs_list.sh script, which it
    obviously can't open.

    Second, gen_initramfs_list.sh -l outputs multiple definitions for
    deps_initramfs -- one for each argument.

    Signed-off-by: Thomas Chou
    Cc: Sam Ravnborg
    Acked-by: Matthew Wilcox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Chou
     

01 May, 2006

1 commit


11 Apr, 2006

1 commit

  • initramfs.cpio.gz being build in usr/ and included in the
    kernel was not rebuild when the included files changed.

    To fix this the following was done:
    - let gen_initramfs.sh generate a list of files and directories included
    in the initramfs
    - gen_initramfs generate the gzipped cpio archive so we could simplify
    the kbuild file (Makefile)
    - utilising the kbuild infrastructure so when uid/gid root mapping changes
    the initramfs will be rebuild

    With this change we have a much more robust initramfs generation.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds