summaryrefslogtreecommitdiff
path: root/Mk/Features/stack_autoinit.mk
diff options
context:
space:
mode:
Diffstat (limited to 'Mk/Features/stack_autoinit.mk')
-rw-r--r--Mk/Features/stack_autoinit.mk23
1 files changed, 23 insertions, 0 deletions
diff --git a/Mk/Features/stack_autoinit.mk b/Mk/Features/stack_autoinit.mk
new file mode 100644
index 000000000000..4d79416dbcce
--- /dev/null
+++ b/Mk/Features/stack_autoinit.mk
@@ -0,0 +1,23 @@
+# The STACK_AUTOINIT feature mimics the corresponding FreeBSD basesystem feature.
+#
+# This enables a compiler specific option to automatically initialize
+# local (automatic) variables to prevent the use of uninitialized memory.
+#
+# Variables that can be used:
+#
+# WITH_STACK_AUTOINIT Enable for all ports.
+# WITH_STACK_AUTOINIT_PORTS Enable for specified category/port-name
+# STACK_AUTOINIT_TYPE Valid options: zero (default), pattern, unitialized
+#
+
+.if !defined(_STACK_AUTOINIT_MK_INCLUDED)
+_STACK_AUTOINIT_MK_INCLUDED= yes
+STACK_AUTOINIT_Include_MAINTAINER= netchild@FreeBSD.org
+
+STACK_AUTOINIT_TYPE?= zero
+
+. if !defined(STATIC_AUTOINIT_UNSAFE)
+CFLAGS+= -ftrivial-auto-var-init=${STACK_AUTOINIT_TYPE}
+CXXFLAGS+= -ftrivial-auto-var-init=${STACK_AUTOINIT_TYPE}
+. endif
+.endif