On Mon, 30 Nov 2020 at 13:42, Geert Uytterhoeven <ge...@linux-m68k.org> wrote:
>
> Hi Ard,
>
> On Mon, Nov 30, 2020 at 1:26 PM Ard Biesheuvel <a...@kernel.org> 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.

Reply via email to