From: Alan Modra Date: Thu, 29 Feb 2024 22:30:27 +0000 (+1030) Subject: PR19871, description of --pie X-Git-Tag: gdb-15-branchpoint~831 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d5c5b27095e3ba5bf589ee3ecf1d22c7ba9212ab;p=thirdparty%2Fbinutils-gdb.git PR19871, description of --pie Say why we even mention shared libraries here (ET_DYN), and clarify symbol resolution. There are of course many other ways that PIEs resemble PDEs more closely than shared libraries. PR 19871 * ld.texi (-pie): Clarify. --- diff --git a/ld/ld.texi b/ld/ld.texi index 3cba778c9fb..6f234752278 100644 --- a/ld/ld.texi +++ b/ld/ld.texi @@ -2298,12 +2298,13 @@ the i386 PE and ELF targetted ports of the linker. @item -pie @itemx --pic-executable @cindex position independent executables -Create a position independent executable. This is currently only supported on -ELF platforms. Position independent executables are similar to shared -libraries in that they are relocated by the dynamic linker to the virtual -address the OS chooses for them (which can vary between invocations). Like -normal dynamically linked executables they can be executed and symbols -defined in the executable cannot be overridden by shared libraries. +Create a position independent executable. This is currently only +supported on ELF platforms. Position independent executables are +relocated by the dynamic linker to the virtual address the OS chooses +for them, which can vary between invocations. They are marked ET_DYN +in the ELF file header, but differ from shared libraries in a number +of ways. In particular, defined symbols in a PIE by default can not +be overridden by another object as they can be in a shared library. @kindex -no-pie @item -no-pie