acrn-hypervisor/tools/acrnlog/Makefile
Tw 33ecdd7389 Makefile: undefine _FORTIFY_SOURCE prior using it
Currently, we are enforcing the _FORTIFY_SOURCE=2 without any
previous detection if the macro has been already defined, e.g.
by environment, or is just enabled by compiler by default on
some distributions (e.g. Gentoo).

This could result in the error like this:
<command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
<built-in>: note: this is the location of the previous definition

Tracked-On: #2344
Signed-off-by: Tw <wei.tan@intel.com>
Reviewed-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Yin Fengwei <fengwei.yin@intel.com>
2019-02-28 11:56:45 +08:00

55 lines
1.5 KiB
Makefile

T := $(CURDIR)
OUT_DIR ?= $(shell mkdir -p $(T)/build;cd $(T)/build;pwd)
CC ?= gcc
LOG_CFLAGS := -g -O0 -std=gnu11
LOG_CFLAGS += -D_GNU_SOURCE
LOG_CFLAGS += -DNO_OPENSSL
LOG_CFLAGS += -m64
LOG_CFLAGS += -Wall -ffunction-sections
LOG_CFLAGS += -Werror
LOG_CFLAGS += -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
LOG_CFLAGS += -Wformat -Wformat-security -fno-strict-aliasing
LOG_CFLAGS += -fpie -fpic
LOG_CFLAGS += $(CFLAGS)
GCC_MAJOR=$(shell echo __GNUC__ | $(CC) -E -x c - | tail -n 1)
GCC_MINOR=$(shell echo __GNUC_MINOR__ | $(CC) -E -x c - | tail -n 1)
#enable stack overflow check
STACK_PROTECTOR := 1
ifdef STACK_PROTECTOR
ifeq (true, $(shell [ $(GCC_MAJOR) -gt 4 ] && echo true))
LOG_CFLAGS += -fstack-protector-strong
else
ifeq (true, $(shell [ $(GCC_MAJOR) -eq 4 ] && [ $(GCC_MINOR) -ge 9 ] && echo true))
LOG_CFLAGS += -fstack-protector-strong
else
LOG_CFLAGS += -fstack-protector
endif
endif
endif
LOG_LDFLAGS := -Wl,-z,noexecstack
LOG_LDFLAGS += -Wl,-z,relro,-z,now
LOG_LDFLAGS += -pie
LOG_LDFLAGS += $(LDFLAGS)
all:
$(CC) -g acrnlog.c -o $(OUT_DIR)/acrnlog -lpthread $(LOG_CFLAGS) $(LOG_LDFLAGS)
cp acrnlog.service $(OUT_DIR)/acrnlog.service
clean:
rm -f $(OUT_DIR)/acrnlog
ifneq ($(OUT_DIR),.)
rm -f $(OUT_DIR)/acrnlog.service
rm -rf $(OUT_DIR)
endif
install: $(OUT_DIR)/acrnlog
install -d $(DESTDIR)/usr/bin
install -t $(DESTDIR)/usr/bin $(OUT_DIR)/acrnlog
install -d $(DESTDIR)/usr/lib/systemd/system
install -p -D -m 0644 $(OUT_DIR)/acrnlog.service $(DESTDIR)/usr/lib/systemd/system