

Btw, ld.so
is a symlink to ld-linux-x86-64.so.2
at least on my system. It is an statically linked executable. The ld.so
is, in simpler words, an interpreter for the ELF format and you can run it:
ld.so --help
Entry point address: 0x1d780
Which seems to be contained in the only executable section of ld.so
LOAD 0x0000000000001000 0x0000000000001000 0x0000000000001000
0x0000000000028bb5 0x0000000000028bb5 R E 0x1000
I intended this an sarcastic example; I think it’s worse than putting the main outside of the branch because of the extra indent-level. It does have an upside that the
main()
doesn’t exist if you try import this as an module.