This change adds support for specifying a build ID for kernel modules.
This is done by setting PKG_BUILD_ID to a hexadecimal string, which will
then be passed to the kernel linker. In addition, when this flag is set,
the build ID debug symbol (.note.gnu.build-id) will not be stripped from
the kernel module. This symbol is exported in sysfs by the kernel (if
the kernel is compiled with CONFIG_KALLSYMS) and so can be used to
uniquely identify a version of a kernel module in a running kernel. This
is useful for keeping track of different versions of a module when doing
experiments and development.
Modules that specify the build ID will be ~100 bytes larger (depending
on the length of the build ID specified). There is no size difference
for kernel modules that do not set this variable.
Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
SVN-Revision: 47290
Otherwise the modpost steps for individual modules that are compiled
manually (using make package/<name_of_module>/install) will give warning
of missing symbols when that module depends other modules.
This is caused by the Module.symvers file not containing any symbols
anymore of external modules when the initramfs image is built without
specifically giving the modules target.
Signed-off-by: Tjalling Hattink <t.hattink@fugro.nl>
SVN-Revision: 42773
This allows the selection of a specific branch in the menuconfig
when using a kernel downloaded from GIT.
Signed-off-by: Mathieu Olivari <mathieu@qca.qualcomm.com>
SVN-Revision: 40946
The way git options are managed in kernel-defaults.mk makes additions
difficult. If requires different code path for each option; it's
ok so far as we handle only one option, but if we want to make the git
clone mechanism more flexible, more option will be required, which
will become tedious.
So; we'll move the GIT options into a variable, that may or may not be
set depending on the configuration, and we'll pass this variable to the
git command.
Signed-off-by: Mathieu Olivari <mathieu@qca.qualcomm.com>
SVN-Revision: 40945
The GIT_LOCAL_REPOSITORY option adds the --reference argument to the
git clone kernel command line, if KERNEL_GIT_CLONE_URI is set.
This option is intended to speed-up the repo creation by using local
objets rather than downloading it. However, a local repo can be cloned
much faster by setting GIT_LOCAL_REPOSITORY directly to the local tree.
In that case, git clone will bypass the normal "git aware" transport
mechanism and clone the repository by copying and hardlinking objects
rather than downloading it, resulting in a significant speed increase.
That makes the GIT_LOCAL_REPOSITORY option pretty useless so we'll just
remove it and recommand the usage of KERNEL_GIT_CLONE_URI directly.
Signed-off-by: Mathieu Olivari <mathieu@qca.qualcomm.com>
SVN-Revision: 40944
This change does multiple things, all related to enable sparse usage as
a static analysis tool selectable from the OpenWrt configuration:
*add a KERNEL_SPARSE option in the config to add sparse to the kernel
build (through the C=1 option usage)
*add sparse as a new host tools. It will get selected automatically when
the above option will be enabled
Signed-off-by: Mathieu Olivari <mathieu@qca.qualcomm.com>
SVN-Revision: 40490
Kernel 3.12 now offers LZ4 compression which will make initramfs builds
fail because we do not know how to substitute the relevant config
symbols, fix that.
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 38533
Make sure that the kernel rebuilds the initramfs cpio archive file by
deleting it before so we get it re-generated properly.
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 37125
Do not attempt to copy arch/$(LINUX_KARCH)/boot/dtbs because these are
not real files, fixes#13785.
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 37107
In order to support building both normal and initramfs kernel, we will
rebuild the wrappers around the vmlinux ELF binary, copy these with an
appropriate extension when they exist.
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 37048
If initramfs is enabled, build a second pass kernel containing the CPIO
rootfs, preliminary work to get non exclusive enabling of initramfs.
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 37047
GNU Make's subst is always breaking syntax highlighting with at least
vim add the right comments to workaround it.
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 37046
V=99 and V=1 are now deprecated in favor of a new verbosity class system,
though the old flags are still supported.
You can set the V variable on the command line (or OPENWRT_VERBOSE in the
environment) to one or more of the following characters:
- s: stdout+stderr (equal to the old V=99)
- c: commands (for build systems that suppress commands by default, e.g. kbuild)
- w: warnings/errors only (equal to the old V=1)
SVN-Revision: 31484
The CONFIG_INITRAMFS_SOURCE Kconfig variable can be a space-separated
list of source files (or directories). This allows a platform to
add extra components to the initramfs image, by defining the
INITRAMFS_EXTRA_FILES make var.
By default, we add a simple initramfs extra file for the generic-2.6
platform, which specifies a few device nodes.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
SVN-Revision: 9410
Set the CONFIG_INITRAMFS_ROOT_{U,G}ID kernel variables to the current
user, so that all files end up being owned by root in the final
initramfs image.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
SVN-Revision: 9409
If KERNEL_CC isn't set, we end up with a "CC=" on the kernel build
command-line. We don't always need CC, as the CROSS_COMPILE flag does
the job instead. In fact, specifying CC messes up the build when we're
using a biarch compiler.
This change doesn't specify CC= if the KERNEL_CC variable is empty.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
SVN-Revision: 9408