diff options
author | Przemyslaw Pawelczyk <przemoc@gmail.com> | 2018-01-06 01:33:13 +0100 |
---|---|---|
committer | Przemyslaw Pawelczyk <przemoc@gmail.com> | 2018-01-06 01:33:13 +0100 |
commit | 8a11fb9f9a06c69bdcfc04c04a7c90aa6ecf8b13 (patch) | |
tree | 71599f78f3f6b8fda7c5df5b246a4d2120b05671 | |
parent | 9c45845435699023ae9e55744892f84ba0a0366f (diff) |
Makefile: Treat LDFLAGS as passed to the compiler, not linker directly.
-rw-r--r-- | Makefile | 14 | ||||
-rw-r--r-- | NEWS | 13 |
2 files changed, 15 insertions, 12 deletions
@@ -159,9 +159,6 @@ endif CC_PARAMS = $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) CXX_PARAMS = $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -### Helpers -comma := , - ### Final flags ifneq ($(origin CFLAGS),environment) CFLAGS = $(OPTIONAL_FLAGS) @@ -173,13 +170,6 @@ override CFLAGS += $(MUSTHAVE_FLAGS) $(MUSTHAVE_CFLAGS) \ $(if $(INCS_DIR),-I$(INCS_DIR),) -I$(SRCS_DIR) override CXXFLAGS += $(MUSTHAVE_FLAGS) $(MUSTHAVE_CXXFLAGS) \ $(if $(INCS_DIR),-I$(INCS_DIR),) -I$(SRCS_DIR) -override LDFLAGS := $(subst -Wl$(comma),,$(LDFLAGS)) -ifneq ($(origin CCLDFLAGS),environment) -CCLDFLAGS := $(addprefix -Wl$(comma),$(LDFLAGS)) -endif -ifneq ($(origin CXXLDFLAGS),environment) -CXXLDFLAGS := $(addprefix -Wl$(comma),$(LDFLAGS)) -endif vpath %.h $(SRCS_DIR) $(INCS_DIR) vpath %.c $(SRCS_DIR) @@ -212,7 +202,7 @@ ifeq ($$($(1)_COMP),CC) else @echo " CXXLD $$@" endif - $$(HIDE)$$($$($(1)_COMP)LD) $$($$($(1)_COMP)LDFLAGS) $$(TARGET_ARCH) \ + $$(HIDE)$$($$($(1)_COMP)LD) $$(LDFLAGS) $$(TARGET_ARCH) \ -o $$@ $$(filter %.o,$$^) \ -Wl,-Bstatic $$($(1)_SLIBS) -Wl,-Bdynamic $$($(1)_DLIBS) @@ -256,7 +246,7 @@ ifeq ($$($(1)_COMP),CC) else @echo " CXXLD $$@" endif - $$(HIDE)$$($$($(1)_COMP)LD) $$($$($(1)_COMP)LDFLAGS) $$(TARGET_ARCH) \ + $$(HIDE)$$($$($(1)_COMP)LD) $$(LDFLAGS) $$(TARGET_ARCH) \ -shared -Wl,-soname,$$($(1)_SONAME) \ -o $$@ $$(filter %.o,$$^) \ -Wl,-Bstatic $$($(1)_SLIBS) -Wl,-Bdynamic $$($(1)_DLIBS) @@ -4,6 +4,19 @@ Latest stuff * Support building on systems with undefined PATH_MAX, e.g. GNU Hurd. Simple, but not ideal solution yet - PATH_MAX is assumed to be 4096. + * Stop assuming that LDFLAGS has flags only for the linker (LD). + It used to be true long time ago, when these flags were passed + directly to ld. Nowadays (for quite many years already) it happens + differently and ld is almost never called directly during build, + because it's the compiler that is used for performing linking stage + (so called CCLD, practically almost always the same as CC). + + The build process was already using CCLD (defaulting to CC's value), + but was prefixing all unprefixed flags in LDFLAGS with -Wl, prefix, + making it impossible to pass non-linker flags via LDFLAGS to CCLD. + No more! Now it's assumed that LDFLAGS are meant to be passed to + the compiler, so linker flags require explicit -Wl, prefix. + v1.1.1a (2018-01-02) ------------------------------------------------------------------------ |