Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> writes: > On Tue, May 28, 2019 at 9:10 PM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: >> >> On Tue, May 28, 2019 at 06:16:14PM +1000, Michael Ellerman wrote: >> > We have several "defconfigs" that are not actually full defconfigs >> > they are just a base set of options which are then merged with other >> > fragments to produce a working defconfig. > > The default values from Kconfig files are used > where CONFIG options are not specified by the defconfig. > > So, I think corenet_basic_defconfig is a full defconfig > even if it contains a single CONFIG option. That's technically true, but it's not a full defconfig in the sense that it doesn't define a meaningful set of options for building for a specific machine. In fact if you build it you get a .config that doesn't include the one option it defines, CONFIG_CORENET_GENERIC=y. > Since the difference between "*_defconfig" and "*.config" > is ambiguous in some cases, it depends on the intended usage. I'm pretty sure all the existing foo.config files are fragments that are intended to be merged with an existing .config or other fragments. ie: These are fragments: arch/arm/configs/dram_0x00000000.config arch/arm/configs/dram_0xc0000000.config arch/arm/configs/dram_0xd0000000.config These are all fragments: arch/powerpc/configs/be.config arch/powerpc/configs/book3s_32.config arch/powerpc/configs/altivec.config arch/powerpc/configs/85xx-hw.config arch/powerpc/configs/guest.config arch/powerpc/configs/85xx-smp.config arch/powerpc/configs/85xx-64bit.config arch/powerpc/configs/dpaa.config arch/powerpc/configs/85xx-32bit.config arch/powerpc/configs/fsl-emb-nonhw.config arch/powerpc/configs/86xx-smp.config arch/powerpc/configs/le.config arch/powerpc/configs/86xx-hw.config Pretty sure these all are, they're used in gen_generic_defconfigs in arch/mips/Makefile: arch/mips/configs/generic/board-xilfpga.config arch/mips/configs/generic/board-ocelot.config arch/mips/configs/generic/board-ni169445.config arch/mips/configs/generic/32r6.config arch/mips/configs/generic/64r1.config arch/mips/configs/generic/32r1.config arch/mips/configs/generic/64r6.config arch/mips/configs/generic/eb.config arch/mips/configs/generic/micro32r2.config arch/mips/configs/generic/32r2.config arch/mips/configs/generic/board-boston.config arch/mips/configs/generic/el.config arch/mips/configs/generic/board-ranchu.config arch/mips/configs/generic/64r2.config arch/mips/configs/generic/board-sead-3.config These are also both fragments: arch/x86/configs/tiny.config arch/x86/configs/xen.config >> > The most obvious example is corenet_basic_defconfig which only >> > contains one symbol CONFIG_CORENET_GENERIC=y. But there is also >> > mpc85xx_base_defconfig which doesn't actually enable CONFIG_PPC_85xx. >> > >> > To avoid confusion, rename these config fragments to "foo_base.config" >> > to make it clearer that they are not full defconfigs. >> >> Adding linux-kbuild, maybe we can make the handling of these fragments >> generic and actually document it.. > > I do not know how it should be documented. Me either. cheers