From 1e3d183f9a73e66cfbb5e3121f0ab4488ef115e2 Mon Sep 17 00:00:00 2001 From: dongresource Date: Wed, 15 Dec 2021 06:02:23 +0100 Subject: [PATCH] Add hardening flags to Makefile Also tweaked the flags slightly so that CXXFLAGS are a superset of CFLAGS, all optimization levels default to -O2, and .SUFFIXES works correctly. --- Makefile | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 59f6a6e..843352d 100644 --- a/Makefile +++ b/Makefile @@ -4,9 +4,9 @@ CC=clang CXX=clang++ # -w suppresses all warnings (the part that's commented out helps me find memory leaks, it ruins performance though!) # If compiling with ASAN, invoke like this: $ LSAN_OPTIONS=suppressions=suppr.txt bin/fusion -CFLAGS=-O3 #-g3 -fsanitize=address -CXXFLAGS=-Wall -Wno-unknown-pragmas -std=c++17 -O2 -DPROTOCOL_VERSION=$(PROTOCOL_VERSION) -DGIT_VERSION=\"$(GIT_VERSION)\" -I./src -I./vendor #-g3 -fsanitize=address -LDFLAGS=-lpthread -lsqlite3 #-g3 -fsanitize=address +CFLAGS=-Wall -Wno-unknown-pragmas -O2 -fPIE -D_FORTIFY_SOURCE=1 -fstack-protector #-g3 -fsanitize=address +CXXFLAGS=$(CFLAGS) -std=c++17 -DPROTOCOL_VERSION=$(PROTOCOL_VERSION) -DGIT_VERSION=\"$(GIT_VERSION)\" -I./src -I./vendor +LDFLAGS=-lpthread -lsqlite3 -pie -Wl,-z,relro -Wl,-z,now #-g3 -fsanitize=address # specifies the name of our exectuable SERVER=bin/fusion @@ -17,9 +17,9 @@ PROTOCOL_VERSION?=104 # Windows-specific WIN_CC=x86_64-w64-mingw32-gcc WIN_CXX=x86_64-w64-mingw32-g++ -WIN_CFLAGS=-O3 #-g3 -fsanitize=address -WIN_CXXFLAGS=-D_WIN32_WINNT=0x0601 -Wall -Wno-unknown-pragmas -std=c++17 -O3 -DPROTOCOL_VERSION=$(PROTOCOL_VERSION) -DGIT_VERSION=\"$(GIT_VERSION)\" -I./src -I./vendor #-g3 -fsanitize=address -WIN_LDFLAGS=-static -lws2_32 -lwsock32 -lsqlite3 #-g3 -fsanitize=address +WIN_CFLAGS=-O2 -D_WIN32_WINNT=0x0601 -Wall -Wno-unknown-pragmas +WIN_CXXFLAGS=$(WIN_CFLAGS) -std=c++17 -DPROTOCOL_VERSION=$(PROTOCOL_VERSION) -DGIT_VERSION=\"$(GIT_VERSION)\" -I./src -I./vendor +WIN_LDFLAGS=-static -lws2_32 -lwsock32 -lsqlite3 WIN_SERVER=bin/winfusion.exe # C code; currently exclusively from vendored libraries @@ -142,7 +142,7 @@ windows : CXXFLAGS=$(WIN_CXXFLAGS) windows : LDFLAGS=$(WIN_LDFLAGS) windows : SERVER=$(WIN_SERVER) -.SUFFIX: .o .c .cpp .h .hpp +.SUFFIXES: .o .c .cpp .h .hpp .c.o: $(CC) -c $(CFLAGS) -o $@ $<