3 ms·
Suckless has a project to get a fully static compiled Linux environment. Unfortunately I don't know how far that have come
by iveqy 6y ago
Suckless has a project to get a fully static compiled Linux environment. Unfortunately I don't know how far that have come
- __s 6y agohttps://sta.li https://sta.li
- mforney 6y agoI don't think stali has seen any activity in several years. As far as I know, the only completely statically linked Linux distribution that is actively developed is my own project (inspired by stali), oasis: https://github.com/oasislinux/oasis https://github.com/oasislinux/oasis
- loeg 6y agoDo you static-link Linux? :-)
- mforney 6y agoI'm not sure what you mean here. Are you asking whether I build my kernel drivers as modules or built-in? Personally, I build my kernels without modules, but I've never heard of that technique being called "static-linking Linux".
- loeg 6y agoYes, exactly. Loadable modules are a form of dynamic linking. I've never heard it called "static-linking Linux," either, but I think static / dynamic linking is well understood, and I'm happy you understood the meaning from context.
- cryptonector 6y agoThe thing that's missing is static link semantics that don't suck.
- cosmojg 6y agoSo let's fix the problem! How can we get better semantics? Have any hypothetical solutions in mind?
- cryptonector 6y agoI've outlined it already, but let me do it again for you: 1) when making a static link archive (a .a file), include a .o with a static symbol(s) whose values(s) records the metadata that ELF would have recorded, which here is: a) dependencies, b) how to find them, c) the mapfile / version-script (at least which symbols are symbolic, protected, or demoted to local, and which, if any, are interposers. 2) on final link-edits only the direct dependency -lfoo arguments should be needed, and then link-editor should find the dependencies' dependencies... by looking at the metadata recorded in the .a files. Really, it's very simple. libstool is a very bad attempt at layering this on top of the linker (recording metadata in .la files), but it doesn't work well. This functionality has to be in the linkers.
- saagarjha 6y agoIs it literally called libstool…