pyuno/Library_pyuno_wrapper.mk | 12 ++++++++++++ 1 file changed, 12 insertions(+)
New commits: commit 5589c72b88e502bfca045ae38af16c854afdd401 Author: Stephan Bergmann <sberg...@redhat.com> Date: Wed May 8 18:37:05 2013 +0200 Make sure again pyuno_wrapper does not link against libstdc++ ...which got broken with gbuild'ification. Change-Id: Ice2b3ffb81a646c9e542344ca348eb6a16eb4ce2 diff --git a/pyuno/Library_pyuno_wrapper.mk b/pyuno/Library_pyuno_wrapper.mk index 9fb2e72..eb5c7c3 100644 --- a/pyuno/Library_pyuno_wrapper.mk +++ b/pyuno/Library_pyuno_wrapper.mk @@ -20,6 +20,18 @@ $(eval $(call gb_Library_use_externals,pyuno_wrapper,\ python_headers \ )) +# python "import pyuno" dlopens pyuno.so as RTLD_LOCAL, so g++ exception +# handling used to not work, so pyuno.so (pyuno_wrapper) is just a thin wrapper +# that dlopens libpyuno.so as RTLD_GLOBAL; but when pyuno.so wrapper links +# against libstdc++ (which has not previously been loaded into python process), +# that resolves its _ZNSs4_Rep20_S_empty_rep_storageE to itself, but later LO +# libs (loaded though RTLD_GLOBAL libpyuno.so) may resolve that symbol to e.g. +# cppu, because they happen to see that before libstdc++; so the requirement has +# always been that RTLD_LOCAL-loaded pyuno.so wrapper implicitly load into the +# process as little as possible: +$(eval $(call gb_Library_add_ldflags,pyuno_wrapper,-nostdlib)) +$(eval $(call gb_Library_add_libs,pyuno_wrapper,-lc)) + ifneq ($(OS)$(COM),WNTMSC) ifeq ($(filter DRAGONFLY FREEBSD NETBSD OPENBSD MACOSX,$(OS)),) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits