480fdf146d9c29d3de19b856409dc648df3ddcf6
Some of the Lix libraries always need to be linked in full due to their reliance on static initializers. This was achieved internally using link_whole, but they are still easy to abuse by external users who manually need to remember passing linker flags such as `--whole-archive` (GNU) or `-force_load` (Apple), and the obvious way to shove it in pkg-config breaks Meson due to potentially including a library's flags multiple times, and then deduplicating only the file names leaving a stale `-force_load` around causing trouble. Instead we now "prelink" the static libraries, by merging them into one object file. Since the static linker will always link entire object files, this will have the same effect as whole-archive linking (except the library won't be included if it's completely unused, which should not cause trouble since it's unused after all, and dynamic libraries behave the same way). Unfortunately Meson's native prelink functionality cannot be used due to missing (non-Apple) Clang support [1], so write our own one. While not particularly portable, it should work with Clang which is the only officially supported compiler, as well as GCC. [1] https://github.com/mesonbuild/meson/pull/14846 Change-Id: I6a6a6964a82241ce3b0b11fe8397fd451b8027f2
Lix
Lix is an implementation of Nix, a powerful package management system for Linux and other Unix systems that makes package management reliable and reproducible.
Read more about us at https://lix.systems.
Installation
On Linux and macOS the easiest way to install Lix is to run the following shell command (as a user other than root):
$ curl -sSf -L https://install.lix.systems/lix | sh -s -- install
For systems that already have a Nix implementation installed, such as NixOS systems, read our install page
Building And Developing
See our Hacking guide in our manual for instruction on how to set up a development environment and build Lix from source.
Additional Resources
- The Lix reference manual:
- Our wiki
- Matrix - #space:lix.systems
License
Lix is released under LGPL-2.1-or-later.
Description
Working fork of Lix - carries the adaptive load-aware build-remote patch. Upstream: gerrit.lix.systems
92 MiB
Languages
C++
74.9%
Python
11.7%
Nix
6.1%
Shell
3.6%
Meson
2%
Other
1.6%