|
| 1 | +T := $(CURDIR) |
| 2 | +OUT_DIR ?= $(shell mkdir -p $(T)/build;cd $(T)/build;pwd) |
| 3 | +CC ?= gcc |
1 | 4 |
|
2 |
| -OUT_DIR ?= . |
| 5 | +CFLAGS := -g -O0 -std=gnu11 |
| 6 | +CFLAGS += -D_GNU_SOURCE |
| 7 | +CFLAGS += -DNO_OPENSSL |
| 8 | +CFLAGS += -m64 |
| 9 | +CFLAGS += -Wall -ffunction-sections |
| 10 | +CFLAGS += -Werror |
| 11 | +CFLAGS += -O2 -D_FORTIFY_SOURCE=2 |
| 12 | +CFLAGS += -Wformat -Wformat-security -fno-strict-aliasing |
| 13 | +CFLAGS += -fpie -fpic |
| 14 | +#FIXME: remove me. work-around for system() calls, which will be removed |
| 15 | +CFLAGS += -Wno-format-truncation -Wno-unused-result |
3 | 16 |
|
4 |
| -CFLAGS := -Wall |
5 | 17 | CFLAGS += -I../../devicemodel/include
|
6 | 18 | CFLAGS += -I../../devicemodel/include/public
|
7 | 19 | CFLAGS += -I../../hypervisor/include
|
8 |
| -CFLAGS += -fpie |
| 20 | + |
| 21 | +GCC_MAJOR=$(shell echo __GNUC__ | $(CC) -E -x c - | tail -n 1) |
| 22 | +GCC_MINOR=$(shell echo __GNUC_MINOR__ | $(CC) -E -x c - | tail -n 1) |
| 23 | + |
| 24 | +#enable stack overflow check |
| 25 | +STACK_PROTECTOR := 1 |
| 26 | + |
| 27 | +ifdef STACK_PROTECTOR |
| 28 | +ifeq (true, $(shell [ $(GCC_MAJOR) -gt 4 ] && echo true)) |
| 29 | +CFLAGS += -fstack-protector-strong |
| 30 | +else |
| 31 | +ifeq (true, $(shell [ $(GCC_MAJOR) -eq 4 ] && [ $(GCC_MINOR) -ge 9 ] && echo true)) |
| 32 | +CFLAGS += -fstack-protector-strong |
| 33 | +else |
| 34 | +CFLAGS += -fstack-protector |
| 35 | +endif |
| 36 | +endif |
| 37 | +endif |
9 | 38 |
|
10 | 39 | ifeq ($(RELEASE),0)
|
11 | 40 | CFLAGS += -g -DMNGR_DEBUG
|
12 | 41 | endif
|
13 | 42 |
|
14 |
| -LDFLAGS := -L$(OUT_DIR) |
15 |
| -LDFLAGS += -lacrn-mngr |
16 |
| -LDFLAGS += -lpthread |
| 43 | +LDFLAGS := -Wl,-z,noexecstack |
| 44 | +LDFLAGS += -Wl,-z,relro,-z,now |
17 | 45 | LDFLAGS += -pie
|
| 46 | +LDFLAGS += -L$(OUT_DIR) |
| 47 | +LDFLAGS += -lpthread |
| 48 | +LDFLAGS += -lacrn-mngr |
18 | 49 |
|
19 | 50 | .PHONY: all
|
20 | 51 | all: $(OUT_DIR)/libacrn-mngr.a $(OUT_DIR)/acrn_mngr.h $(OUT_DIR)/acrnctl $(OUT_DIR)/acrnd
|
@@ -42,11 +73,12 @@ clean:
|
42 | 73 | rm -f $(OUT_DIR)/acrnctl
|
43 | 74 | rm -f $(OUT_DIR)/acrn_mngr.o
|
44 | 75 | rm -f $(OUT_DIR)/libacrn-mngr.a
|
| 76 | + rm -f $(OUT_DIR)/acrnd |
45 | 77 | ifneq ($(OUT_DIR),.)
|
46 | 78 | rm -f $(OUT_DIR)/acrn_mngr.h
|
47 | 79 | rm -f $(OUT_DIR)/acrnd.service
|
| 80 | + rm -rf $(OUT_DIR) |
48 | 81 | endif
|
49 |
| - rm -f $(OUT_DIR)/acrnd |
50 | 82 |
|
51 | 83 | .PHONY: install
|
52 | 84 | install: $(OUT_DIR)/acrnctl $(OUT_DIR)/acrn_mngr.h $(OUT_DIR)/libacrn-mngr.a
|
|
0 commit comments