HNNewShowAskJobs
Built with Tanstack Start
Detour: Dynamic linking on Linux without Libc(github.com)
68 points by generichuman 2 days ago | 8 comments
  • pjmlp8 hours 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.

    • generichuman6 hours ago |parent

      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.

      • pjmlp5 hours ago |parent

        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.

        • generichuman5 hours ago |parent

          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?

          • pjmlp5 hours ago |parent

            There are naturally ABI breaks between major OS versions, outside of what POSIX requires.

            • generichuman5 hours ago |parent

              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.

              • pjmlp4 hours ago |parent

                Linux is only friendly for FOSS projects, it hardly has the same stability as commercial UNIX systems for closed source software.

  • Ericson231414 hours ago

    Nest. This reminds of the problem of wishing INTERP supported $ORIGIN.