On Fri, Feb 28, 2025, at 05:11, Herbert Xu wrote:
On Thu, Feb 27, 2025 at 12:56:30PM +0100, Arnd Bergmann wrote:
quoted
I've tried to undo that portion here and don't run into a
dependency loop so far with the patch below on top of yours
(around 100 randconfigs in). I'll keep testing and will let
you know when something goes wrong.
That's because you removed 'select CRYPTO', which can cause the
arch code to silently disappear just like my original patch.
It's pretty much difficult to disable CRYPTO because so many
random things select it. But I managed to turn CRYPTO off with
some effort and indeed with your patch the arch code disappears.
In the following config file, CONFIG_CRYPTO_LIB_CHACHA is modular but
the X86 option for it is not selected, because CRYPTO itself is off.
I see. So the case of building lib/crypto code but not CONFIG_CRYPTO
is something I would normally expect to work, including the
architecture specific optimizations, and it's probably not
too hard to get there, but it's also unclear if there is really a
point in doing that.
For design purity, I think we would need to split the architecture
specific code the same way as the generic ones: library functions
that always get selected by their users to export functions and
the front-ends that are user-selectable and register the algorithm
with the crypto API.
Keeping the 'select CRYPTO' is clearly less effor if you prefer
that.
Arnd