summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/kernel-yocto.bbclass39
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
58do_kernel_metadata() { 58do_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