Hi Ard,
On Mon, Nov 30, 2020 at 1:47 PM Ard Biesheuvel <[email protected]> wrote:
> On Mon, 30 Nov 2020 at 13:42, Geert Uytterhoeven <[email protected]> wrote:
> > On Mon, Nov 30, 2020 at 1:26 PM Ard Biesheuvel <[email protected]> wrote:
> > > Geert reports that builds where CONFIG_CRYPTO_AEGIS128_SIMD is not set
> > > may still emit references to crypto_aegis128_update_simd(), which
> > > cannot be satisfied and therefore break the build. These references
> > > only exist in functions that can be optimized away, but apparently,
> > > the compiler is not always able to prove this.
> >
> > The code is not unreachable. Both crypto_aegis128_encrypt_simd() and
> > crypto_aegis128_decrypt_simd() call crypto_aegis128_process_ad(..., true);
> >
>
> Those functions themselves can be optimized away too, as well as
> struct aead_alg crypto_aegis128_alg_simd, which is the only thing that
> refers to those functions, and is itself only referenced inside a 'if
> (IS_ENABLED(CONFIG_CRYPTO_AEGIS128_SIMD))' conditional block. This is
> why it works fine most of the time.
I stand corrected: I missed the conditional registration of
crypto_aegis128_alg_simd.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds