Clear Linux Exploring "libSuperX11" As Newest Optimization Effort
As another optimization for Intel's Clear Linux distribution, a "libSuperX11" library is being considered that fundamentally changes how the X.Org libraries are handled.
Intel Fellow Arjan van de Ven has laid out a proposal for creating a "libSuperX11" that would be a single library file representing what is currently many small X11 libraries. When X11 was modularized, it was split up into many small libraries. Most GUI tool-kits and other large users of X11 directly end up loading these more than a dozen small libraries where the goal of libSuperX11 is to eliminate having so many small libraries.
Having so many libraries to commonly load adds startup time costs, increased memory usage, and doesn't allow for cross-library Link Time Optimizations (LTO) by the compiler. The goal of libSuperX11 would be to have one super-set library consolidating as many of these small libraries as possible into a single object file.
This isn't a trivial change as applications would need to link against this new superset library but there are compatibility plans by making small stub libraries as well as compatibility steps for preserving source/build compatibility. This also makes the situation a bit messier should these X11 libraries end up having an ABI break, but that is less likely these years with the state of X11 being quite mature on Linux and not seeing too many upstream changes these days, at least for what would break the ABI.
More details on this planned change for libSuperX11 can be found via the Clear mailing list.
Intel Fellow Arjan van de Ven has laid out a proposal for creating a "libSuperX11" that would be a single library file representing what is currently many small X11 libraries. When X11 was modularized, it was split up into many small libraries. Most GUI tool-kits and other large users of X11 directly end up loading these more than a dozen small libraries where the goal of libSuperX11 is to eliminate having so many small libraries.
Having so many libraries to commonly load adds startup time costs, increased memory usage, and doesn't allow for cross-library Link Time Optimizations (LTO) by the compiler. The goal of libSuperX11 would be to have one super-set library consolidating as many of these small libraries as possible into a single object file.
This isn't a trivial change as applications would need to link against this new superset library but there are compatibility plans by making small stub libraries as well as compatibility steps for preserving source/build compatibility. This also makes the situation a bit messier should these X11 libraries end up having an ABI break, but that is less likely these years with the state of X11 being quite mature on Linux and not seeing too many upstream changes these days, at least for what would break the ABI.
More details on this planned change for libSuperX11 can be found via the Clear mailing list.
30 Comments