gbuild: gcc platforms: link with C compiler if no C++ files
In 5589c72b88 a problem due to linking
pyuno_wrapper with g++ was fixed: the library should not have a
dependency on libstdc++. It's possible to implement this in gbuild
directly by checking whether there are any C++ input files.
(apparently on GNU/Linux g++ implicitly links in libm too...)
Change-Id: I04dce06f796e20047ce7f5eab65e6110c0244445
This commit is contained in:
@@ -55,6 +55,12 @@ $(eval $(call gb_Executable_use_externals,oosplash,\
|
||||
|
||||
endif
|
||||
|
||||
ifeq ($(OS),LINUX)
|
||||
$(eval $(call gb_Executable_add_libs,oosplash,\
|
||||
-lm \
|
||||
))
|
||||
endif
|
||||
|
||||
ifeq ($(OS),SOLARIS)
|
||||
|
||||
$(eval $(call gb_Executable_add_libs,oosplash,\
|
||||
|
||||
@@ -112,7 +112,7 @@ endef
|
||||
define gb_LinkTarget__command_dynamiclink
|
||||
$(if $(filter Library CppunitTest,$(TARGETTYPE)),@echo No dynamic libraries should be built for iOS && exit 1, \
|
||||
mkdir -p $(dir $(1)) && \
|
||||
$(gb_CXX) \
|
||||
$(if $(CXXOBJECTS)$(OBJCXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \
|
||||
$(gb_Executable_TARGETTYPEFLAGS) \
|
||||
$(subst \d,$$,$(RPATH)) \
|
||||
$(T_LDFLAGS) \
|
||||
|
||||
@@ -126,7 +126,7 @@ gb_LinkTarget_INCLUDE +=\
|
||||
define gb_LinkTarget__command_dynamiclinkexecutable
|
||||
$(call gb_Helper_abbreviate_dirs,\
|
||||
mkdir -p $(dir $(1)) && \
|
||||
$(gb_CXX) $(strip \
|
||||
$(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) $(strip \
|
||||
$(gb_Executable_TARGETTYPEFLAGS) \
|
||||
$(if $(filter YES,$(TARGETGUI)), -mwindows, -mconsole) \
|
||||
$(T_LDFLAGS) \
|
||||
@@ -147,7 +147,7 @@ endef
|
||||
define gb_LinkTarget__command_dynamiclinklibrary
|
||||
$(call gb_Helper_abbreviate_dirs,\
|
||||
mkdir -p $(dir $(1)) && \
|
||||
$(gb_CXX) $(strip \
|
||||
$(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) $(strip \
|
||||
$(gb_Library_TARGETTYPEFLAGS) \
|
||||
$(T_LDFLAGS) \
|
||||
$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
|
||||
|
||||
@@ -36,7 +36,7 @@ gb_LinkTarget_LDFLAGS += \
|
||||
define gb_LinkTarget__command_dynamiclink
|
||||
$(call gb_Helper_abbreviate_dirs,\
|
||||
mkdir -p $(dir $(1)) && \
|
||||
$(gb_CXX) \
|
||||
$(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \
|
||||
-shared \
|
||||
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
|
||||
$(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \
|
||||
|
||||
@@ -138,7 +138,7 @@ endef
|
||||
define gb_LinkTarget__command_dynamiclink
|
||||
$(call gb_Helper_abbreviate_dirs,\
|
||||
mkdir -p $(dir $(1)) && \
|
||||
$(gb_CXX) \
|
||||
$(if $(CXXOBJECTS)$(OBJCXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \
|
||||
$(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
|
||||
$(if $(filter Bundle,$(TARGETTYPE)),$(gb_Bundle_TARGETTYPEFLAGS)) \
|
||||
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
|
||||
|
||||
@@ -188,7 +188,7 @@ endif
|
||||
define gb_LinkTarget__command_dynamiclink
|
||||
$(call gb_Helper_abbreviate_dirs,\
|
||||
mkdir -p $(dir $(1)) && \
|
||||
$(gb_CXX) \
|
||||
$(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \
|
||||
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
|
||||
$(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \
|
||||
$(subst \d,$$,$(RPATH)) \
|
||||
|
||||
@@ -184,10 +184,11 @@ endif
|
||||
|
||||
# note that `cat $(extraobjectlist)` is needed to build with older gcc versions, e.g. 4.1.2 on SLED10
|
||||
# we want to use @$(extraobjectlist) in the long run
|
||||
# link with C compiler if there are no C++ files (pyuno_wrapper depends on this)
|
||||
define gb_LinkTarget__command_dynamiclink
|
||||
$(call gb_Helper_abbreviate_dirs,\
|
||||
mkdir -p $(dir $(1)) && \
|
||||
$(gb_CXX) \
|
||||
$(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \
|
||||
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
|
||||
$(if $(filter-out $(foreach lib,frm scfilt wpftdraw,$(call gb_Library_get_linktargetname,$(lib))),$*),$(gb_LTOFLAGS)) \
|
||||
$(if $(SOVERSION),-Wl$(COMMA)--soname=$(notdir $(1)).$(SOVERSION)) \
|
||||
|
||||
Reference in New Issue
Block a user