[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHk-=wgK07PQ_DBBbAbSJ41t__6de1xZ6q7RRu-JS=2SU0wqLQ@mail.gmail.com>
Date: Mon, 27 Feb 2023 14:43:27 -0800
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: David Gow <davidgow@...gle.com>
Cc: Shuah Khan <skhan@...uxfoundation.org>,
Brendan Higgins <brendan.higgins@...ux.dev>,
Rae Moar <rmoar@...gle.com>,
Daniel Latypov <dlatypov@...gle.com>,
Masahiro Yamada <masahiroy@...nel.org>,
linux-kselftest@...r.kernel.org, kunit-dev@...glegroups.com,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] kunit: Fix 'hooks.o' build by recursing into kunit
On Fri, Feb 24, 2023 at 5:45 PM David Gow <davidgow@...gle.com> wrote:
>
> +# Some KUnit files (hooks.o) need to be built-in even when KUnit is a module,
> +# so we can't just use obj-$(CONFIG_KUNIT).
> +ifdef CONFIG_KUNIT
> +obj-y += kunit/
> endif
We actually have a pattern for this, although I guess it's rare enough
that "pattern" isn't necessarily the right word.
But you can find things like the Hyper-V drivers having similar
issues, and so the driver Makefile has
obj-$(subst m,y,$(CONFIG_HYPERV)) += hv/
See a few other cases with
git grep "subst m,y,"
but I guess the "ifdef CONFIG_KUNIT" thing works too. I can only find
one case of that (in arch/mips/Kbuild).
Another way of dealing with this - that is more common for individual
object files rather than directories - is to just do
kunit-dir-$(CONFIG_KUNIT) := kunit/
obj-y += $(kunit-dir-y) $(kunit-dir-m)
which admittedly is also not a hugely common pattern, but does exist
in various places (see for example the 'sfp-bus.o' file and CONFIG_SFP
in drivers/net/phy/Makefile.
That last pattern is probably most common in scripts/Makefile.lib,
where we have things like
hostprogs += $(hostprogs-always-y) $(hostprogs-always-m)
which is similar but not the exact same thing.
Anyway, I guess I'll just apply that patch as-is, I just wanted to
point out that the particular pattern it uses may be simple, but we've
generally tried to just do our Makefile evaluations with "arithmetic"
rather than conditionals.
Linus
Powered by blists - more mailing lists