From 49975380c5a6ffeceffe0e002a9a63171145053e Mon Sep 17 00:00:00 2001 From: zhangsong <zhangsong34@huawei.com> Date: Fri, 29 Jan 2021 11:31:06 +0800 Subject: [PATCH] syscontainer-tools: build security option Signed-off-by: zhangsong <zhangsong34@huawei.com> --- Makefile | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 4b3af7d..b7c45b2 100644 --- a/Makefile +++ b/Makefile @@ -20,8 +20,13 @@ VERSION := $(shell cat ./VERSION) BEP_DIR=/tmp/syscontainer-tools-build-bep BEP_FLAGS=-tmpdir=/tmp/syscontainer-tools-build-bep -GO_LDFLAGS="-w -buildid=IdByiSula -extldflags -static $(BEP_FLAGS) -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -ENV = GOPATH=${GOPATH} CGO_ENABLED=1 +GO_LDFLAGS="-buildid=IdByiSula $(BEP_FLAGS) -extldflags=-static -extldflags=-Wl,-z,relro,-z,now -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" + +ENV = GOPATH=${GOPATH} \ + CGO_ENABLED=1 \ + CGO_CFLAGS="-fstack-protector-strong -fPIE" \ + CGO_LDFLAGS_ALLOW='-Wl,-z,relro,-z,now' \ + CGO_LDFLAGS="-Wl,-z,relro,-z,now -Wl,-z,noexecstack" ## PLEASE be noticed that the vendor dir can only work with golang > 1.6 !! @@ -34,12 +39,12 @@ init: syscontainer-tools: $(SOURCES) | $(DEPS_LINK) @echo "Making syscontainer-tools..." - ${ENV} go build -mod=vendor -tags ${TAGS} -ldflags ${GO_LDFLAGS} -o build/syscontainer-tools . + ${ENV} go build -buildmode=pie -mod=vendor -tags ${TAGS} -ldflags ${GO_LDFLAGS} -o build/syscontainer-tools . @echo "Done!" syscontainer-hooks: $(SOURCES) | $(DEPS_LINK) @echo "Making syscontainer-hooks..." - ${ENV} go build -mod=vendor -tags ${TAGS} -ldflags ${GO_LDFLAGS} -o build/syscontainer-hooks ./hooks/syscontainer-hooks + ${ENV} go build -buildmode=pie -mod=vendor -tags ${TAGS} -ldflags ${GO_LDFLAGS} -o build/syscontainer-hooks ./hooks/syscontainer-hooks @echo "Done!" localtest: -- 1.8.3.1