https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83074
--- Comment #7 from Stefan Vargyas <stvar at yahoo dot com> --- > > libc.so.6 is a shared library, not a PIE. It is normally linked with -shared, > just arranged to have .interp section and a meaningful e_entry in Ehdr. > PIE is something significantly different, in particular it is the executable, > albeit position independent, e.g. required to be the first in symbol search > scope so that its symbols bind locally. > Jakub, thank you very much for your deeply insightful info. I should have had a look at glibc prior to using the `-pie' hackery for to achive the desired result of running 'foo.so' by itself. The right solution (at least on GNU/Linux ELF platforms) is to rely on `-shared', `-Wl,--entry' and a proper '.interp' section in the ELF file built. (E.g. one cannot get rid of the issues seen above implied by '__libc_csu_{init,fini}'.)