User:Aisha/eselect library

is Article description::an [[eselect module for for managing runtime loading of libraries by manipulating the ld.so runtime library search paths]].

It is primarily used by the BLAS/LAPACK/64 runtime switch for switching the provider libraries during runtime, by managing the  library runtime load paths using  search file. But any library provider can be registered as a provider for corresponding libraries.

List providers
To list library providers for :

By default, every library has no providers as they are not yet added to the  system.

Adding provider
Suppose that the package has been installed in the system but the library installed is not an optimized one. The admin can compile a local version of the library in some folder which contains the created library.

To allow the usage of this library during runtime by add it to :

Setting providers
To set a provider for :

Unset providers
It is also trivial to restore the system back to its original settings:

Now the system will be reverted back to using the  present in

Build-time vs Runtime
It is important to know that building of all software will be done by linking and resolving symbols from the  present in the default  (lib/lib64). It is only during runtime that the eselected provider will be used. Some points of consideration to keep in mind:
 * Make sure that the library is present in paths search by the linker during build time.
 * Try to keep API compatibility of provider libraries with system-wide libraries.
 * If using chain-loading, make sure no  is going to take place on providers.