> On 1 Apr 2025, at 16:40, Laurent Bercot <ska-skaware_at_skarnet.org> wrote:
>
>> Would a dladdr solution be more elegant and Solaris-friendly?
>
> It might be Solaris-friendly enough since Solaris does not officially
> support static linking. It's probably not a bad heuristic when
> everything else fails.
>
> But elegant? Not by any means. It's a hack that assumes the binary is
> dynamically linked (which is only a valid assumption on MacOS and
> Solaris and only because of an arbitrary limitation enforced by the
> vendors), and that it has a "main" symbol - which is probably true since
> it's C, but _start would be a more reliable entry point, and even then
> it's still a convention, and...
>
> Yeah. Not going into the weeds of parsing ELF headers. It's probably
> good enough, and giving up if dladdr(main) fails sounds reasonable.
> Still, this is the kind of heuristic that has a lot of possible,
> obscure failure modes and that I'm in no hurry to add to skalibs,
> especially if its only application is to fight unnecessarily restrictive
> service launchers.
>
> --
> Laurent
>
I ran into a solid exploration of the matter on stack overflow:
https://stackoverflow.com/questions/1023306/finding-current-executables-path-without-proc-self-exe
Received on Tue Apr 01 2025 - 18:17:54 CEST