summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrzemyslaw Pawelczyk <przemoc@gmail.com>2018-01-06 01:33:13 +0100
committerPrzemyslaw Pawelczyk <przemoc@gmail.com>2018-01-06 01:33:13 +0100
commit8a11fb9f9a06c69bdcfc04c04a7c90aa6ecf8b13 (patch)
tree71599f78f3f6b8fda7c5df5b246a4d2120b05671
parent9c45845435699023ae9e55744892f84ba0a0366f (diff)
Makefile: Treat LDFLAGS as passed to the compiler, not linker directly.
-rw-r--r--Makefile14
-rw-r--r--NEWS13
2 files changed, 15 insertions, 12 deletions
diff --git a/Makefile b/Makefile
index edb1dc6..dfbacac 100644
--- a/Makefile
+++ b/Makefile
@@ -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)
diff --git a/NEWS b/NEWS
index da11575..5d276ba 100644
--- a/NEWS
+++ b/NEWS
@@ -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)
------------------------------------------------------------------------