summarylogtreecommitdiffstats
path: root/pie.sh.in
diff options
context:
space:
mode:
Diffstat (limited to 'pie.sh.in')
-rw-r--r--pie.sh.in22
1 files changed, 22 insertions, 0 deletions
diff --git a/pie.sh.in b/pie.sh.in
new file mode 100644
index 000000000000..d39a80c3fe26
--- /dev/null
+++ b/pie.sh.in
@@ -0,0 +1,22 @@
+#!/usr/bin/bash
+#
+# pie.sh - Compile executables with address space layout randomization
+#
+
+[[ -n "$LIBMAKEPKG_BUILDENV_PIE_SH" ]] && return
+LIBMAKEPKG_BUILDENV_PIE_SH=1
+
+LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
+
+source "$LIBRARY/util/option.sh"
+
+build_options+=('pie')
+buildenv_functions+=('buildenv_pie')
+
+buildenv_lto() {
+ if check_buildoption "pie" "y"; then
+ CFLAGS+=" -fpie"
+ CXXFLAGS+=" -fpie"
+ LDFLAGS+=" -pie"
+ fi
+}