On Wed, 2 Oct 2019 at 16:17, Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> wrote: > ... > > In the future, I would like to extend these interfaces to use static calls, > so that the accelerated implementations can be [un]plugged at runtime. For > the time being, we rely on weak aliases and conditional exports so that the > users of the library interfaces link directly to the accelerated versions, > but without the ability to unplug them. > As it turns out, we don't actually need static calls for this. Instead, we can simply permit weak symbol references to go unresolved between modules (as we already do in the kernel itself, due to the fact that ELF permits it), and have the accelerated code live in separate modules that may not be loadable on certain systems, or be blacklisted by the user.