Detour: Dynamic linking on Linux without Libc
78 points
5 days ago
| 2 comments
| github.com
| HN
pjmlp
4 days ago
[-]
It is possible to have a dynamic environment without dynamic linking, that is how old UNIXes did it in the past via OS IPC, nowadays D-BUS as well, the problem then becomes the higher resource consumption when every little service is a process being started, and talked via IPC instead of a jump call.

Still quite relevant when security and host stability matters, though.

reply
generichuman
3 days ago
[-]
That doesn't give you independence from the libc, does it? By extension you lose distro-independence too (not sure if Detour supports musl-based ones, need to run tests).

Agree that IPC will be more secure and stable though.

I imagine Detour is mostly targeting closed source projects trying to run on as many distros as possible.

reply
pjmlp
3 days ago
[-]
No UNIX has independence from the libc, Linux is the exception to the UNIX rule that libc is the OS API, traditionally syscalls aren't ABI stable.

This approach isn't portable to other UNIX like platforms.

reply
generichuman
3 days ago
[-]
I'm only thinking in terms of Linux distributions since I never needed to deploy software on other UNIXes (excluding macOS, but Apple constantly forces changes anyway).

Do other UNIXes have any problems similar to glibc ABI problems that Linux users experience, or do they stabilise the libc ABI similar to how Linux keeps syscalls stable?

reply
pjmlp
3 days ago
[-]
There are naturally ABI breaks between major OS versions, outside of what POSIX requires.
reply
generichuman
3 days ago
[-]
I will be even more impressed with linux syscall stability if your implication is that (some) people need to recompile their software for each major update on all other UNIXes.
reply
pjmlp
3 days ago
[-]
Linux is only friendly for FOSS projects, it hardly has the same stability as commercial UNIX systems for closed source software.
reply
Ericson2314
4 days ago
[-]
Nest. This reminds of the problem of wishing INTERP supported $ORIGIN.
reply