Author: damjan
Date: Wed Dec 28 14:53:22 2016
New Revision: 1776288
URL: http://svn.apache.org/viewvc?rev=1776288&view=rev
Log:
I've heard rumours it's a POSIX feature, but so far the problem only
appears on Linux, not FreeBSD.
Linking is one-pass, using symbols exported by libraries to resolve
missing symbols in previous, but *NOT* subsequent, objects (including
libraries). This means the order libraries are given to the linker
does matter, because symbols missing in latter objects cannot be
satisfied by former objects.
Static libraries should be therefore be linked to before dynamic
libraries, as static libraries cannot specify dependencies on dynamic
libraries, yet might need symbols from them.
This should fix the main/slideshow build problem on Linux.
Only Linux has been tested. The other platforms are guessed.
Patch by: me
Modified:
openoffice/trunk/main/solenv/gbuild/platform/freebsd.mk
openoffice/trunk/main/solenv/gbuild/platform/linux.mk
openoffice/trunk/main/solenv/gbuild/platform/os2.mk
openoffice/trunk/main/solenv/gbuild/platform/solaris.mk
Modified: openoffice/trunk/main/solenv/gbuild/platform/freebsd.mk
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/gbuild/platform/freebsd.mk?rev=1776288&r1=1776287&r2=1776288&view=diff
==============================================================================
--- openoffice/trunk/main/solenv/gbuild/platform/freebsd.mk (original)
+++ openoffice/trunk/main/solenv/gbuild/platform/freebsd.mk Wed Dec 28 14:53:22
2016
@@ -256,12 +256,12 @@ $(call gb_Helper_abbreviate_dirs,\
$(if $(filter
Library,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
$(subst \d,$$,$(RPATH)) \
$(T_LDFLAGS) \
+ -Wl$(COMMA)--start-group $(foreach
lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib)))
-Wl$(COMMA)--end-group \
$(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call
gb_Library_get_filename,$(lib)))) \
$(patsubst %,-l%,$(EXTERNAL_LIBS)) \
$(foreach object,$(COBJECTS),$(call
gb_CObject_get_target,$(object))) \
$(foreach object,$(CXXOBJECTS),$(call
gb_CxxObject_get_target,$(object))) \
$(foreach object,$(GENCXXOBJECTS),$(call
gb_GenCxxObject_get_target,$(object))) \
- -Wl$(COMMA)--start-group $(foreach
lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib)))
-Wl$(COMMA)--end-group \
$(LIBS) \
-o $(1))
endef
Modified: openoffice/trunk/main/solenv/gbuild/platform/linux.mk
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/gbuild/platform/linux.mk?rev=1776288&r1=1776287&r2=1776288&view=diff
==============================================================================
--- openoffice/trunk/main/solenv/gbuild/platform/linux.mk (original)
+++ openoffice/trunk/main/solenv/gbuild/platform/linux.mk Wed Dec 28 14:53:22
2016
@@ -237,9 +237,9 @@ $(call gb_Helper_abbreviate_dirs,\
$(foreach object,$(COBJECTS),$(call
gb_CObject_get_target,$(object))) \
$(foreach object,$(CXXOBJECTS),$(call
gb_CxxObject_get_target,$(object))) \
$(foreach object,$(GENCXXOBJECTS),$(call
gb_GenCxxObject_get_target,$(object))) \
+ -Wl$(COMMA)--start-group $(foreach
lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib)))
-Wl$(COMMA)--end-group \
$(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call
gb_Library_get_filename,$(lib)))) \
$(patsubst %,-l%,$(EXTERNAL_LIBS)) \
- -Wl$(COMMA)--start-group $(foreach
lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib)))
-Wl$(COMMA)--end-group \
$(LIBS) \
-lc \
-o $(1))
Modified: openoffice/trunk/main/solenv/gbuild/platform/os2.mk
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/gbuild/platform/os2.mk?rev=1776288&r1=1776287&r2=1776288&view=diff
==============================================================================
--- openoffice/trunk/main/solenv/gbuild/platform/os2.mk (original)
+++ openoffice/trunk/main/solenv/gbuild/platform/os2.mk Wed Dec 28 14:53:22 2016
@@ -322,9 +322,9 @@ $(call gb_Helper_abbreviate_dirs_native,
@$${RESPONSEFILE} \
$(if $(DLLTARGET), $(DLLDEF)) \
$(NATIVERES) \
+ $(foreach lib,$(LINKED_STATIC_LIBS),$(call
gb_StaticLibrary_get_target,$(lib))) \
$(patsubst %.lib,-l%,$(foreach lib,$(LINKED_LIBS),$(call
gb_Library_get_filename,$(lib)))) \
$(patsubst %,-l%,$(EXTERNAL_LIBS)) \
- $(foreach lib,$(LINKED_STATIC_LIBS),$(call
gb_StaticLibrary_get_target,$(lib))) \
$(LIBS) \
$(if $(DLLTARGET),-o $(DLLTARGET), -o $(1) ); \
RC=$$?; rm $${RESPONSEFILE} \
Modified: openoffice/trunk/main/solenv/gbuild/platform/solaris.mk
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/gbuild/platform/solaris.mk?rev=1776288&r1=1776287&r2=1776288&view=diff
==============================================================================
--- openoffice/trunk/main/solenv/gbuild/platform/solaris.mk (original)
+++ openoffice/trunk/main/solenv/gbuild/platform/solaris.mk Wed Dec 28 14:53:22
2016
@@ -207,12 +207,12 @@ $(call gb_Helper_abbreviate_dirs,\
$(if $(filter
Library,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
$(subst \d,$$,$(RPATH)) \
$(T_LDFLAGS) \
+ $(foreach lib,$(LINKED_STATIC_LIBS),$(call
gb_StaticLibrary_get_target,$(lib))) \
$(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call
gb_Library_get_filename,$(lib)))) \
$(patsubst %,-l%,$(EXTERNAL_LIBS)) \
$(foreach object,$(COBJECTS),$(call
gb_CObject_get_target,$(object))) \
$(foreach object,$(CXXOBJECTS),$(call
gb_CxxObject_get_target,$(object))) \
$(foreach object,$(GENCXXOBJECTS),$(call
gb_GenCxxObject_get_target,$(object))) \
- $(foreach lib,$(LINKED_STATIC_LIBS),$(call
gb_StaticLibrary_get_target,$(lib))) \
$(LIBS) \
-o $(1))
endef