> On 1 Apr 2025, at 16:40, Laurent Bercot <[email protected]> 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

Reply via email to