salhelper/Library_salhelper.mk | 26 +------------------------- solenv/gbuild/Deliver.mk | 4 ++-- solenv/gbuild/Library.mk | 14 ++++++++++++++ solenv/gbuild/platform/OPENBSD_INTEL_GCC.mk | 5 ++++- solenv/gbuild/platform/macosx.mk | 6 ++++-- solenv/gbuild/platform/solaris.mk | 4 +++- solenv/gbuild/platform/unxgcc.mk | 5 ++++- 7 files changed, 32 insertions(+), 32 deletions(-)
New commits: commit f3b7bfcef472ed31b341c008793d96ed2bafae4b Author: Michael Stahl <mst...@redhat.com> Date: Thu Dec 15 22:11:59 2011 +0100 salhelper: s/hack/gb_Library_set_soversion_script/ diff --git a/salhelper/Library_salhelper.mk b/salhelper/Library_salhelper.mk index c77d1f0..d98cd22 100644 --- a/salhelper/Library_salhelper.mk +++ b/salhelper/Library_salhelper.mk @@ -52,30 +52,6 @@ $(eval $(call gb_Library_add_exception_objects,salhelper,\ # Solaris would need something like this, too. Its backwards compatibility is # broken for now: -ifeq ($(OS),LINUX) - -$(eval $(call gb_Library_add_ldflags,salhelper, \ - -Wl$(COMMA)--soname=libuno_salhelpergcc3.so.3 \ - -Wl$(COMMA)--version-script=$(SRCDIR)/salhelper/source/gcc3.map \ -)) - -$(call gb_LinkTarget_get_target,$(call \ -gb_Library_get_linktargetname,salhelper)): $(SRCDIR)/salhelper/source/gcc3.map - -endif - -# A hack to generate the soname symlink in the solver: - -ifneq ($(OS),WNT) - -$(call gb_Library_get_target,salhelper): | \ - $(call gb_Library_get_target,salhelper).3 - -$(call gb_Library_get_target,salhelper).3: - $(call gb_Helper_abbreviate_dirs,rm -f $@) - $(call gb_Helper_abbreviate_dirs, \ - ln -s $(notdir $(call gb_Library_get_target,salhelper)) $@) - -endif +$(eval $(call gb_Library_set_soversion_script,salhelper,3,$(SRCDIR)/salhelper/source/gcc3.map)) # vim: set noet sw=4 ts=4: commit 039cdb19e69b59b95609025c2d23cdb84f5c73c0 Author: Michael Stahl <mst...@redhat.com> Date: Thu Dec 15 22:09:51 2011 +0100 gbuild: add gb_Library_set_soversion_script: This allows for setting a SONAME and version script, which is required for UNO runtime libraries where we want to maintain a stable ABI. The old build system did apparently not set an SONAME on MacOSX or Solaris, so don't do that here either. diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk index 82daae1..d491dd2 100644 --- a/solenv/gbuild/Library.mk +++ b/solenv/gbuild/Library.mk @@ -77,6 +77,20 @@ $(call gb_Deliver_add_deliverable,$(call gb_Library_get_target,$(1)),$(call gb_L endef +define gb_Library_set_soversion_script +$(if $(2),,$(call gb_Output_error,gb_Library_set_soversion_script: no version)) +$(if $(3),,$(call gb_Output_error,gb_Library_set_soversion_script: no script)) +$(call gb_LinkTarget_get_target,$(call gb_Library_get_linktargetname,$(1))) : \ + $(3) +$(call gb_Library_get_target,$(1)) : SOVERSION := $(2) +$(call gb_Library_get_target,$(1)) : SOVERSIONSCRIPT := $(3) +$(call gb_Library_get_target,$(1)) \ +$(call gb_Library_get_clean_target,$(1)) : \ + AUXTARGETS += $(call gb_Library_get_target,$(1)).$(2) +$(call gb_LinkTarget_set_auxtargets,$(call gb_Library_get_linktargetname,$(1)),\ + $(call gb_LinkTarget_get_target,$(call gb_Library_get_linktargetname,$(1))).$(2)) +endef + define gb_Library_set_componentfile $(call gb_ComponentTarget_ComponentTarget,$(2),$(call gb_Library__get_componentprefix,$(1)),\ $(call gb_Library_get_runtime_filename,$(if $(MERGELIBS),$(if $(filter $(gb_MERGED_LIBS),$(1)),merged,$(1)),$(1)))) diff --git a/solenv/gbuild/platform/OPENBSD_INTEL_GCC.mk b/solenv/gbuild/platform/OPENBSD_INTEL_GCC.mk index 17b2715..b9a47da 100644 --- a/solenv/gbuild/platform/OPENBSD_INTEL_GCC.mk +++ b/solenv/gbuild/platform/OPENBSD_INTEL_GCC.mk @@ -40,6 +40,8 @@ $(call gb_Helper_abbreviate_dirs,\ mkdir -p $(dir $(1)) && \ $(gb_CXX) \ $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ + $(if $(SOVERSION),-Wl$(COMMA)--soname=$(notdir $(1)).$(SOVERSION)) \ + $(if $(SOVERSIONSCRIPT),-Wl$(COMMA)--version-script=$(SOVERSIONSCRIPT))\ $(subst \d,$$,$(RPATH)) \ $(T_LDFLAGS) \ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ @@ -50,7 +52,8 @@ mkdir -p $(dir $(1)) && \ -Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \ $(LIBS) \ $(subst -lpthread,$(PTHREAD_LIBS),$(patsubst lib%.a,-l%,$(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))))) \ - -o $(1)) + -o $(if $(SOVERSION),$(1).$(SOVERSION),$(1))) + $(if $(SOVERSION),ln -sf $(notdir $(1)).$(SOVERSION) $(1)) endef # vim: set noet sw=4: diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk index e061c6d..ea576f3 100644 --- a/solenv/gbuild/platform/macosx.mk +++ b/solenv/gbuild/platform/macosx.mk @@ -197,6 +197,7 @@ $(call gb_Helper_abbreviate_dirs,\ $(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \ $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ $(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \ + $(if $(SOVERSIONSCRIPT),-Wl$(COMMA)-exported_symbols_list$(COMMA)$(SOVERSIONSCRIPT)) \ $(subst \d,$$,$(RPATH)) \ $(T_LDFLAGS) \ $(call gb_LinkTarget__get_liblinkflags,$(LINKED_LIBS)) \ @@ -209,13 +210,14 @@ $(call gb_Helper_abbreviate_dirs,\ $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \ $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \ $(LIBS) \ - -o $(1) \ + -o $(if $(SOVERSION),$(1).$(SOVERSION),$(1)) \ `cat $${DYLIB_FILE}` && \ + $(if $(SOVERSION),ln -sf $(notdir $(1)).$(SOVERSION) $(1),:) && \ $(if $(filter Executable,$(TARGETTYPE)), \ $(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl Executable \ $(LAYER) $(1) &&) \ $(if $(filter Library CppunitTest,$(TARGETTYPE)),\ - $(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl Library $(LAYER) $(1) && \ + $(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl Library $(LAYER) $(if $(SOVERSION),$(1).$(SOVERSION),$(1)) && \ ln -sf $(1) $(patsubst %.dylib,%.jnilib,$(1)) &&) \ rm -f $${DYLIB_FILE}) endef diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk index a51edbf..ed3f164 100644 --- a/solenv/gbuild/platform/solaris.mk +++ b/solenv/gbuild/platform/solaris.mk @@ -213,6 +213,7 @@ $(call gb_Helper_abbreviate_dirs,\ mkdir -p $(dir $(1)) && \ $(gb_CXX) \ $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ + $(if $(SOVERSIONSCRIPT),-M $(SOVERSIONSCRIPT)) \ $(subst \d,$$,$(RPATH)) \ $(T_LDFLAGS) \ $(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) \ @@ -223,7 +224,8 @@ $(call gb_Helper_abbreviate_dirs,\ $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \ $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \ $(LIBS) \ - -o $(1)) + -o $(if $(SOVERSION),$(1).$(SOVERSION),$(1))) + $(if $(SOVERSION),ln -sf $(notdir $(1)).$(SOVERSION) $(1)) endef define gb_LinkTarget__command_staticlink diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk index 4b80cee..d08deb9 100644 --- a/solenv/gbuild/platform/unxgcc.mk +++ b/solenv/gbuild/platform/unxgcc.mk @@ -216,6 +216,8 @@ $(call gb_Helper_abbreviate_dirs,\ $(gb_CXX) \ $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ $(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \ + $(if $(SOVERSION),-Wl$(COMMA)--soname=$(notdir $(1)).$(SOVERSION)) \ + $(if $(SOVERSIONSCRIPT),-Wl$(COMMA)--version-script=$(SOVERSIONSCRIPT))\ $(subst \d,$$,$(RPATH)) \ $(T_LDFLAGS) \ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ @@ -227,7 +229,8 @@ $(call gb_Helper_abbreviate_dirs,\ -Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \ $(LIBS) \ $(patsubst lib%.a,-l%,$(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib))))) \ - -o $(1)) + -o $(if $(SOVERSION),$(1).$(SOVERSION),$(1))) + $(if $(SOVERSION),ln -sf $(notdir $(1)).$(SOVERSION) $(1)) endef define gb_LinkTarget__command_staticlink commit 817a7f6b86aa4fd5f3e267dbce7b8fbc96ec5639 Author: Michael Stahl <mst...@redhat.com> Date: Thu Dec 15 22:04:38 2011 +0100 gbuild: Deliver.mk: preserve symlinks on deliver The option -P seems to be supported by a lot of ancient cp implementations, let's hope it actually works. diff --git a/solenv/gbuild/Deliver.mk b/solenv/gbuild/Deliver.mk index 165d330..1387892 100644 --- a/solenv/gbuild/Deliver.mk +++ b/solenv/gbuild/Deliver.mk @@ -56,11 +56,11 @@ endef ifeq ($(strip $(gb_Deliver_GNUCOPY)),) define gb_Deliver__deliver -mkdir -p $(dir $(2)) && $(if $(gb_Deliver_CLEARONDELIVER),rm -f $(2) &&) $(if $(gb_Deliver_HARDLINK),ln,cp -f) $(1) $(2) && touch -r $(1) $(2) +mkdir -p $(dir $(2)) && $(if $(gb_Deliver_CLEARONDELIVER),rm -f $(2) &&) $(if $(gb_Deliver_HARDLINK),ln,cp -P -f) $(1) $(2) && touch -r $(1) $(2) endef else define gb_Deliver__deliver -mkdir -p $(dir $(2)) && $(gb_Deliver_GNUCOPY) $(if $(gb_Deliver_CLEARONDELIVER),--remove-destination) $(if $(gb_Deliver_HARDLINK),--link) --force --preserve=timestamps $(1) $(2) +mkdir -p $(dir $(2)) && $(gb_Deliver_GNUCOPY) $(if $(gb_Deliver_CLEARONDELIVER),--remove-destination) $(if $(gb_Deliver_HARDLINK),--link) --no-dereference --force --preserve=timestamps $(1) $(2) endef endif _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits