Hi, Jeff King wrote: > I wonder if this points to this patch touching the wrong level. These > compiler flags are a thing that _some_ builds want (i.e., production > builds where people care most about security and not about debugging), > but not necessarily all. > > I'd have expected this to be tweakable by a Makefile knob (either a > specific knob, or just the caller setting the right CFLAGS etc), and > then for the builds of Git for Windows to turn those knobs when making a > package to distribute. > > Our internal package builds at GitHub all have this in their config.mak > (for Linux, of course): > > CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 > CFLAGS += -fstack-protector-strong > > CFLAGS += -fpie > LDFLAGS += -z relro -z now > LDFLAGS += -pie > > and I wouldn't be surprised if other binary distributors (like the > Debian package) do something similar. Yes, the Debian package uses CFLAGS := -Wall \ $(shell dpkg-buildflags --get CFLAGS) \ $(shell dpkg-buildflags --get CPPFLAGS) and then passes CFLAGS='$(CFLAGS)' to "make". That means we're using -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 Dscho's suggestion for the Windows build sounds fine to me (if checking for -Og, too). Maybe it would make sense to factor out a makefile variable for this, that could be used for builds on other platforms, too. That way, the autodetection can be in one place, and there is a standard way to override it when the user wants something else. Thanks, Jonathan