diff options
| -rw-r--r-- | meta/classes/kernel-yocto.bbclass | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass index 1e226a5722..14551a23f2 100644 --- a/meta/classes/kernel-yocto.bbclass +++ b/meta/classes/kernel-yocto.bbclass | |||
| @@ -56,6 +56,7 @@ def get_machine_branch(d, default): | |||
| 56 | return default | 56 | return default |
| 57 | 57 | ||
| 58 | do_kernel_metadata() { | 58 | do_kernel_metadata() { |
| 59 | set +e | ||
| 59 | cd ${S} | 60 | cd ${S} |
| 60 | export KMETA=${KMETA} | 61 | export KMETA=${KMETA} |
| 61 | 62 | ||
| @@ -75,6 +76,41 @@ do_kernel_metadata() { | |||
| 75 | machine_srcrev="${SRCREV}" | 76 | machine_srcrev="${SRCREV}" |
| 76 | fi | 77 | fi |
| 77 | 78 | ||
| 79 | # In a similar manner to the kernel itself: | ||
| 80 | # | ||
| 81 | # defconfig: $(obj)/conf | ||
| 82 | # ifeq ($(KBUILD_DEFCONFIG),) | ||
| 83 | # $< --defconfig $(Kconfig) | ||
| 84 | # else | ||
| 85 | # @echo "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'" | ||
| 86 | # $(Q)$< --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig) | ||
| 87 | # endif | ||
| 88 | # | ||
| 89 | # If a defconfig is specified via the KBUILD_DEFCONFIG variable, we copy it | ||
| 90 | # from the source tree, into a common location and normalized "defconfig" name, | ||
| 91 | # where the rest of the process will include and incoroporate it into the build | ||
| 92 | # | ||
| 93 | # If the fetcher has already placed a defconfig in WORKDIR (from the SRC_URI), | ||
| 94 | # we don't overwrite it, but instead warn the user that SRC_URI defconfigs take | ||
| 95 | # precendence. | ||
| 96 | # | ||
| 97 | if [ -n "${KBUILD_DEFCONFIG}" ]; then | ||
| 98 | if [ -f "${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG}" ]; then | ||
| 99 | if [ -f "${WORKDIR}/defconfig" ]; then | ||
| 100 | # If the two defconfigs are the same, leave the existing one in place | ||
| 101 | cmp "${WORKDIR}/defconfig" "${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG}" | ||
| 102 | if [ $? -ne 0 ]; then | ||
| 103 | bbnote "defconfig detected in WORKDIR. ${KBUILD_DEFCONFIG} skipped" | ||
| 104 | else | ||
| 105 | cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig | ||
| 106 | sccs="${WORKDIR}/defconfig" | ||
| 107 | fi | ||
| 108 | fi | ||
| 109 | else | ||
| 110 | bbfatal "A KBUILD_DECONFIG '${KBUILD_DEFCONFIG}' was specified, but not present in the source tree" | ||
| 111 | fi | ||
| 112 | fi | ||
| 113 | |||
| 78 | # if we have a defined/set meta branch we should not be generating | 114 | # if we have a defined/set meta branch we should not be generating |
| 79 | # any meta data. The passed branch has what we need. | 115 | # any meta data. The passed branch has what we need. |
| 80 | if [ -n "${KMETA}" ]; then | 116 | if [ -n "${KMETA}" ]; then |
| @@ -86,11 +122,10 @@ do_kernel_metadata() { | |||
| 86 | bbfatal "Could not create ${machine_branch}" | 122 | bbfatal "Could not create ${machine_branch}" |
| 87 | fi | 123 | fi |
| 88 | 124 | ||
| 89 | sccs="${@" ".join(find_sccs(d))}" | 125 | sccs="$sccs ${@" ".join(find_sccs(d))}" |
| 90 | patches="${@" ".join(find_patches(d))}" | 126 | patches="${@" ".join(find_patches(d))}" |
| 91 | feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}" | 127 | feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}" |
| 92 | 128 | ||
| 93 | set +e | ||
| 94 | # add any explicitly referenced features onto the end of the feature | 129 | # add any explicitly referenced features onto the end of the feature |
| 95 | # list that is passed to the kernel build scripts. | 130 | # list that is passed to the kernel build scripts. |
| 96 | if [ -n "${KERNEL_FEATURES}" ]; then | 131 | if [ -n "${KERNEL_FEATURES}" ]; then |
