summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-09-17 22:24:10 +0200
committerMichael Stahl <mstahl@redhat.com>2013-09-22 11:08:29 +0200
commitd343c57f982af1b2a9a37362e82e7369b6edf948 (patch)
tree605acc30b2923a5ad609f82791f4bf4500a739bc
parentd263c22a0924ece4663c023618bba93fcb7300c3 (diff)
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
-rw-r--r--cppu/Library_cppu.mk2
-rw-r--r--cppu/Library_purpenvhelper.mk2
-rw-r--r--cppuhelper/Library_cppuhelper.mk2
-rw-r--r--odk/Package_lib.mk2
-rw-r--r--sal/Library_sal.mk2
-rw-r--r--salhelper/Library_salhelper.mk2
-rw-r--r--solenv/Package_gdb.mk8
-rw-r--r--solenv/gbuild/Library.mk24
-rw-r--r--solenv/gbuild/LinkTarget.mk11
-rw-r--r--solenv/gbuild/TargetLocations.mk4
-rw-r--r--solenv/gbuild/platform/com_MSC_class.mk6
-rw-r--r--solenv/gbuild/platform/macosx.mk22
-rw-r--r--solenv/gbuild/platform/solaris.mk17
-rw-r--r--solenv/gbuild/platform/unxgcc.mk17
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)) \