Re: [PATCH v2] ubifs: fix kconfig dependency warning

From: Randy Dunlap
Date: Wed Mar 30 2011 - 13:34:32 EST


On 3/30/2011 1:12 AM, Artem Bityutskiy wrote:
On Tue, 2011-03-29 at 08:48 -0700, Randy Dunlap wrote:
On Tue, 29 Mar 2011 18:04:15 +0300 Artem Bityutskiy wrote:

On Tue, 2011-03-29 at 08:01 -0700, Randy Dunlap wrote:
On 03/29/11 00:02, Artem Bityutskiy wrote:
On Mon, 2011-03-28 at 13:40 -0700, Randy Dunlap wrote:
From: Randy Dunlap<randy.dunlap@xxxxxxxxxx>

Fix another kconfig dependency warning, this time in ubifs.

warning: (UBIFS_FS_DEBUG&& LOCKDEP&& LATENCYTOP) selects KALLSYMS_ALL which has unmet direct dependencies (DEBUG_KERNEL&& KALLSYMS)

Without this patch, we can have:
# CONFIG_KALLSYMS is not set
CONFIG_KALLSYMS_ALL=y
which is useless (does nothing unless KALLSYMS is enabled).

However, ubifs builds successfully with or without this patch,
and it builds with this line completely deleted,
so what was this 'select' for? Just developer convenience?

Well, here is the idea. You can compile UBIFS with debugging and without
debugging. Without debugging the resulting ubifs.ko is much smaller, so
some embedded people prefer it this way.

If you select debugging support, then we'll compile it a lot of
assertions, self-checks, test-modes, extra error messages with detailed
dumps. And we want to see stackdumps when errors or problems happen,
this is why we select KALLSYMS_ALL.

So I guess instead we should do:

select KALLSYMS
select KALLSYMS_ALL

Yes, that should do it. Thanks for the explanation.

Will you submit a patch? Alternatively, I can make it myself. What is
your preference?

Here's an updated patch. But since KALLSYMS_ALL depends on DEBUG_KERNEL,
the lines above aren't quite sufficient and I don't care to select
DEBUG_KERNEL.

What is the real difference between KALLSYMS_ALL and KALLSYMS? It looks
like for stack dumps KALLSYMS is enough. The Kconfig help text is not
very helpful. And when I look at the help text of
CONFIG_KALLSYMS_EXTRA_PASS I get feeling that this area needs some
clean-up work.

Yes, KALLSYMS is enough for most of us.

You can see what KALLSYMS_ALL does by looking at scripts/kallsyms.c,
the --all-symbols option:

/* if --all-symbols is not specified, then symbols outside the text
* and inittext sections are discarded */



Anyway, any idea why we wouldn't just kill KALLSYMS_ALL by merging it
with KALLSYMS?

KALLSYMS_ALL probably generates noise for most use cases.

---
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/