The multilib projects maintains a few eclasses to help developers integrating multilib support in their projects. While the use of any eclass is not technically necessary, it is convenient and provides flexibility in adding new ABIs.
The multilib.eclass is not a part of the gx86-multilib eclass suite. It predates the initiative, and provides two kinds of functions:
- Common functions to improve support for multilib systems, e.g. the
- Functions to help building packages for multiple ABIs implicitly.
The first category is used commonly by multilib and non-multilib ebuilds. If a multilib ebuild uses one of those functions, it needs to explicitly inherit multilib.
The second category is deprecated and must not be used in new multilib packages.
gx86-multilib eclass suite
The suite consists of the following eclasses:
|multilib-build||Common helpers and low-level routines for multilib packages.|
|multilib-minimal||Convenient phase function framework for building multilib packages.|
|autotools-multilib||Multilib wrapper on top of autotools-utils phases (deprecated).|
|cmake-multilib||Multilib wrapper on top of cmake-utils phases.|
Eclass choice algorithm
When choosing the correct eclass to use, the following algorithm can be used:
- If the ebuild uses cmake-utils, cmake-multilib should be used.
- If building for multilib ABIs is done and none of the aforementioned conditions apply, multilib-minimal should be used.
- multilib-build should be used only in special cases. For example, virtuals since they do not need any phase functions.