From 901b6c2b244ad5dd1c60d3fcbb0631577c051fcd Mon Sep 17 00:00:00 2001 From: "Maupin, Chase" Date: Fri, 23 May 2014 02:08:32 +0000 Subject: setup-defconfig: allow use of in-kernel config fragments * Allow the use of in-kernel config fragments instead of only pulling config fragments from the OE meta data. * The absolute path to the config fragment is used to allow pointing to different fragment locations. * Update the linux-ti-staging_3.12 recipe which uses config fragments to specify the absolute path Signed-off-by: Chase Maupin Signed-off-by: Denys Dmytriyenko --- recipes-kernel/linux/linux-ti-staging_3.12.bb | 3 ++- recipes-kernel/linux/setup-defconfig.inc | 24 +++++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/recipes-kernel/linux/linux-ti-staging_3.12.bb b/recipes-kernel/linux/linux-ti-staging_3.12.bb index dbb49b37..cb289c4e 100644 --- a/recipes-kernel/linux/linux-ti-staging_3.12.bb +++ b/recipes-kernel/linux/linux-ti-staging_3.12.bb @@ -46,7 +46,8 @@ PV = "3.12.20" MACHINE_KERNEL_PR_append = "a+gitr${SRCPV}" PR = "${MACHINE_KERNEL_PR}" -KERNEL_CONFIG_FRAGMENTS = "baseport.cfg connectivity.cfg ipc.cfg" +KERNEL_CONFIG_FRAGMENTS = "${WORKDIR}/baseport.cfg ${WORKDIR}/connectivity.cfg \ + ${WORKDIR}/ipc.cfg" SRC_URI = "git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git;protocol=git;branch=${BRANCH} \ file://defconfig \ diff --git a/recipes-kernel/linux/setup-defconfig.inc b/recipes-kernel/linux/setup-defconfig.inc index 4277f26e..dbfd0d4a 100644 --- a/recipes-kernel/linux/setup-defconfig.inc +++ b/recipes-kernel/linux/setup-defconfig.inc @@ -27,9 +27,31 @@ do_configure() { yes '' | oe_runmake oldconfig fi - # check for fragments + # Check for kernel config fragments. The assumption is that the config + # fragment will be specified with the absolute path. For example: + # * ${WORKDIR}/config1.cfg + # * ${S}/config2.cfg + # Iterate through the list of configs and make sure that you can find + # each one. If not then error out. + # NOTE: If you want to override a configuration that is kept in the kernel + # with one from the OE meta data then you should make sure that the + # OE meta data version (i.e. ${WORKDIR}/config1.cfg) is listed + # after the in kernel configuration fragment. + # Check if any config fragments are specified. if [ ! -z "${KERNEL_CONFIG_FRAGMENTS}" ] then + for f in ${KERNEL_CONFIG_FRAGMENTS} + do + # Check if the config fragment was copied into the WORKDIR from + # the OE meta data + if [ ! -e "$f" ] + then + echo "Could not find kernel config fragment $f" + exit 1 + fi + done + + # Now that all the fragments are located merge them. ( cd ${WORKDIR} && ${S}/scripts/kconfig/merge_config.sh -m -r -O ${S} ${S}/.config ${KERNEL_CONFIG_FRAGMENTS} 1>&2 ) yes '' | oe_runmake oldconfig fi -- cgit v1.2.3-54-g00ecf