PR19871, description of --pie

Message ID ZeELNdrOycYVKzVC@squeak.grove.modra.org
State New
Headers
Series PR19871, description of --pie |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm warning Patch is already merged
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 warning Patch is already merged

Commit Message

Alan Modra Feb. 29, 2024, 10:54 p.m. UTC
  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.
  

Patch

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