diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 10 |
1 files changed, 8 insertions, 2 deletions
| @@ -43,6 +43,12 @@ include Mk/gzip.mk | |||
| 43 | CFLAGS?=-O3 | 43 | CFLAGS?=-O3 |
| 44 | 44 | ||
| 45 | OT_CFLAGS+=-Wall -Wextra -Wwrite-strings -pipe -pthread | 45 | OT_CFLAGS+=-Wall -Wextra -Wwrite-strings -pipe -pthread |
| 46 | |||
| 47 | HARDENING=-fstack-protector-strong -fPIE -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 | ||
| 48 | HARDENING_LD=-pie | ||
| 49 | # Full RELRO is free at runtime and makes the GOT read-only, but Apple's linker | ||
| 50 | # does not accept -z, so enable it for the GNU-style linkers (Linux, the BSDs): | ||
| 51 | #HARDENING_LD+=-Wl,-z,relro,-z,now | ||
| 46 | OT_LDFLAGS+=-pthread | 52 | OT_LDFLAGS+=-pthread |
| 47 | 53 | ||
| 48 | OPTS_debug=-D_DEBUG -g -ggdb | 54 | OPTS_debug=-D_DEBUG -g -ggdb |
| @@ -65,11 +71,11 @@ BUILDDEPS=Makefile $(BUILDSTAMP) | |||
| 65 | all: $(BINARY) $(BINARY).debug | 71 | all: $(BINARY) $(BINARY).debug |
| 66 | 72 | ||
| 67 | $(BINARY): $(SOURCES) $(HEADERS) $(BUILDDEPS) | 73 | $(BINARY): $(SOURCES) $(HEADERS) $(BUILDDEPS) |
| 68 | $(CC) -o $@ $(CFLAGS) $(COMPILE) $(SOURCES) $(LINK) | 74 | $(CC) -o $@ $(CFLAGS) $(COMPILE) $(HARDENING) $(SOURCES) $(LINK) $(HARDENING_LD) |
| 69 | $(STRIP) $@ | 75 | $(STRIP) $@ |
| 70 | 76 | ||
| 71 | $(BINARY).debug: $(SOURCES) $(HEADERS) $(BUILDDEPS) | 77 | $(BINARY).debug: $(SOURCES) $(HEADERS) $(BUILDDEPS) |
| 72 | $(CC) -o $@ $(OPTS_debug) $(COMPILE) $(SOURCES) $(LINK) | 78 | $(CC) -o $@ $(OPTS_debug) $(COMPILE) $(HARDENING) $(SOURCES) $(LINK) $(HARDENING_LD) |
| 73 | 79 | ||
| 74 | $(BUILDSTAMP): FORCE | 80 | $(BUILDSTAMP): FORCE |
| 75 | @echo "$(CFLAGS) $(COMPILE) $(LINK)" | cmp -s - $@ 2>/dev/null || echo "$(CFLAGS) $(COMPILE) $(LINK)" > $@ | 81 | @echo "$(CFLAGS) $(COMPILE) $(LINK)" | cmp -s - $@ 2>/dev/null || echo "$(CFLAGS) $(COMPILE) $(LINK)" > $@ |
