rules.mk: Use $(CXX) instead of $(LD) for linking

CXX is used for linking instead of LD now, since LD might point to the real
linker, which doesn't understand -Wl,--blah options, of course.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2019-06-15 10:03:22 +00:00
commit b1187d9d8a

View file

@ -287,7 +287,7 @@ $(VERSION_SCRIPT):
ifneq ($(TARGET),mingw) ifneq ($(TARGET),mingw)
$(LIB_SO): $(VERSION_SCRIPT) $(LIB_A) $(TOPDIR)/dir_build_LIB.done $(LIB_SO): $(VERSION_SCRIPT) $(LIB_A) $(TOPDIR)/dir_build_LIB.done
$(LD) -shared -Wl,--whole-archive,-soname=$(notdir $@) $(VERSION_SCRIPT) $(LIB_A) -Wl,--no-whole-archive \ $(CXX) -shared -Wl,--whole-archive,-soname=$(notdir $@) $(VERSION_SCRIPT) $(LIB_A) -Wl,--no-whole-archive \
$(filter-out -l$(LIBNAME),$(REAL_LDFLAGS)) -o $@ $(filter-out -l$(LIBNAME),$(REAL_LDFLAGS)) -o $@
else else
$(WINRES_RC): $(WINRES_RC_TMPL) $(WINRES_RC): $(WINRES_RC_TMPL)
@ -303,7 +303,7 @@ $(WINRES_O): $(WINRES_RC)
$(WINDRES) $^ -o $@ $(WINDRES) $^ -o $@
$(LIB_SO): $(VERSION_SCRIPT) $(WINRES_O) $(LIB_A) $(TOPDIR)/dir_build_LIB.done $(LIB_SO): $(VERSION_SCRIPT) $(WINRES_O) $(LIB_A) $(TOPDIR)/dir_build_LIB.done
$(LD) -shared -Wl,--whole-archive,--out-implib,$(shell echo $(LIB_A) | \ $(CXX) -shared -Wl,--whole-archive,--out-implib,$(shell echo $(LIB_A) | \
$(SED) 's/-static//'),--output-def,$(LIB_DEF) $(VERSION_SCRIPT) $(LIB_A) $(WINRES_O) \ $(SED) 's/-static//'),--output-def,$(LIB_DEF) $(VERSION_SCRIPT) $(LIB_A) $(WINRES_O) \
-Wl,--no-whole-archive $(filter-out -l$(LIBNAME),$(REAL_LDFLAGS)) -o $@ -Wl,--no-whole-archive $(filter-out -l$(LIBNAME),$(REAL_LDFLAGS)) -o $@
$(MSVCPP_IMPLIB): $(LIB_SO) $(MSVCPP_IMPLIB): $(LIB_SO)