aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/markdown/Builtin-options.md1
-rw-r--r--docs/markdown/Reference-manual.md1
-rw-r--r--docs/markdown/snippets/pie.md6
3 files changed, 8 insertions, 0 deletions
diff --git a/docs/markdown/Builtin-options.md b/docs/markdown/Builtin-options.md
index 55d82a5..ce14304 100644
--- a/docs/markdown/Builtin-options.md
+++ b/docs/markdown/Builtin-options.md
@@ -82,6 +82,7 @@ platforms or with all compilers:
| b_pgo | off | off, generate, use | Use profile guided optimization |
| b_sanitize | none | see below | Code sanitizer to use |
| b_staticpic | true | true, false | Build static libraries as position independent |
+| b_pie | false | true, false | Build position-independent executables (since 0.49.0)|
The value of `b_sanitize` can be one of: `none`, `address`, `thread`,
`undefined`, `memory`, `address,undefined`.
diff --git a/docs/markdown/Reference-manual.md b/docs/markdown/Reference-manual.md
index e4c9303..64ed9d1 100644
--- a/docs/markdown/Reference-manual.md
+++ b/docs/markdown/Reference-manual.md
@@ -552,6 +552,7 @@ be passed to [shared and static libraries](#library).
- `d_unittest`, when set to true, the D modules are compiled in debug mode
- `d_module_versions` list of module version identifiers set when compiling D sources
- `d_debug` list of module debug identifiers set when compiling D sources
+- `pie` *(added 0.49.0)* build a position-independent executable
The list of `sources`, `objects`, and `dependencies` is always
flattened, which means you can freely nest and add lists while
diff --git a/docs/markdown/snippets/pie.md b/docs/markdown/snippets/pie.md
new file mode 100644
index 0000000..a9be174
--- /dev/null
+++ b/docs/markdown/snippets/pie.md
@@ -0,0 +1,6 @@
+## Position-independent executables
+
+When `b_pie` option, or `executable()`'s `pie` keyword argument is set to
+`true`, position-independent executables are built. All their objects are built
+with `-fPIE` and the executable is linked with `-pie`. Any static library they
+link must be built with `pic` set to `true` (see `b_staticpic` option).