svn commit: r426069 - in head/editors/libreoffice: . files
Baptiste Daroussin
bapt at FreeBSD.org
Sun Nov 13 22:38:17 UTC 2016
Author: bapt
Date: Sun Nov 13 22:38:15 2016
New Revision: 426069
URL: https://svnweb.freebsd.org/changeset/ports/426069
Log:
Fix runtime issues related to thread_locale
__cxa_thread_atexit which is needed when building c++11 program using
thread_locale is only defined on FreeBSD 11-STABLE and 12-CURRENT
Backout the change in libreoffice which happened during the 5.2 dev phase adding
thread_locale
PR: 214473
Reported by: Dušan Vejnovič <freebsd at dussan.org>
Tested by: Dušan Vejnovič <freebsd at dussan.org>
Added:
head/editors/libreoffice/files/patch-vcl_inc_unx_gtk_gtkinst.hxx (contents, props changed)
head/editors/libreoffice/files/patch-vcl_unx_gtk_gtkinst.cxx (contents, props changed)
Modified:
head/editors/libreoffice/Makefile.common
head/editors/libreoffice/files/patch-Makefile.in
Modified: head/editors/libreoffice/Makefile.common
==============================================================================
--- head/editors/libreoffice/Makefile.common Sun Nov 13 22:26:53 2016 (r426068)
+++ head/editors/libreoffice/Makefile.common Sun Nov 13 22:38:15 2016 (r426069)
@@ -2,7 +2,7 @@
PORTNAME= libreoffice
PORTVERSION= 5.2.3
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES+= editors
MAINTAINER= office at FreeBSD.org
Modified: head/editors/libreoffice/files/patch-Makefile.in
==============================================================================
--- head/editors/libreoffice/files/patch-Makefile.in Sun Nov 13 22:26:53 2016 (r426068)
+++ head/editors/libreoffice/files/patch-Makefile.in Sun Nov 13 22:38:15 2016 (r426069)
@@ -1,4 +1,4 @@
---- Makefile.in.orig 2016-11-11 12:49:08 UTC
+--- Makefile.in.orig 2016-10-28 14:50:26 UTC
+++ Makefile.in
@@ -52,7 +52,7 @@ $(BUILDDIR)/config_host.mk : $(wildcard
Added: head/editors/libreoffice/files/patch-vcl_inc_unx_gtk_gtkinst.hxx
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/editors/libreoffice/files/patch-vcl_inc_unx_gtk_gtkinst.hxx Sun Nov 13 22:38:15 2016 (r426069)
@@ -0,0 +1,11 @@
+--- vcl/inc/unx/gtk/gtkinst.hxx.orig 2016-10-28 14:50:26 UTC
++++ vcl/inc/unx/gtk/gtkinst.hxx
+@@ -46,7 +46,7 @@ class GtkPrintWrapper;
+ class GenPspGraphics;
+ class GtkYieldMutex : public SalYieldMutex
+ {
+- thread_local static std::stack<sal_uIntPtr> yieldCounts;
++ std::list<sal_uLong> aYieldStack;
+
+ public:
+ GtkYieldMutex() {}
Added: head/editors/libreoffice/files/patch-vcl_unx_gtk_gtkinst.cxx
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/editors/libreoffice/files/patch-vcl_unx_gtk_gtkinst.cxx Sun Nov 13 22:38:15 2016 (r426069)
@@ -0,0 +1,42 @@
+--- vcl/unx/gtk/gtkinst.cxx.orig 2016-11-13 15:24:04 UTC
++++ vcl/unx/gtk/gtkinst.cxx
+@@ -298,28 +298,29 @@ SalPrinter* GtkInstance::CreatePrinter(
+ * for each pair, so we can accurately restore
+ * it later.
+ */
+-thread_local std::stack<sal_uIntPtr> GtkYieldMutex::yieldCounts;
+
+ void GtkYieldMutex::ThreadsEnter()
+ {
+ acquire();
+- if (!yieldCounts.empty()) {
+- auto n = yieldCounts.top();
+- yieldCounts.pop();
+- for (; n != 0; --n) {
++ if( !aYieldStack.empty() )
++ { /* Previously called ThreadsLeave() */
++ sal_uLong nCount = aYieldStack.front();
++ aYieldStack.pop_front();
++ while( nCount-- > 1 )
+ acquire();
+- }
+ }
+ }
+
+ void GtkYieldMutex::ThreadsLeave()
+ {
++ aYieldStack.push_front( mnCount );
+ assert(mnCount != 0);
+- auto n = mnCount - 1;
+- yieldCounts.push(n);
+- for (sal_uIntPtr i = 0; i != n + 1; ++i) {
++ SAL_WARN_IF(
++ mnThreadId && mnThreadId != osl::Thread::getCurrentIdentifier(),
++ "vcl.gtk", "other thread " << mnThreadId << " owns the mutex");
++ while( mnCount > 1 )
+ release();
+- }
++ release();
+ }
+
+ SalVirtualDevice* GtkInstance::CreateVirtualDevice( SalGraphics *pG,
More information about the svn-ports-all
mailing list