 
	
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCH v3 2/3] build: Add option to toggle the stack protection
 From: Vlad-Andrei BĂDOIU (78692) <vlad_andrei.badoiu@xxxxxxxxxxxxxxx>
This patch adds build option to select different stack protection
levels.
Signed-off-by: Vlad-Andrei Badoiu <vlad_andrei.badoiu@xxxxxxxxxxxxxxx>
---
 Config.uk   | 30 ++++++++++++++++++++++++++++++
 Makefile.uk | 13 +++++++++++--
 2 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/Config.uk b/Config.uk
index 3235b914..daa76c53 100644
--- a/Config.uk
+++ b/Config.uk
@@ -64,6 +64,36 @@ config OPTIMIZE_SIZE
                Optimize code for size.
 endchoice
 
+choice
+       prompt "Stack protector level"
+       default STACKPROTECTOR_NONE
+       help
+         Set the stack protector level
+
+config STACKPROTECTOR_NONE
+       bool "None"
+       help
+               Do not use stack protector, use -fno-stack-protector.
+
+config STACKPROTECTOR_REGULAR
+       bool "Regular"
+       select LIBUKSP
+       help
+               Regulat stack protector, use -fstack-protector.
+
+config STACKPROTECTOR_STRONG
+       bool "Strong"
+       select LIBUKSP
+       help
+               Strong stack protector, use -fstack-protector-strong.
+
+config STACKPROTECTOR_ALL
+       bool "All"
+       select LIBUKSP
+       help
+               Protect all functions, use -fstack-protector-all.
+endchoice
+
 comment "Hint: Specify a CPU type to get most benefits from performance 
optimization"
        depends on OPTIMIZE_PERF && (MARCH_X86_64_GENERIC || 
MARCH_ARM64_GENERIC)
 
diff --git a/Makefile.uk b/Makefile.uk
index 67c372e5..d8138d4c 100644
--- a/Makefile.uk
+++ b/Makefile.uk
@@ -8,12 +8,12 @@ ASFLAGS     += -U __linux__ -U __FreeBSD__ -U __sun__ 
-D__ASSEMBLY__
 ASINCLUDES  += -nostdinc -nostdlib -I$(CONFIG_UK_BASE)/include
 
 CFLAGS      += -U __linux__ -U __FreeBSD__ -U __sun__
-CFLAGS      += -fno-stack-protector -fno-omit-frame-pointer -fno-tree-sra
+CFLAGS      += -fno-omit-frame-pointer -fno-tree-sra
 CFLAGS      += -Wall -Wextra
 CINCLUDES   += -nostdinc -nostdlib -I$(CONFIG_UK_BASE)/include
 
 CXXFLAGS    += -U __linux__ -U __FreeBSD__ -U __sun__
-CXXFLAGS    += -fno-stack-protector -fno-omit-frame-pointer -fno-tree-sra
+CXXFLAGS    += -fno-omit-frame-pointer -fno-tree-sra
 CXXFLAGS    += -Wall -Wextra
 CXXINCLUDES += -nostdinc -nostdlib -I$(CONFIG_UK_BASE)/include
 
@@ -28,6 +28,15 @@ GOCINCLUDES += -nostdinc -nostdlib 
-I$(CONFIG_UK_BASE)/include
 LIBLDFLAGS  += -nostdinc -nostdlib -Wl,--omagic -Wl,-r -Wl,-d 
-Wl,--build-id=none
 LDFLAGS     += -nostdinc -nostdlib -Wl,--omagic -Wl,--build-id=none
 
+CFLAGS-$(CONFIG_STACKPROTECTOR_NONE)      += -fno-stack-protector
+CXXFLAGS-$(CONFIG_STACKPROTECTOR_NONE)    += -fno-stack-protector
+CFLAGS-$(CONFIG_STACKPROTECTOR_REGULAR)   += -fstack-protector 
-mstack-protector-guard=global
+CXXFLAGS-$(CONFIG_STACKPROTECTOR_REGULAR) += -fstack-protector 
-mstack-protector-guard=global
+CFLAGS-$(CONFIG_STACKPROTECTOR_STRONG)    += -fstack-protector-strong 
-mstack-protector-guard=global
+CXXFLAGS-$(CONFIG_STACKPROTECTOR_STRONG)  += -fstack-protector-strong 
-mstack-protector-guard=global
+CFLAGS-$(CONFIG_STACKPROTECTOR_ALL)       += -fstack-protector-all 
-mstack-protector-guard=global
+CXXFLAGS-$(CONFIG_STACKPROTECTOR_ALL)     += -fstack-protector-all 
-mstack-protector-guard=global
+
 CFLAGS-$(CONFIG_OPTIMIZE_NONE)            += -O0 -fno-optimize-sibling-calls 
-fno-tree-vectorize
 CXXFLAGS-$(CONFIG_OPTIMIZE_NONE)          += -O0 -fno-optimize-sibling-calls 
-fno-tree-vectorize
 GOCFLAGS-$(CONFIG_OPTIMIZE_NONE)          += -O0 -fno-optimize-sibling-calls 
-fno-tree-vectorize
-- 
2.20.1
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
 
 | 
|  | Lists.xenproject.org is hosted with RackSpace, monitoring our |