Author: damjan
Date: Tue Nov 28 04:44:42 2017
New Revision: 1816518

URL: http://svn.apache.org/viewvc?rev=1816518&view=rev
Log:
Add the ability to set a linker script in gbuild that is used to
version symbols.

This has been a bottleneck in continued gbuild porting and should
help further development considerably.

Patch by: me


Modified:
    openoffice/trunk/main/solenv/gbuild/Library.mk
    openoffice/trunk/main/solenv/gbuild/LinkTarget.mk
    openoffice/trunk/main/solenv/gbuild/platform/freebsd.mk
    openoffice/trunk/main/solenv/gbuild/platform/linux.mk
    openoffice/trunk/main/solenv/gbuild/platform/macosx.mk
    openoffice/trunk/main/solenv/gbuild/platform/os2.mk
    openoffice/trunk/main/solenv/gbuild/platform/solaris.mk

Modified: openoffice/trunk/main/solenv/gbuild/Library.mk
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/gbuild/Library.mk?rev=1816518&r1=1816517&r2=1816518&view=diff
==============================================================================
--- openoffice/trunk/main/solenv/gbuild/Library.mk (original)
+++ openoffice/trunk/main/solenv/gbuild/Library.mk Tue Nov 28 04:44:42 2017
@@ -133,6 +133,7 @@ $(eval $(foreach method,\
        add_package_headers \
        add_sdi_headers \
        add_precompiled_header \
+       set_versionmap \
 ,\
        $(call gb_Library__forward_to_Linktarget,$(method))\
 ))

Modified: openoffice/trunk/main/solenv/gbuild/LinkTarget.mk
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/gbuild/LinkTarget.mk?rev=1816518&r1=1816517&r2=1816518&view=diff
==============================================================================
--- openoffice/trunk/main/solenv/gbuild/LinkTarget.mk (original)
+++ openoffice/trunk/main/solenv/gbuild/LinkTarget.mk Tue Nov 28 04:44:42 2017
@@ -308,6 +308,8 @@ $(call gb_LinkTarget_get_headers_target,
 #   files.
 # - TARGETTYPE is the type of linktarget as some platforms need very different
 #   command to link different targettypes.
+# - VERSIONMAP is the linker script, usually used to version a dynamic
+#   library's symbols (on *nix/Mac).
 #
 # Since most variables are set on the linktarget and not on the object, the
 # object learns about these setting via GNU makes scoping of target variables.
@@ -351,6 +353,7 @@ $(call gb_LinkTarget_get_target,$(1)) :
 $(call gb_LinkTarget_get_target,$(1)) : EXTERNAL_LIBS := 
 $(call gb_LinkTarget_get_target,$(1)) : LIBS :=
 $(call gb_LinkTarget_get_target,$(1)) : TARGETTYPE := 
+$(call gb_LinkTarget_get_target,$(1)) : VERSIONMAP := 
 $(call gb_LinkTarget_get_headers_target,$(1)) \
 $(call gb_LinkTarget_get_target,$(1)) : PCH_NAME :=
 $(call gb_LinkTarget_get_target,$(1)) : PCHOBJS :=
@@ -373,6 +376,7 @@ $(call gb_LinkTarget_get_dep_target,$(1)
 $(call gb_LinkTarget_get_dep_target,$(1)) : INCLUDE := 
$$(gb_LinkTarget_INCLUDE)
 $(call gb_LinkTarget_get_dep_target,$(1)) : INCLUDE_STL := 
$$(gb_LinkTarget_INCLUDE_STL)
 $(call gb_LinkTarget_get_dep_target,$(1)) : TARGETTYPE := 
+$(call gb_LinkTarget_get_dep_target,$(1)) : VERSIONMAP := 
 $(call gb_LinkTarget_get_dep_target,$(1)) : PCH_NAME :=
 endif
 
@@ -681,6 +685,11 @@ $(call gb_LinkTarget_get_target,$(1)) \
 $(call gb_LinkTarget_get_dep_target,$(1)) : TARGETTYPE := $(2)
 endef
 
+define gb_LinkTarget_set_versionmap
+$(call gb_LinkTarget_get_target,$(1)) \
+$(call gb_LinkTarget_get_dep_target,$(1)) : VERSIONMAP := $(2)
+endef
+
 define gb_LinkTarget_set_dlltarget
 $(call gb_LinkTarget_get_clean_target,$(1)) \
 $(call gb_LinkTarget_get_target,$(1)) : DLLTARGET := $(2)

Modified: openoffice/trunk/main/solenv/gbuild/platform/freebsd.mk
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/gbuild/platform/freebsd.mk?rev=1816518&r1=1816517&r2=1816518&view=diff
==============================================================================
--- openoffice/trunk/main/solenv/gbuild/platform/freebsd.mk (original)
+++ openoffice/trunk/main/solenv/gbuild/platform/freebsd.mk Tue Nov 28 04:44:42 
2017
@@ -256,6 +256,7 @@ $(call gb_Helper_abbreviate_dirs,\
        mkdir -p $(dir $(1)) && \
        $(gb_CXX) \
                $(if $(filter 
Library,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
+               $(if $(VERSIONMAP),$(gb_Library_VERSIONMAPFLAG) $(VERSIONMAP)) \
                $(subst \d,$$,$(RPATH)) \
                $(T_LDFLAGS) \
                $(foreach object,$(COBJECTS),$(call 
gb_CObject_get_target,$(object))) \
@@ -298,6 +299,7 @@ gb_Library_STLEXT := port_gcc$(gb_Librar
 else
 gb_Library_STLEXT := port_gcc_stldebug$(gb_Library_PLAINEXT)
 endif
+gb_Library_VERSIONMAPFLAG := -Wl,--version-script
 
 ifeq ($(CPUNAME),X86_64)
 gb_Library_OOOEXT := $(gb_Library_PLAINEXT)

Modified: openoffice/trunk/main/solenv/gbuild/platform/linux.mk
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/gbuild/platform/linux.mk?rev=1816518&r1=1816517&r2=1816518&view=diff
==============================================================================
--- openoffice/trunk/main/solenv/gbuild/platform/linux.mk (original)
+++ openoffice/trunk/main/solenv/gbuild/platform/linux.mk Tue Nov 28 04:44:42 
2017
@@ -245,6 +245,7 @@ $(call gb_Helper_abbreviate_dirs,\
        mkdir -p $(dir $(1)) && \
        $(gb_CXX) \
                $(if $(filter 
Library,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
+               $(if $(VERSIONMAP),$(gb_Library_VERSIONMAPFLAG) $(VERSIONMAP)) \
                $(subst \d,$$,$(RPATH)) \
                $(T_LDFLAGS) \
                $(foreach object,$(COBJECTS),$(call 
gb_CObject_get_target,$(object))) \
@@ -288,6 +289,7 @@ gb_Library_STLEXT := port_gcc$(gb_Librar
 else
 gb_Library_STLEXT := port_gcc_stldebug$(gb_Library_PLAINEXT)
 endif
+gb_Library_VERSIONMAPFLAG := -Wl,--version-script
 
 ifeq ($(CPUNAME),X86_64)
 gb_Library_OOOEXT := $(gb_Library_PLAINEXT)

Modified: openoffice/trunk/main/solenv/gbuild/platform/macosx.mk
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/gbuild/platform/macosx.mk?rev=1816518&r1=1816517&r2=1816518&view=diff
==============================================================================
--- openoffice/trunk/main/solenv/gbuild/platform/macosx.mk (original)
+++ openoffice/trunk/main/solenv/gbuild/platform/macosx.mk Tue Nov 28 04:44:42 
2017
@@ -281,6 +281,7 @@ $(call gb_Helper_abbreviate_dirs,\
                $(if $(filter 
Library,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
                $(subst \d,$$,$(RPATH)) \
                $(T_LDFLAGS) \
+               $(if $(VERSIONMAP),$(gb_Library_VERSIONMAPFLAG) $(VERSIONMAP)) \
                $(call gb_LinkTarget__get_liblinkflags,$(LINKED_LIBS)) \
                $(foreach object,$(COBJECTS),$(call 
gb_CObject_get_target,$(object))) \
                $(foreach object,$(CXXOBJECTS),$(call 
gb_CxxObject_get_target,$(object))) \
@@ -319,6 +320,7 @@ endef
 
 gb_Library_DEFS :=
 gb_Library_TARGETTYPEFLAGS := -dynamiclib -single_module
+gb_Library_VERSIONMAPFLAG := -Wl,-exported_symbols_list
 gb_Library_SYSPRE := lib
 gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_
 gb_Library_PLAINEXT := .dylib

Modified: openoffice/trunk/main/solenv/gbuild/platform/os2.mk
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/gbuild/platform/os2.mk?rev=1816518&r1=1816517&r2=1816518&view=diff
==============================================================================
--- openoffice/trunk/main/solenv/gbuild/platform/os2.mk (original)
+++ openoffice/trunk/main/solenv/gbuild/platform/os2.mk Tue Nov 28 04:44:42 2017
@@ -322,6 +322,7 @@ $(call gb_Helper_abbreviate_dirs_native,
                $(if $(filter 
Library,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
                $(if $(filter 
StaticLibrary,$(TARGETTYPE)),$(gb_StaticLibrary_TARGETTYPEFLAGS)) \
                $(if $(filter 
Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
+               $(if $(VERSIONMAP),$(gb_Library_VERSIONMAPFLAG) $(VERSIONMAP)) \
                $(T_LDFLAGS) \
                @$${RESPONSEFILE} \
                $(if $(DLLTARGET), $(DLLDEF)) \
@@ -361,6 +362,7 @@ endef
 
 gb_Library_DEFS := -D_DLL_
 gb_Library_TARGETTYPEFLAGS := -Zdll
+gb_Library_VERSIONMAPFLAG := -Wl,--version-script
 gb_Library_get_rpath :=
 
 gb_Library_SYSPRE := 

Modified: openoffice/trunk/main/solenv/gbuild/platform/solaris.mk
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/gbuild/platform/solaris.mk?rev=1816518&r1=1816517&r2=1816518&view=diff
==============================================================================
--- openoffice/trunk/main/solenv/gbuild/platform/solaris.mk (original)
+++ openoffice/trunk/main/solenv/gbuild/platform/solaris.mk Tue Nov 28 04:44:42 
2017
@@ -205,6 +205,7 @@ $(call gb_Helper_abbreviate_dirs,\
        mkdir -p $(dir $(1)) && \
        $(gb_CXX) \
                $(if $(filter 
Library,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
+               $(if $(VERSIONMAP),$(gb_Library_VERSIONMAPFLAG) $(VERSIONMAP)) \
                $(subst \d,$$,$(RPATH)) \
                $(T_LDFLAGS) \
                $(foreach object,$(COBJECTS),$(call 
gb_CObject_get_target,$(object))) \
@@ -246,6 +247,7 @@ gb_Library_STLEXT := port_sunpro$(gb_Lib
 else
 gb_Library_STLEXT := port_sunpro_debug$(gb_Library_PLAINEXT)
 endif
+gb_Library_VERSIONMAPFLAG := -M
 
 ifeq ($(CPUNAME),INTEL)
 gb_Library_OOOEXT := $(gb_Library_PLAINEXT)


Reply via email to