From d343c57f982af1b2a9a37362e82e7369b6edf948 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Tue, 17 Sep 2013 22:24:10 +0200 Subject: gbuild: make the versioned library the linktarget on Unixes If there is a SOVERSION then the versioned library is a real file and the unversioned one just a symlink; better to have the real file be the target. - add gb_Library_UDK_MAJORVER variable for SOVERSION - remove version parameter of gb_Library_set_soversion_script; instead hardcode the SOVERSION since it must be included in the file name in gb_Library_FILENAMES anyway - store the unversioned symlink in the ILIBTARGET variable - via new gb_Library_get_workdir_target_versionlink function - removed gb_Helper_install call that resulted in both versioned and unversioned libs in instdir Change-Id: I2c6f1698f0e39fdb2c07964d43ed9485cbca0b30 --- cppu/Library_cppu.mk | 2 +- cppu/Library_purpenvhelper.mk | 2 +- cppuhelper/Library_cppuhelper.mk | 2 +- odk/Package_lib.mk | 2 +- sal/Library_sal.mk | 2 +- salhelper/Library_salhelper.mk | 2 +- solenv/Package_gdb.mk | 8 ++++---- solenv/gbuild/Library.mk | 24 ++++++++++++------------ solenv/gbuild/LinkTarget.mk | 11 +++++------ solenv/gbuild/TargetLocations.mk | 4 ++++ solenv/gbuild/platform/com_MSC_class.mk | 6 +++--- solenv/gbuild/platform/macosx.mk | 22 +++++++++++----------- solenv/gbuild/platform/solaris.mk | 17 +++++++++-------- solenv/gbuild/platform/unxgcc.mk | 17 +++++++++-------- 14 files changed, 63 insertions(+), 58 deletions(-) diff --git a/cppu/Library_cppu.mk b/cppu/Library_cppu.mk index a4dd49a508c2..eacaf83e9f1f 100644 --- a/cppu/Library_cppu.mk +++ b/cppu/Library_cppu.mk @@ -10,7 +10,7 @@ $(eval $(call gb_Library_Library,cppu)) -$(eval $(call gb_Library_set_soversion_script,cppu,3,$(SRCDIR)/cppu/util/cppu.map)) +$(eval $(call gb_Library_set_soversion_script,cppu,$(SRCDIR)/cppu/util/cppu.map)) $(eval $(call gb_Library_use_udk_api,cppu)) diff --git a/cppu/Library_purpenvhelper.mk b/cppu/Library_purpenvhelper.mk index 4fc24acae5ad..4b4733534ca6 100644 --- a/cppu/Library_purpenvhelper.mk +++ b/cppu/Library_purpenvhelper.mk @@ -10,7 +10,7 @@ $(eval $(call gb_Library_Library,purpenvhelper)) -$(eval $(call gb_Library_set_soversion_script,purpenvhelper,3,$(SRCDIR)/cppu/util/uno_purpenvhelpergcc3.map)) +$(eval $(call gb_Library_set_soversion_script,purpenvhelper,$(SRCDIR)/cppu/util/uno_purpenvhelpergcc3.map)) $(eval $(call gb_Library_add_defs,purpenvhelper,\ -DPURPENV_DLLIMPLEMENTATION \ diff --git a/cppuhelper/Library_cppuhelper.mk b/cppuhelper/Library_cppuhelper.mk index 649f45c9a8c3..a2ebf8cec646 100644 --- a/cppuhelper/Library_cppuhelper.mk +++ b/cppuhelper/Library_cppuhelper.mk @@ -10,7 +10,7 @@ $(eval $(call gb_Library_Library,cppuhelper)) -$(eval $(call gb_Library_set_soversion_script,cppuhelper,3,$(SRCDIR)/cppuhelper/source/gcc3.map)) +$(eval $(call gb_Library_set_soversion_script,cppuhelper,$(SRCDIR)/cppuhelper/source/gcc3.map)) $(eval $(call gb_Library_use_internal_comprehensive_api,cppuhelper,\ cppuhelper \ diff --git a/odk/Package_lib.mk b/odk/Package_lib.mk index eb0c26a69654..bd796beb7d55 100644 --- a/odk/Package_lib.mk +++ b/odk/Package_lib.mk @@ -27,7 +27,7 @@ $(eval $(call gb_Package_add_files,odk_lib,$(gb_Package_SDKDIRNAME)/lib,\ ifneq (,$(filter-out MACOSX WNT,$(OS))) define odk_add_sybolic_link -$(call gb_Package_add_symbolic_link,odk_lib,$(gb_Package_SDKDIRNAME)/lib/$(1),../../ure-link/lib/$(1).3) +$(call gb_Package_add_symbolic_link,odk_lib,$(gb_Package_SDKDIRNAME)/lib/$(basename $(1)),../../ure-link/lib/$(1)) endef diff --git a/sal/Library_sal.mk b/sal/Library_sal.mk index 8024e3f5775f..1bf549f308e3 100644 --- a/sal/Library_sal.mk +++ b/sal/Library_sal.mk @@ -10,7 +10,7 @@ $(eval $(call gb_Library_Library,sal)) -$(eval $(call gb_Library_set_soversion_script,sal,3,$(SRCDIR)/sal/util/sal.map)) +$(eval $(call gb_Library_set_soversion_script,sal,$(SRCDIR)/sal/util/sal.map)) $(eval $(call gb_Library_set_precompiled_header,sal,$(SRCDIR)/sal/inc/pch/precompiled_sal)) diff --git a/salhelper/Library_salhelper.mk b/salhelper/Library_salhelper.mk index 108c94802d5f..8d62e669267f 100644 --- a/salhelper/Library_salhelper.mk +++ b/salhelper/Library_salhelper.mk @@ -34,6 +34,6 @@ $(eval $(call gb_Library_add_exception_objects,salhelper,\ # Solaris would need something like this, too. Its backwards compatibility is # broken for now: -$(eval $(call gb_Library_set_soversion_script,salhelper,3,$(SRCDIR)/salhelper/source/gcc3.map)) +$(eval $(call gb_Library_set_soversion_script,salhelper,$(SRCDIR)/salhelper/source/gcc3.map)) # vim: set noet sw=4 ts=4: diff --git a/solenv/Package_gdb.mk b/solenv/Package_gdb.mk index 5c4d6187affb..24dc51c60531 100644 --- a/solenv/Package_gdb.mk +++ b/solenv/Package_gdb.mk @@ -16,14 +16,14 @@ $(eval $(call gb_Package_add_files,solenv_gdb,lib,\ $(if $(filter ALL,$(MERGELIBS)), \ $(call gb_Library_get_runtime_filename,urelibs)-gdb.py \ , \ - $(call gb_Library_get_runtime_filename,cppu).3-gdb.py \ - $(call gb_Library_get_runtime_filename,sal).3-gdb.py \ + $(call gb_Library_get_runtime_filename,cppu)-gdb.py \ + $(call gb_Library_get_runtime_filename,sal)-gdb.py \ $(call gb_Library_get_runtime_filename,sw)-gdb.py \ ) \ , \ $(call gb_Library_get_runtime_filename,basegfx)-gdb.py \ - $(call gb_Library_get_runtime_filename,cppu).3-gdb.py \ - $(call gb_Library_get_runtime_filename,sal).3-gdb.py \ + $(call gb_Library_get_runtime_filename,cppu)-gdb.py \ + $(call gb_Library_get_runtime_filename,sal)-gdb.py \ $(call gb_Library_get_runtime_filename,svl)-gdb.py \ $(call gb_Library_get_runtime_filename,sw)-gdb.py \ $(call gb_Library_get_runtime_filename,tl)-gdb.py \ diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk index 1fd48a88ea2a..33ee1e0c7e23 100644 --- a/solenv/gbuild/Library.mk +++ b/solenv/gbuild/Library.mk @@ -119,28 +119,28 @@ $(foreach aux,$(2),$(call gb_Library_add_auxtarget,$(1),$(aux))) endef -# gb_Library__add_soversion_link library package linkname +# we actually (ab)use ILIBTARGET here to store the unversioned symlink - +# it serves a similar purpose to an MSVC import library, as input for linker +# call gb_Library__add_soversion_link,library,linkname define gb_Library__add_soversion_link -$(call gb_Library_add_auxtarget,$(1),$(2)) +$(call gb_Library_add_auxtarget,$(1),$(OUTDIR)/lib/$(notdir $(2))) +$(call gb_LinkTarget_set_ilibtarget,$(call gb_Library_get_linktarget,$(1)),$(2)) endef define gb_Library__set_soversion_script -$(call gb_LinkTarget_set_soversion_script,$(call gb_Library_get_linktarget,$(1)),$(2),$(3)) -$(call gb_Library_get_target,$(1)) : SOVERSION := $(2) -$(call gb_Library__add_soversion_link,$(1),$(call gb_Library_get_target,$(1)).$(2)) -$(call gb_Helper_install,$(call gb_Library__get_final_target,$(1)), \ - $(call gb_Library_get_install_target,$(1)).$(2), \ - $(call gb_LinkTarget_get_target,$(call gb_Library_get_linktarget,$(1))).$(2)) +$(call gb_LinkTarget_set_soversion_script,$(call gb_Library_get_linktarget,$(1)),$(2)) +$(call gb_Library_get_target,$(1)) : SOVERSION := $(gb_Library_UDK_MAJORVER) +$(call gb_Library__add_soversion_link,$(1),$(call gb_Library_get_workdir_target_versionlink,$(1))) endef # for libraries that maintain stable ABI: set SOVERSION and version script -# $(call gb_Library_set_soversion_script,soversion,versionscript) +# $(call gb_Library_set_soversion_script,versionscript) 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_Library__set_soversion_script_platform,$(1),$(2),$(3)) +$(if $(2),,$(call gb_Output_error,gb_Library_set_soversion_script: no script)) +$(if $(3),$(call gb_Output_error,gb_Library_set_soversion_script: too many arguments)) +$(call gb_Library__set_soversion_script_platform,$(1),$(2)) endef # The dependency from workdir component target to outdir library should ensure diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk index a162b7367f8e..d0ddb74ccdc7 100644 --- a/solenv/gbuild/LinkTarget.mk +++ b/solenv/gbuild/LinkTarget.mk @@ -448,7 +448,7 @@ define gb_LinkTarget__command_impl $(if $(filter $(true),$(call gb_LinkTarget__is_build_lib,$(2))),\ $(call gb_LinkTarget__command,$(1),$(2)),\ mkdir -p $(dir $(1)) && echo invalid > $(1) \ - $(if $(SOVERSION),&& echo invalid > $(1).$(SOVERSION))),\ + $(if $(SOVERSION),&& echo invalid > $(basename $(1)))),\ $(call gb_LinkTarget__command,$(1),$(2))) $(call gb_LinkTarget__command_objectlist,$(WORKDIR)/LinkTarget/$(2).objectlist) endef @@ -615,12 +615,11 @@ gb_LinkTarget_CXX_SUFFIX_$(call gb_LinkTarget__get_workdir_linktargetname,$(1)) endef -# call gb_LinkTarget_set_soversion_script,linktarget,soversion,soversionscript +# call gb_LinkTarget_set_soversion_script,linktarget,soversionscript define gb_LinkTarget_set_soversion_script -$(call gb_LinkTarget_get_target,$(1)) : $(3) -$(call gb_LinkTarget_get_target,$(1)) : SOVERSION := $(2) -$(call gb_LinkTarget_get_target,$(1)) : SOVERSIONSCRIPT := $(3) -$(call gb_LinkTarget_get_target,$(1)).$(2) : $(call gb_LinkTarget_get_target,$(1)) +$(call gb_LinkTarget_get_target,$(1)) : $(2) +$(call gb_LinkTarget_get_target,$(1)) : SOVERSION := $(gb_Library_UDK_MAJORVER) +$(call gb_LinkTarget_get_target,$(1)) : SOVERSIONSCRIPT := $(2) endef diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk index d029d33910b8..fb4eea368e97 100644 --- a/solenv/gbuild/TargetLocations.mk +++ b/solenv/gbuild/TargetLocations.mk @@ -232,6 +232,10 @@ define gb_Library_get_exports_target $(WORKDIR)/LinkTarget/$(call gb_Library__get_workdir_linktargetname,$(1)).exports endef +define gb_Library_get_workdir_target_versionlink +$(WORKDIR)/LinkTarget/$(basename $(call gb_Library__get_workdir_linktargetname,$(1))) +endef + gb_Library__get_final_target = $(WORKDIR)/Dummy/$(1) define gb_Library_get_headers_target diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk index b6558e15a12a..6574b7c417b5 100644 --- a/solenv/gbuild/platform/com_MSC_class.mk +++ b/solenv/gbuild/platform/com_MSC_class.mk @@ -256,12 +256,12 @@ gb_Library_ILIBFILENAMES :=\ $(foreach lib,$(gb_Library_KNOWNLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ gb_Library_DLLEXT := .dll -gb_Library_MAJORVER := 3 +gb_Library_UDK_MAJORVER := 3 gb_Library_RTEXT := MSC$(gb_Library_DLLEXT) gb_Library_OOOEXT := $(gb_Library_DLLPOSTFIX)$(gb_Library_DLLEXT) gb_Library_UNOEXT := .uno$(gb_Library_DLLEXT) -gb_Library_UNOVEREXT := $(gb_Library_MAJORVER)$(gb_Library_DLLEXT) -gb_Library_RTVEREXT := $(gb_Library_MAJORVER)$(gb_Library_RTEXT) +gb_Library_UNOVEREXT := $(gb_Library_UDK_MAJORVER)$(gb_Library_DLLEXT) +gb_Library_RTVEREXT := $(gb_Library_UDK_MAJORVER)$(gb_Library_RTEXT) gb_Library_FILENAMES :=\ $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(lib)$(gb_Library_OOOEXT)) \ diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk index bd10012f4eea..a0daf19c59f7 100644 --- a/solenv/gbuild/platform/macosx.mk +++ b/solenv/gbuild/platform/macosx.mk @@ -102,9 +102,9 @@ gb_LinkTarget__RPATHS := \ OXT: \ NONE:@__________________________________________________NONE/ \ -# $(call gb_LinkTarget__get_installname,libfilename,soversion,layerprefix) +# $(call gb_LinkTarget__get_installname,libfilename,layerprefix) define gb_LinkTarget__get_installname -$(if $(3),-install_name '$(3)$(1)$(if $(2),.$(2))') +$(if $(2),-install_name '$(2)$(1)') endef gb_LinkTarget_CFLAGS := $(gb_CFLAGS) @@ -141,7 +141,7 @@ $(call gb_Helper_abbreviate_dirs,\ $(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \ $(subst \d,$$,$(RPATH)) \ $(T_LDFLAGS) \ - $(patsubst lib%.dylib,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) \ + $(patsubst lib%.dylib,-l%,$(patsubst %.$(gb_Library_UDK_MAJORVER),%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib))))) \ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ $(foreach object,$(ASMOBJECTS),$(call gb_AsmObject_get_target,$(object))) \ @@ -152,12 +152,12 @@ $(call gb_Helper_abbreviate_dirs,\ $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \ $(LIBS) \ $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \ - -o $(if $(SOVERSION),$(1).$(SOVERSION),$(1)) && \ - $(if $(SOVERSION),ln -sf $(notdir $(1)).$(SOVERSION) $(1),:) && \ + -o $(1) && \ + $(if $(SOVERSION),ln -sf $(notdir $(1)) $(ILIBTARGET),:) && \ $(if $(filter Executable,$(TARGETTYPE)), \ $(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl app $(LAYER) $(1) &&) \ $(if $(filter Library Bundle CppunitTest,$(TARGETTYPE)),\ - $(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl shl $(LAYER) $(if $(SOVERSION),$(1).$(SOVERSION),$(1)) &&) \ + $(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl shl $(LAYER) $(1) &&) \ $(if $(MACOSX_CODESIGNING_IDENTITY), \ $(if $(filter Executable,$(TARGETTYPE)), \ (codesign --identifier=$(MACOSX_BUNDLE_IDENTIFIER).$(notdir $(1)) --sign $(MACOSX_CODESIGNING_IDENTITY) --force $(1) || true) &&)) \ @@ -205,6 +205,7 @@ endef gb_Library_DEFS := gb_Library_TARGETTYPEFLAGS := -dynamiclib -single_module gb_Bundle_TARGETTYPEFLAGS := -bundle +gb_Library_UDK_MAJORVER := 3 gb_Library_SYSPRE := lib gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_ gb_Library_PLAINEXT := .dylib @@ -220,8 +221,8 @@ gb_Library_FILENAMES := \ $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ $(foreach lib,$(gb_Library_PRIVATELIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ - $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ - $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT).$(gb_Library_UDK_MAJORVER)) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT).$(gb_Library_UDK_MAJORVER)) \ $(foreach lib,$(gb_Library_EXTENSIONLIBS),$(lib):$(lib)$(gb_Library_UNOEXT)) \ @@ -236,13 +237,12 @@ gb_Library_LAYER := \ $(foreach lib,$(gb_Library_EXTENSIONLIBS),$(lib):OXT) \ define gb_Library_get_rpath -$(call gb_LinkTarget__get_installname,$(call gb_Library_get_filename,$(1)),$(2),$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Library_get_layer,$(1)))) +$(call gb_LinkTarget__get_installname,$(call gb_Library_get_filename,$(1)),$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Library_get_layer,$(1)))) endef -# RPATH def is delayed until the link command to get current value of SOVERSION define gb_Library_Library_platform $(call gb_LinkTarget_get_target,$(2)) : \ - RPATH = $$(call gb_Library_get_rpath,$(1),$$(SOVERSION)) + RPATH := $(call gb_Library_get_rpath,$(1)) $(call gb_LinkTarget_get_target,$(2)) : LAYER := $(call gb_Library_get_layer,$(1)) endef diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk index 8d15e8b8c81f..ce95fe3ae3a8 100644 --- a/solenv/gbuild/platform/solaris.mk +++ b/solenv/gbuild/platform/solaris.mk @@ -172,7 +172,7 @@ $(call gb_Helper_abbreviate_dirs,\ $(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_workdir_linktargetname,$(lib))),$(2)),$(gb_LTOFLAGS)) \ - $(if $(SOVERSION),-Wl$(COMMA)--soname=$(notdir $(1)).$(SOVERSION)) \ + $(if $(SOVERSION),-Wl$(COMMA)--soname=$(notdir $(1))) \ $(if $(SOVERSIONSCRIPT),-Wl$(COMMA)--version-script=$(SOVERSIONSCRIPT))\ $(subst \d,$$,$(RPATH)) \ $(T_LDFLAGS) \ @@ -185,10 +185,10 @@ $(call gb_Helper_abbreviate_dirs,\ -Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \ -Wl$(COMMA)--no-as-needed \ $(LIBS) \ - $(patsubst lib%.a,-l%,$(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib))))) \ - -o $(if $(SOVERSION),$(1).$(SOVERSION),$(1))) - $(if $(SOVERSION),ln -sf $(notdir $(1)).$(SOVERSION) $(1)) - $(if $(filter Library,$(TARGETTYPE)),\ + $(patsubst lib%.a,-l%,$(patsubst lib%.so,-l%,$(patsubst %.$(gb_Library_UDK_MAJORVER),%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))))) \ + -o $(1) \ + $(if $(SOVERSION),&& ln -sf $(notdir $(1)) $(ILIBTARGET)) \ + $(if $(filter Library,$(TARGETTYPE)),&& \ readelf -d $(1) | grep SONAME > $(1).exports.tmp ; \ $(NM) --dynamic --extern-only --defined-only --format=posix $(1) \ | cut -d' ' -f1-2 \ @@ -196,7 +196,7 @@ $(call gb_Helper_abbreviate_dirs,\ if cmp -s $(1).exports.tmp $(1).exports; \ then rm $(1).exports.tmp; \ else mv $(1).exports.tmp $(1).exports; touch -r $(1) $(1).exports; \ - fi) + fi)) endef define gb_LinkTarget__command_staticlink @@ -224,6 +224,7 @@ endef gb_Library_DEFS := gb_Library_TARGETTYPEFLAGS := -shared +gb_Library_UDK_MAJORVER := 3 gb_Library_SYSPRE := lib gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_ gb_Library_PLAINEXT := .so @@ -244,8 +245,8 @@ gb_Library_FILENAMES := \ $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ $(foreach lib,$(gb_Library_PRIVATELIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ - $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ - $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT).$(gb_Library_UDK_MAJORVER)) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT).$(gb_Library_UDK_MAJORVER)) \ $(foreach lib,$(gb_Library_EXTENSIONLIBS),$(lib):$(lib)$(gb_Library_UNOEXT)) \ diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk index 78842bf55e5d..67f4dd597772 100644 --- a/solenv/gbuild/platform/unxgcc.mk +++ b/solenv/gbuild/platform/unxgcc.mk @@ -174,7 +174,7 @@ $(call gb_Helper_abbreviate_dirs,\ $(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_workdir_linktargetname,$(lib))),$(2)),$(gb_LTOFLAGS)) \ - $(if $(SOVERSION),-Wl$(COMMA)--soname=$(notdir $(1)).$(SOVERSION)) \ + $(if $(SOVERSION),-Wl$(COMMA)--soname=$(notdir $(1))) \ $(if $(SOVERSIONSCRIPT),-Wl$(COMMA)--version-script=$(SOVERSIONSCRIPT))\ $(subst \d,$$,$(RPATH)) \ $(T_LDFLAGS) \ @@ -187,10 +187,10 @@ $(call gb_Helper_abbreviate_dirs,\ -Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \ -Wl$(COMMA)--no-as-needed \ $(LIBS) \ - $(patsubst lib%.a,-l%,$(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib))))) \ - -o $(if $(SOVERSION),$(1).$(SOVERSION),$(1))) - $(if $(SOVERSION),ln -sf $(notdir $(1)).$(SOVERSION) $(1)) - $(if $(filter Library,$(TARGETTYPE)),\ + $(patsubst lib%.a,-l%,$(patsubst lib%.so,-l%,$(patsubst %.$(gb_Library_UDK_MAJORVER),%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))))) \ + -o $(1) \ + $(if $(SOVERSION),&& ln -sf $(notdir $(1)) $(ILIBTARGET)) \ + $(if $(filter Library,$(TARGETTYPE)),&& \ readelf -d $(1) | grep SONAME > $(1).exports.tmp ; \ $(NM) --dynamic --extern-only --defined-only --format=posix $(1) \ | cut -d' ' -f1-2 \ @@ -198,7 +198,7 @@ $(call gb_Helper_abbreviate_dirs,\ if cmp -s $(1).exports.tmp $(1).exports; \ then rm $(1).exports.tmp; \ else mv $(1).exports.tmp $(1).exports; touch -r $(1) $(1).exports; \ - fi) + fi)) endef define gb_LinkTarget__command_staticlink @@ -226,6 +226,7 @@ endef gb_Library_DEFS := gb_Library_TARGETTYPEFLAGS := -shared -Wl,-z,noexecstack +gb_Library_UDK_MAJORVER := 3 gb_Library_SYSPRE := lib gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_ gb_Library_PLAINEXT := .so @@ -241,8 +242,8 @@ gb_Library_FILENAMES := \ $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ $(foreach lib,$(gb_Library_PRIVATELIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ - $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ - $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT).$(gb_Library_UDK_MAJORVER)) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT).$(gb_Library_UDK_MAJORVER)) \ $(foreach lib,$(gb_Library_EXTENSIONLIBS),$(lib):$(lib)$(gb_Library_UNOEXT)) \ -- cgit v1.2.3