[Libreoffice-commits] .: 3 commits - bridges/source officecfg/registry RepositoryModule_ooo.mk salhelper/inc salhelper/Library_salhelper.mk salhelper/Makefile salhelper/Module_salhelper.mk salhelper/Package_inc.mk salhelper/prj salhelper/source salhelper/version.mk solenv/gbuild

Stephan Bergmann sbergmann at kemper.freedesktop.org
Thu Dec 15 03:03:33 PST 2011


 RepositoryModule_ooo.mk                           |    1 
 bridges/source/cpp_uno/shared/vtablefactory.cxx   |   10 ++
 officecfg/registry/cppheader.xsl                  |   66 ++++++++---------
 salhelper/Library_salhelper.mk                    |   81 ++++++++++++++++++++++
 salhelper/Makefile                                |   41 +++++++++++
 salhelper/Module_salhelper.mk                     |   35 +++++++++
 salhelper/Package_inc.mk                          |   43 +++++++++++
 salhelper/inc/salhelper/condition.hxx             |   20 ++---
 salhelper/inc/salhelper/dynload.hxx               |    3 
 salhelper/inc/salhelper/salhelperdllapi.h         |   16 ++++
 salhelper/inc/salhelper/simplereferenceobject.hxx |    7 +
 salhelper/inc/salhelper/timer.hxx                 |    7 +
 salhelper/prj/build.lst                           |    3 
 salhelper/prj/d.lst                               |   24 ------
 salhelper/prj/makefile.mk                         |    1 
 salhelper/source/gcc3.map                         |    9 ++
 salhelper/source/makefile.mk                      |   81 ----------------------
 salhelper/source/msci.map                         |   50 -------------
 salhelper/source/mscx.map                         |   50 -------------
 salhelper/source/sols.map                         |   76 --------------------
 salhelper/version.mk                              |   44 -----------
 solenv/gbuild/platform/macosx.mk                  |    4 -
 22 files changed, 290 insertions(+), 382 deletions(-)

New commits:
commit d24bd093602da47349e4b48a7e5082592dcded48
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Thu Dec 15 11:58:10 2011 +0100

    Correctly handle <set> directly within <component>.

diff --git a/officecfg/registry/cppheader.xsl b/officecfg/registry/cppheader.xsl
index 5071fba..df891c2 100644
--- a/officecfg/registry/cppheader.xsl
+++ b/officecfg/registry/cppheader.xsl
@@ -94,49 +94,47 @@
     <xsl:text>&#xA;</xsl:text>
     <xsl:text>#include "sal/config.h"&#xA;</xsl:text>
     <xsl:text>&#xA;</xsl:text>
-    <xsl:if test=".//prop/@oor:nillable = 'true'">
-      <xsl:text>#include "boost/optional.hpp"&#xA;</xsl:text>
-    </xsl:if>
-    <xsl:if test=".//prop/@oor:type = 'oor:any'">
-      <xsl:text>#include "com/sun/star/uno/Any.hxx"&#xA;</xsl:text>
-    </xsl:if>
-    <xsl:if test=".//prop/@oor:type = 'xs:hexBinary' or .//prop/@oor:type = 'oor:boolean-list' or .//prop/@oor:type = 'oor:short-list' or .//prop/@oor:type = 'oor:int-list' or .//prop/@oor:type = 'oor:long-list' or .//prop/@oor:type = 'oor:double-list' or .//prop/@oor:type = 'oor:string-list'">
-      <xsl:text>#include "com/sun/star/uno/Sequence.hxx"&#xA;</xsl:text>
-    </xsl:if>
     <xsl:if test=".//prop or .//set">
+      <xsl:if test=".//prop/@oor:nillable = 'true'">
+        <xsl:text>#include "boost/optional.hpp"&#xA;</xsl:text>
+      </xsl:if>
+      <xsl:if test=".//prop/@oor:type = 'oor:any'">
+        <xsl:text>#include "com/sun/star/uno/Any.hxx"&#xA;</xsl:text>
+      </xsl:if>
+      <xsl:if test=".//prop/@oor:type = 'xs:hexBinary' or .//prop/@oor:type = 'oor:boolean-list' or .//prop/@oor:type = 'oor:short-list' or .//prop/@oor:type = 'oor:int-list' or .//prop/@oor:type = 'oor:long-list' or .//prop/@oor:type = 'oor:double-list' or .//prop/@oor:type = 'oor:string-list'">
+        <xsl:text>#include "com/sun/star/uno/Sequence.hxx"&#xA;</xsl:text>
+      </xsl:if>
       <xsl:text>#include "rtl/ustring.h"&#xA;</xsl:text>
       <xsl:text>#include "rtl/ustring.hxx"&#xA;</xsl:text>
-    </xsl:if>
-    <xsl:if test=".//prop/@oor:type = 'xs:short' or .//prop/@oor:type = 'xs:int' or .//prop/@oor:type = 'xs:long' or .//prop/@oor:type = 'xs:hexBinary'">
-      <xsl:text>#include "sal/types.h"&#xA;</xsl:text>
-    </xsl:if>
-    <xsl:if test=".//prop or .//set">
+      <xsl:if test=".//prop/@oor:type = 'xs:short' or .//prop/@oor:type = 'xs:int' or .//prop/@oor:type = 'xs:long' or .//prop/@oor:type = 'xs:hexBinary'">
+        <xsl:text>#include "sal/types.h"&#xA;</xsl:text>
+      </xsl:if>
       <xsl:text>#include "unotools/configuration.hxx"&#xA;</xsl:text>
-    </xsl:if>
-    <xsl:text>&#xA;</xsl:text>
-    <xsl:text>namespace officecfg { namespace </xsl:text>
-    <xsl:value-of select="$ns1"/>
-    <xsl:if test="$ns2">
-      <xsl:text> { namespace </xsl:text>
-      <xsl:value-of select="$ns2"/>
-      <xsl:if test="$ns3">
+      <xsl:text>&#xA;</xsl:text>
+      <xsl:text>namespace officecfg { namespace </xsl:text>
+      <xsl:value-of select="$ns1"/>
+      <xsl:if test="$ns2">
         <xsl:text> { namespace </xsl:text>
-        <xsl:value-of select="$ns3"/>
+        <xsl:value-of select="$ns2"/>
+        <xsl:if test="$ns3">
+          <xsl:text> { namespace </xsl:text>
+          <xsl:value-of select="$ns3"/>
+        </xsl:if>
       </xsl:if>
-    </xsl:if>
-    <xsl:text> {&#xA;</xsl:text>
-    <xsl:text>&#xA;</xsl:text>
-    <xsl:apply-templates select="group">
-      <xsl:with-param name="path" select="$path"/>
-    </xsl:apply-templates>
-    <xsl:if test="$ns2">
-      <xsl:text>} </xsl:text>
-      <xsl:if test="$ns3">
+      <xsl:text> {&#xA;</xsl:text>
+      <xsl:text>&#xA;</xsl:text>
+      <xsl:apply-templates select="group|set|prop">
+        <xsl:with-param name="path" select="$path"/>
+      </xsl:apply-templates>
+      <xsl:if test="$ns2">
         <xsl:text>} </xsl:text>
+        <xsl:if test="$ns3">
+          <xsl:text>} </xsl:text>
+        </xsl:if>
       </xsl:if>
+      <xsl:text>} }&#xA;</xsl:text>
+      <xsl:text>&#xA;</xsl:text>
     </xsl:if>
-    <xsl:text>} }&#xA;</xsl:text>
-    <xsl:text>&#xA;</xsl:text>
     <xsl:text>#endif&#xA;</xsl:text>
   </xsl:template>
 
commit d11f2ccdcecca78bc654ca0b787ea112c1dfe10c
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Thu Dec 15 11:57:08 2011 +0100

    Resolves: rhbz#767708 avoid SIGBUS writing to overcommitted mmaped diskspace

diff --git a/bridges/source/cpp_uno/shared/vtablefactory.cxx b/bridges/source/cpp_uno/shared/vtablefactory.cxx
index 2703ac0..b049c7f 100644
--- a/bridges/source/cpp_uno/shared/vtablefactory.cxx
+++ b/bridges/source/cpp_uno/shared/vtablefactory.cxx
@@ -40,6 +40,7 @@
 #include "osl/mutex.hxx"
 #include "rtl/alloc.h"
 #include "rtl/ustring.hxx"
+#include "sal/log.hxx"
 #include "sal/types.h"
 #include "typelib/typedescription.hxx"
 
@@ -65,6 +66,10 @@
 #error Unsupported platform
 #endif
 
+#if defined USE_DOUBLE_MMAP
+#include <fcntl.h>
+#endif
+
 using bridges::cpp_uno::shared::VtableFactory;
 
 namespace {
@@ -259,9 +264,10 @@ bool VtableFactory::createBlock(Block &block, sal_Int32 slotCount) const
         }
         unlink(tmpfname);
         delete[] tmpfname;
-        if (ftruncate(block.fd, block.size) == -1)
+        int err = posix_fallocate(block.fd, 0, block.size);
+        if (err != 0)
         {
-            perror("truncation of executable memory area failed");
+            SAL_WARN("bridges", "posix_fallocate failed with code " << err);
             close(block.fd);
             block.fd = -1;
             break;
commit a4312af08cbd8c69ba4bead9608f3bf549caf7a0
Author: Matúš Kukan <matus.kukan at gmail.com>
Date:   Thu Jul 28 19:11:15 2011 +0200

    convert salhelper to gbuild
    
    This is a cherry-pick of Matúš's e2f30c078fcf26d481c2e90398b450f6c475a483
    from the feature/gbuild branch, with the following modifications by
    Stephan Bergmann <sbergman at redhat.com>:
    
    * Adapt salhelper/Makefile to what all those Makefiles currently need to
      look like.
    
    * Do not remove salhelper/source/gcc3.map, instead add directly into it
      what otherwise solenv/bin/addsym.awk would add to it on Linux.
    
    * In salhelper/Library_salhelper.mk, add code that on Linux takes care of
      the soname and symbol versioning required for backwards compatibility.
      Solaris would need those features too, and its backwards compatibility
      is thus currently broken.  Also add a bad hack to create the soname
      symlink (xxx.3 -> xxx) in the solver needed on non-Windows platforms (it
      is a bad hack for now in that it e.g. is not removed by "make clean").
    
    * In solenv/gbuild/platform/macosx.mk, add an even worse hack to set the
      correct install name for libuno_salhelpergcc3.dylib.3, with a trailing
      ".3".

diff --git a/RepositoryModule_ooo.mk b/RepositoryModule_ooo.mk
index 7a2d68d..76f0c02 100644
--- a/RepositoryModule_ooo.mk
+++ b/RepositoryModule_ooo.mk
@@ -72,6 +72,7 @@ $(eval $(call gb_Module_add_moduledirs,ooo,\
     qadevOOo \
     regexp \
     reportdesign \
+    salhelper \
     sane \
     sax \
     sc \
diff --git a/salhelper/Library_salhelper.mk b/salhelper/Library_salhelper.mk
new file mode 100644
index 0000000..c77d1f0
--- /dev/null
+++ b/salhelper/Library_salhelper.mk
@@ -0,0 +1,81 @@
+# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*-
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2011 Matúš Kukan <matus.kukan at gmail.com>
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Library_Library,salhelper))
+
+$(eval $(call gb_Library_add_package_headers,salhelper,salhelper_inc))
+
+$(eval $(call gb_Library_add_defs,salhelper,\
+	-DSALHELPER_DLLIMPLEMENTATION \
+))
+
+$(eval $(call gb_Library_add_linked_libs,salhelper,\
+	sal \
+	$(gb_STDLIBS) \
+))
+
+$(eval $(call gb_Library_add_exception_objects,salhelper,\
+    salhelper/source/condition \
+    salhelper/source/dynload \
+    salhelper/source/simplereferenceobject \
+    salhelper/source/timer \
+))
+
+# At least on Linux, for backwards compatibility the salhelper library needs a
+# specific soname and symbol versioning.  The symbols in the gcc3.map should be
+# those not already filtered out due to hidden visibility, so combining the
+# visibility feature with the version map file feature works well.
+# Solaris would need something like this, too.  Its backwards compatibility is
+# broken for now:
+
+ifeq ($(OS),LINUX)
+
+$(eval $(call gb_Library_add_ldflags,salhelper, \
+    -Wl$(COMMA)--soname=libuno_salhelpergcc3.so.3 \
+    -Wl$(COMMA)--version-script=$(SRCDIR)/salhelper/source/gcc3.map \
+))
+
+$(call gb_LinkTarget_get_target,$(call \
+gb_Library_get_linktargetname,salhelper)): $(SRCDIR)/salhelper/source/gcc3.map
+
+endif
+
+# A hack to generate the soname symlink in the solver:
+
+ifneq ($(OS),WNT)
+
+$(call gb_Library_get_target,salhelper): | \
+    $(call gb_Library_get_target,salhelper).3
+
+$(call gb_Library_get_target,salhelper).3:
+	$(call gb_Helper_abbreviate_dirs,rm -f $@)
+	$(call gb_Helper_abbreviate_dirs, \
+        ln -s $(notdir $(call gb_Library_get_target,salhelper)) $@)
+
+endif
+
+# vim: set noet sw=4 ts=4:
diff --git a/salhelper/Makefile b/salhelper/Makefile
new file mode 100644
index 0000000..2289c83
--- /dev/null
+++ b/salhelper/Makefile
@@ -0,0 +1,41 @@
+# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*-
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org.  If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+gb_PARTIALBUILD := T
+ifeq ($(strip $(SOLARENV)),)
+include $(dir $(realpath $(firstword $(MAKEFILE_LIST))))/../solenv/gbuild/source_and_rerun.mk
+else
+
+gb_SourceEnvAndRecurse_STAGE=gbuild
+include $(SOLARENV)/gbuild/gbuild.mk
+
+$(eval $(call gb_Module_make_global_targets,$(shell ls $(dir $(realpath $(firstword $(MAKEFILE_LIST))))/Module*.mk)))
+
+endif
+
+# vim: set noet sw=4 ts=4:
diff --git a/salhelper/Module_salhelper.mk b/salhelper/Module_salhelper.mk
new file mode 100644
index 0000000..08df523
--- /dev/null
+++ b/salhelper/Module_salhelper.mk
@@ -0,0 +1,35 @@
+# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*-
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2011 Matúš Kukan <matus.kukan at gmail.com>
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Module_Module,salhelper))
+
+$(eval $(call gb_Module_add_targets,salhelper,\
+	Library_salhelper \
+	Package_inc \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/salhelper/Package_inc.mk b/salhelper/Package_inc.mk
new file mode 100644
index 0000000..744489c
--- /dev/null
+++ b/salhelper/Package_inc.mk
@@ -0,0 +1,43 @@
+# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*-
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2011 Matúš Kukan <matus.kukan at gmail.com>
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Package_Package,salhelper_inc,$(SRCDIR)/salhelper/inc/salhelper))
+
+$(eval $(call gb_Package_add_file,salhelper_inc,inc/salhelper/salhelperdllapi.h,salhelperdllapi.h))
+$(eval $(call gb_Package_add_file,salhelper_inc,inc/salhelper/condition.hxx,condition.hxx))
+$(eval $(call gb_Package_add_file,salhelper_inc,inc/salhelper/dynload.hxx,dynload.hxx))
+$(eval $(call gb_Package_add_file,salhelper_inc,inc/salhelper/future.hxx,future.hxx))
+$(eval $(call gb_Package_add_file,salhelper_inc,inc/salhelper/futurequeue.hxx,futurequeue.hxx))
+$(eval $(call gb_Package_add_file,salhelper_inc,inc/salhelper/linkhelper.hxx,linkhelper.hxx))
+$(eval $(call gb_Package_add_file,salhelper_inc,inc/salhelper/monitor.hxx,monitor.hxx))
+$(eval $(call gb_Package_add_file,salhelper_inc,inc/salhelper/queue.hxx,queue.hxx))
+$(eval $(call gb_Package_add_file,salhelper_inc,inc/salhelper/refobj.hxx,refobj.hxx))
+$(eval $(call gb_Package_add_file,salhelper_inc,inc/salhelper/simplereferenceobject.hxx,simplereferenceobject.hxx))
+$(eval $(call gb_Package_add_file,salhelper_inc,inc/salhelper/singletonref.hxx,singletonref.hxx))
+$(eval $(call gb_Package_add_file,salhelper_inc,inc/salhelper/timer.hxx,timer.hxx))
+
+# vim: set noet sw=4 ts=4:
diff --git a/salhelper/inc/salhelper/condition.hxx b/salhelper/inc/salhelper/condition.hxx
index efc042c..c50bc87 100644
--- a/salhelper/inc/salhelper/condition.hxx
+++ b/salhelper/inc/salhelper/condition.hxx
@@ -33,7 +33,7 @@
 
 #include <osl/conditn.h>
 #include <osl/mutex.hxx>
-
+#include "salhelperdllapi.h"
 
 namespace salhelper
 {
@@ -41,7 +41,7 @@ namespace salhelper
     class ConditionWaiter;
 
 
-    class Condition
+    class SALHELPER_DLLPUBLIC Condition
     {
         friend class ConditionModifier;
         friend class ConditionWaiter;
@@ -59,8 +59,8 @@ namespace salhelper
 
 
     private:
-        Condition(Condition &); // not defined
-        void operator =(Condition &); // not defined
+        SALHELPER_DLLPRIVATE Condition(Condition &); // not defined
+        SALHELPER_DLLPRIVATE void operator =(Condition &); // not defined
 
         osl::Mutex&  m_aMutex;
         oslCondition m_aCondition;
@@ -68,7 +68,7 @@ namespace salhelper
 
 
 
-    class ConditionModifier
+    class SALHELPER_DLLPUBLIC ConditionModifier
     {
     public:
 
@@ -78,15 +78,15 @@ namespace salhelper
 
 
     private:
-        ConditionModifier(ConditionModifier &); // not defined
-        void operator =(ConditionModifier &); // not defined
+        SALHELPER_DLLPRIVATE ConditionModifier(ConditionModifier &); // not defined
+        SALHELPER_DLLPRIVATE void operator =(ConditionModifier &); // not defined
 
         Condition& m_aCond;
     };
 
 
 
-    class ConditionWaiter
+    class SALHELPER_DLLPUBLIC ConditionWaiter
     {
     public:
 
@@ -112,8 +112,8 @@ namespace salhelper
 
 
     private:
-        ConditionWaiter(ConditionWaiter &); // not defined
-        void operator =(ConditionWaiter &); // not defined
+        SALHELPER_DLLPRIVATE ConditionWaiter(ConditionWaiter &); // not defined
+        SALHELPER_DLLPRIVATE void operator =(ConditionWaiter &); // not defined
 
         Condition& m_aCond;
     };
diff --git a/salhelper/inc/salhelper/dynload.hxx b/salhelper/inc/salhelper/dynload.hxx
index 8f03251..66bf6b2 100644
--- a/salhelper/inc/salhelper/dynload.hxx
+++ b/salhelper/inc/salhelper/dynload.hxx
@@ -32,13 +32,14 @@
 #include <sal/types.h>
 #include <rtl/ustring.hxx>
 #include <osl/module.h>
+#include "salhelperdllapi.h"
 
 namespace salhelper
 {
 
 /** The ORealDynamicLoader is an implementation helper class for the template loader ODynamicLoader.
  */
-class ORealDynamicLoader
+class SALHELPER_DLLPUBLIC ORealDynamicLoader
 {
 public:
     /** initializes the loader, loads the library and call the initialization fucntion.
diff --git a/salhelper/inc/salhelper/salhelperdllapi.h b/salhelper/inc/salhelper/salhelperdllapi.h
new file mode 100644
index 0000000..0d90087
--- /dev/null
+++ b/salhelper/inc/salhelper/salhelperdllapi.h
@@ -0,0 +1,16 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+#ifndef INCLUDED_SALHELPERDLLAPI_H
+#define INCLUDED_SALHELPERDLLAPI_H
+
+#include "sal/types.h"
+
+#if defined(SALHELPER_DLLIMPLEMENTATION)
+#define SALHELPER_DLLPUBLIC  SAL_DLLPUBLIC_EXPORT
+#else
+#define SALHELPER_DLLPUBLIC  SAL_DLLPUBLIC_IMPORT
+#endif
+#define SALHELPER_DLLPRIVATE SAL_DLLPRIVATE
+
+#endif /* INCLUDED_SALHELPERDLLAPI_H */
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/salhelper/inc/salhelper/simplereferenceobject.hxx b/salhelper/inc/salhelper/simplereferenceobject.hxx
index 43ca440..13c8d65 100644
--- a/salhelper/inc/salhelper/simplereferenceobject.hxx
+++ b/salhelper/inc/salhelper/simplereferenceobject.hxx
@@ -31,6 +31,7 @@
 
 #include "osl/interlck.h"
 #include "sal/types.h"
+#include "salhelperdllapi.h"
 
 #ifndef INCLUDED_CSTDDEF
 #include <cstddef>
@@ -69,7 +70,7 @@ namespace salhelper {
     objects are of no use, anyway, it seems best to simply declare and not
     define (private) operators new[] and delete[].
  */
-class SimpleReferenceObject
+class SALHELPER_DLLPUBLIC SimpleReferenceObject
 {
 public:
     inline SimpleReferenceObject() SAL_THROW(()): m_nCount(0) {}
@@ -114,12 +115,12 @@ private:
     /** not implemented
         @internal
      */
-    SimpleReferenceObject(SimpleReferenceObject &);
+    SALHELPER_DLLPRIVATE SimpleReferenceObject(SimpleReferenceObject &);
 
     /** not implemented
         @internal
      */
-    void operator =(SimpleReferenceObject);
+    SALHELPER_DLLPRIVATE void operator =(SimpleReferenceObject);
 
 #ifdef _MSC_VER
 /* We can't now have these private with MSVC2008 at least, it leads to
diff --git a/salhelper/inc/salhelper/timer.hxx b/salhelper/inc/salhelper/timer.hxx
index 7b94b11..c3e8e0f 100644
--- a/salhelper/inc/salhelper/timer.hxx
+++ b/salhelper/inc/salhelper/timer.hxx
@@ -32,6 +32,7 @@
 
 #include <salhelper/simplereferenceobject.hxx>
 #include <osl/time.h>
+#include "salhelperdllapi.h"
 
 namespace salhelper
 {
@@ -133,7 +134,7 @@ class TimerManager;
 
 /** Interface for the Timer and handling the event
 */
-class Timer : public salhelper::SimpleReferenceObject
+class SALHELPER_DLLPUBLIC Timer : public salhelper::SimpleReferenceObject
 {
 public:
 
@@ -222,11 +223,11 @@ private:
 
     /** Copy constructor disabled.
      */
-    Timer( const Timer& rTimer );
+    SALHELPER_DLLPRIVATE Timer( const Timer& rTimer );
 
     /** Assignment operator disabled.
      */
-    void SAL_CALL operator=( const Timer& rTimer );
+    SALHELPER_DLLPRIVATE void SAL_CALL operator=( const Timer& rTimer );
 
     friend class TimerManager;
 };
diff --git a/salhelper/prj/build.lst b/salhelper/prj/build.lst
index 9a21849..a449efe 100644
--- a/salhelper/prj/build.lst
+++ b/salhelper/prj/build.lst
@@ -1,3 +1,2 @@
 shp	salhelper	:	sal NULL
-shp	salhelper		 	usr1	-	all	shp_mkout NULL
-shp	salhelper\source 	nmake	-	all shp_source NULL
+shp	salhelper\prj   	nmake	-	all shp_prj NULL
diff --git a/salhelper/prj/d.lst b/salhelper/prj/d.lst
index 2aa89bb..e69de29 100644
--- a/salhelper/prj/d.lst
+++ b/salhelper/prj/d.lst
@@ -1,24 +0,0 @@
-mkdir: %_DEST%\inc\salhelper
-
-..\inc\salhelper\condition.hxx %_DEST%\inc\salhelper\condition.hxx
-..\inc\salhelper\dynload.hxx %_DEST%\inc\salhelper\dynload.hxx
-..\inc\salhelper\future.hxx %_DEST%\inc\salhelper\future.hxx
-..\inc\salhelper\futurequeue.hxx %_DEST%\inc\salhelper\futurequeue.hxx
-..\inc\salhelper\monitor.hxx %_DEST%\inc\salhelper\monitor.hxx
-..\inc\salhelper\queue.hxx %_DEST%\inc\salhelper\queue.hxx
-..\inc\salhelper\linkhelper.hxx %_DEST%\inc\salhelper\linkhelper.hxx
-..\inc\salhelper\refobj.hxx %_DEST%\inc\salhelper\refobj.hxx
-..\inc\salhelper\simplereferenceobject.hxx %_DEST%\inc\salhelper\simplereferenceobject.hxx
-..\inc\salhelper\singletonref.hxx %_DEST%\inc\salhelper\singletonref.hxx
-..\inc\salhelper\timer.hxx %_DEST%\inc\salhelper\timer.hxx
-
-..\%__SRC%\bin\salhelp*.dll %_DEST%\bin\salhelp*.dll
-..\%__SRC%\bin\uno_salhelp*.dll %_DEST%\bin\uno_salhelp*.dll
-
-..\%__SRC%\lib\*salhelper*.lib %_DEST%\lib\*
-..\%__SRC%\lib\libuno_salhelper*.* %_DEST%\lib\*
-
-..\%__SRC%\lib\libsalhelper*.a %_DEST%\lib\*
-..\%__SRC%\lib\salhelper*.lib %_DEST%\lib\*
-
-linklib: libuno_salhelper*.*.*
diff --git a/salhelper/prj/makefile.mk b/salhelper/prj/makefile.mk
new file mode 100644
index 0000000..0997622
--- /dev/null
+++ b/salhelper/prj/makefile.mk
@@ -0,0 +1 @@
+.INCLUDE : gbuildbridge.mk
diff --git a/salhelper/source/gcc3.map b/salhelper/source/gcc3.map
index 7c63d5d..a461783 100644
--- a/salhelper/source/gcc3.map
+++ b/salhelper/source/gcc3.map
@@ -1,6 +1,7 @@
 UDK_3_0_0 { # should have been UDK_3.0
     global:
-    GetVersionInfo;
+    _ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions
+
     _ZN9salhelper18ORealDynamicLoader11newInstanceEPPS0_RKN3rtl8OUStringES6_;
     _ZN9salhelper18ORealDynamicLoader7acquireEv;
     _ZN9salhelper18ORealDynamicLoader7releaseEv;
@@ -94,3 +95,9 @@ UDK_3.1 {
 
 
 } UDK_3_0_0;
+
+# Unique libstdc++ symbols:
+GLIBCXX_3.4 {
+global:
+_ZGVNSt7num_put*; _ZNSt7num_put*;
+};
diff --git a/salhelper/source/makefile.mk b/salhelper/source/makefile.mk
deleted file mode 100644
index 7b43dd6..0000000
--- a/salhelper/source/makefile.mk
+++ /dev/null
@@ -1,81 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-# 
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org.  If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..
-
-PRJNAME=salhelper
-TARGET=salhelper
-
-ENABLE_EXCEPTIONS=TRUE
-USE_DEFFILE=TRUE
-
-.IF "$(COM)" != "MSC"
-UNIXVERSIONNAMES=UDK
-.ENDIF
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-# --- Files --------------------------------------------------------
-
-SLOFILES=	\
-    $(SLO)$/condition.obj \
-    $(SLO)$/dynload.obj \
-    $(SLO)$/simplereferenceobject.obj \
-    $(SLO)$/timer.obj
-
-.IF "$(COM)" == "MSC"
-SHL1TARGET=	$(TARGET)$(UDK_MAJOR)$(COMID)
-SHL1IMPLIB=	i$(TARGET)
-.ELSE
-SHL1TARGET=	uno_$(TARGET)$(COMID)
-SHL1IMPLIB=	uno_$(TARGET)$(COMID)
-.ENDIF
-
-SHL1STDLIBS=$(SALLIB)
-
-SHL1DEPN=
-SHL1LIBS=	$(SLB)$/$(TARGET).lib
-SHL1DEF=	$(MISC)$/$(SHL1TARGET).def
-SHL1RPATH=  URELIB
-
-DEF1NAME=	$(SHL1TARGET)
-
-.IF "$(COMNAME)"=="msci"
-SHL1VERSIONMAP=msci.map
-.ELIF "$(COMNAME)"=="mscx"
-SHL1VERSIONMAP=mscx.map
-.ELIF "$(COMNAME)"=="sunpro5"
-SHL1VERSIONMAP=sols.map
-.ELIF "$(COMNAME)"=="gcc3"
-SHL1VERSIONMAP=gcc3.map
-.ENDIF
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE :	target.mk
-
diff --git a/salhelper/source/msci.map b/salhelper/source/msci.map
deleted file mode 100644
index b0359e0..0000000
--- a/salhelper/source/msci.map
+++ /dev/null
@@ -1,50 +0,0 @@
-UDK_3_0_0 {
-    global:
-GetVersionInfo
-??0ORealDynamicLoader at salhelper@@IAE at PAPAV01@ABVOUString at rtl@@1PAX2 at Z
-??1ORealDynamicLoader at salhelper@@MAE at XZ
-??_7ORealDynamicLoader at salhelper@@6B@
-?acquire at ORealDynamicLoader@salhelper@@QAAKXZ
-?getApi at ORealDynamicLoader@salhelper@@QBAPAXXZ
-?newInstance at ORealDynamicLoader@salhelper@@SAPAV12 at PAPAV12@ABVOUString at rtl@@1 at Z
-?release at ORealDynamicLoader@salhelper@@QAAKXZ
-??1SimpleReferenceObject at salhelper@@MAE at XZ
-??2SimpleReferenceObject at salhelper@@SAPAXI at Z
-??2SimpleReferenceObject at salhelper@@SAPAXIABUnothrow_t at std@@@Z
-??3SimpleReferenceObject at salhelper@@SAXPAX at Z
-??3SimpleReferenceObject at salhelper@@SAXPAXABUnothrow_t at std@@@Z
-    local:
-        *;
-};
-
-UDK_3.1 {
-    global:
-        ??_VSimpleReferenceObject at salhelper@@KAXPAX at Z;
-        ??_7SimpleReferenceObject at salhelper@@6B@;
-
-        ??0Condition at salhelper@@QAE at AAVMutex@osl@@@Z;
-        ??1Condition at salhelper@@UAE at XZ;
-
-        ??0ConditionModifier at salhelper@@QAE at AAVCondition@1@@Z;
-        ??1ConditionModifier at salhelper@@QAE at XZ;
-
-        ??0ConditionWaiter at salhelper@@QAE at AAVCondition@1@@Z;
-        ??0ConditionWaiter at salhelper@@QAE at AAVCondition@1 at K@Z;
-        ??1ConditionWaiter at salhelper@@QAE at XZ;
-
-        ??0timedout at ConditionWaiter@salhelper@@QAE at XZ;
-        ??0timedout at ConditionWaiter@salhelper@@QAE at ABU012@@Z;
-        ??1timedout at ConditionWaiter@salhelper@@UAE at XZ;
-        ??4timedout at ConditionWaiter@salhelper@@QAEAAU012 at ABU012@@Z;
-
-        ??0Timer at salhelper@@QAE at XZ;
-        ??0Timer at salhelper@@QAE at ABUTTimeValue@1@@Z;
-        ??0Timer at salhelper@@QAE at ABUTTimeValue@1 at 0@Z;
-        ??1Timer at salhelper@@MAE at XZ;
-
-        ?isExpired at Timer@salhelper@@QBAEXZ;
-        ?isTicking at Timer@salhelper@@QBAEXZ;
-        ?setRemainingTime at Timer@salhelper@@QAAXABUTTimeValue at 2@@Z;
-        ?start at Timer@salhelper@@QAAXXZ;
-        ?stop at Timer@salhelper@@QAAXXZ;
-} UDK_3_0_0;
diff --git a/salhelper/source/mscx.map b/salhelper/source/mscx.map
deleted file mode 100644
index 58f26e9..0000000
--- a/salhelper/source/mscx.map
+++ /dev/null
@@ -1,50 +0,0 @@
-UDK_3_0_0 {
-    global:
-GetVersionInfo
-??0ORealDynamicLoader at salhelper@@IEAA at PEAPEAV01@AEBVOUString at rtl@@1PEAX2 at Z
-??1ORealDynamicLoader at salhelper@@MEAA at XZ
-??_7ORealDynamicLoader at salhelper@@6B@
-?acquire at ORealDynamicLoader@salhelper@@QEAAKXZ
-?getApi at ORealDynamicLoader@salhelper@@QEBAPEAXXZ
-?newInstance at ORealDynamicLoader@salhelper@@SAPEAV12 at PEAPEAV12@AEBVOUString at rtl@@1 at Z
-?release at ORealDynamicLoader@salhelper@@QEAAKXZ
-??1SimpleReferenceObject at salhelper@@MEAA at XZ
-??2SimpleReferenceObject at salhelper@@SAPEAX_K at Z
-??2SimpleReferenceObject at salhelper@@SAPEAX_KAEBUnothrow_t at std@@@Z
-??3SimpleReferenceObject at salhelper@@SAXPEAX at Z
-??3SimpleReferenceObject at salhelper@@SAXPEAXAEBUnothrow_t at std@@@Z
-    local:
-        *;
-};
-
-UDK_3.1 {
-    global:
-        ??_VSimpleReferenceObject at salhelper@@KAXPEAX at Z;
-        ??_7SimpleReferenceObject at salhelper@@6B@;
-
-        ??0Condition at salhelper@@QEAA at AEAVMutex@osl@@@Z;
-        ??1Condition at salhelper@@UEAA at XZ;
-
-        ??0ConditionModifier at salhelper@@QEAA at AEAVCondition@1@@Z;
-        ??1ConditionModifier at salhelper@@QEAA at XZ;
-
-        ??0ConditionWaiter at salhelper@@QEAA at AEAVCondition@1@@Z;
-        ??0ConditionWaiter at salhelper@@QEAA at AEAVCondition@1 at K@Z;
-        ??1ConditionWaiter at salhelper@@QEAA at XZ;
-
-        ??0timedout at ConditionWaiter@salhelper@@QEAA at XZ;
-        ??0timedout at ConditionWaiter@salhelper@@QEAA at AEBU012@@Z;
-        ??1timedout at ConditionWaiter@salhelper@@UEAA at XZ;
-        ??4timedout at ConditionWaiter@salhelper@@QEAAAEAU012 at AEBU012@@Z;
-
-        ??0Timer at salhelper@@QEAA at XZ;
-        ??0Timer at salhelper@@QEAA at AEBUTTimeValue@1@@Z;
-        ??0Timer at salhelper@@QEAA at AEBUTTimeValue@1 at 0@Z;
-        ??1Timer at salhelper@@MEAA at XZ;
-
-        ?isExpired at Timer@salhelper@@QEBAEXZ;
-        ?isTicking at Timer@salhelper@@QEBAEXZ;
-        ?setRemainingTime at Timer@salhelper@@QEAAXAEBUTTimeValue at 2@@Z;
-        ?start at Timer@salhelper@@QEAAXXZ;
-        ?stop at Timer@salhelper@@QEAAXXZ;
-} UDK_3_0_0;
diff --git a/salhelper/source/sols.map b/salhelper/source/sols.map
deleted file mode 100644
index 69454b7..0000000
--- a/salhelper/source/sols.map
+++ /dev/null
@@ -1,76 +0,0 @@
-UDK_3.1 { # OOo 1.1.2 SDK
-    global:
-        __1cJsalhelperJCondition2t6MrnDoslFMutex__v_;
-        __1cJsalhelperJCondition2t5B6MrnDoslFMutex__v_;
-        __1cJsalhelperJCondition2T6M_v_;
-        __1cJsalhelperJCondition2T5B6M_v_;
-        __1cJsalhelperbF__RTTI__1nJsalhelperJCondition__;
-        __1cJsalhelperbH__RTTI__1CpnJsalhelperJCondition__;
-        __1cJsalhelperbI__RTTI__1CpknJsalhelperJCondition__;
-
-        __1cJsalhelperRConditionModifier2t6Mrn0AJCondition__v_;
-        __1cJsalhelperRConditionModifier2t5B6Mrn0AJCondition__v_;
-        __1cJsalhelperRConditionModifier2T6M_v_;
-        __1cJsalhelperRConditionModifier2T5B6M_v_;
-
-        __1cJsalhelperPConditionWaiter2t6Mrn0AJCondition__v_;
-        __1cJsalhelperPConditionWaiter2t5B6Mrn0AJCondition__v_;
-        __1cJsalhelperPConditionWaiter2t6Mrn0AJCondition_L_v_; #S-ILP32
-        __1cJsalhelperPConditionWaiter2t6Mrn0AJCondition_I_v_; #S-LP64
-        __1cJsalhelperPConditionWaiter2t5B6Mrn0AJCondition_L_v_; #S-ILP32
-        __1cJsalhelperPConditionWaiter2t5B6Mrn0AJCondition_I_v_; #S-LP64
-        __1cJsalhelperPConditionWaiter2T6M_v_;
-        __1cJsalhelperPConditionWaiter2T5B6M_v_;
-
-        __1cJsalhelperPConditionWaiterItimedout2t6M_v_;
-        __1cJsalhelperPConditionWaiterItimedout2t5B6M_v_;
-        __1cJsalhelperPConditionWaiterItimedout2t6Mrk2_v_;
-        __1cJsalhelperPConditionWaiterItimedout2t5B6Mrk2_v_;
-        __1cJsalhelperPConditionWaiterItimedout2T6M_v_;
-        __1cJsalhelperPConditionWaiterItimedout2T5B6M_v_;
-        __1cJsalhelperPConditionWaiterItimedout2G6Mrk2_r2_;
-        __1cJsalhelperbU__RTTI__1nJsalhelperPConditionWaiterItimedout__;
-        __1cJsalhelperbW__RTTI__1CpnJsalhelperPConditionWaiterItimedout__;
-        __1cJsalhelperbX__RTTI__1CpknJsalhelperPConditionWaiterItimedout__;
-} UDK_3.0;
-
-UDK_3.0 {
-    global:
-GetVersionInfo;
-__1cJsalhelperSORealDynamicLoaderLnewInstance6Fpp1rknDrtlIOUString_7_2_;
-__1cJsalhelperSORealDynamicLoader2t5B6Mpp1rknDrtlIOUString_7pv8_v_;
-__1cJsalhelperSORealDynamicLoader2t6Mpp1rknDrtlIOUString_7pv8_v_;
-__1cJsalhelperSORealDynamicLoaderG__vtbl_;
-__1cJsalhelperSORealDynamicLoader2T5B6M_v_;
-__1cJsalhelperSORealDynamicLoader2T6M_v_;
-__1cJsalhelperbR__RTTI__1CpknJsalhelperSORealDynamicLoader__;
-__1cJsalhelperbQ__RTTI__1CpnJsalhelperSORealDynamicLoader__;
-__1cJsalhelperbO__RTTI__1nJsalhelperSORealDynamicLoader__;
-__1cJsalhelperSORealDynamicLoaderHacquire6M_L_; #S-ILP32
-__1cJsalhelperSORealDynamicLoaderHacquire6M_I_; #S-LP64
-__1cJsalhelperSORealDynamicLoaderHrelease6M_L_; #S-ILP32
-__1cJsalhelperSORealDynamicLoaderHrelease6M_I_; #S-LP64
-__1cJsalhelperSORealDynamicLoaderGgetApi6kM_pv_;
-__1cJsalhelperVSimpleReferenceObject2T5B6M_v_;
-__1cJsalhelperVSimpleReferenceObject2T6M_v_;
-__1cJsalhelperVSimpleReferenceObject2k6Fpv_v_;
-__1cJsalhelperVSimpleReferenceObject2k6FpvrknDstdJnothrow_t__v_;
-__1cJsalhelperVSimpleReferenceObject2n6FI_pv_; #S-ILP32
-__1cJsalhelperVSimpleReferenceObject2n6FL_pv_; #S-LP64
-__1cJsalhelperVSimpleReferenceObject2n6FIrknDstdJnothrow_t__pv_; #S-ILP32
-__1cJsalhelperVSimpleReferenceObject2n6FLrknDstdJnothrow_t__pv_; #S-LP64
-__1cJsalhelperVSimpleReferenceObjectG__vtbl_;
-__1cJsalhelperbR__RTTI__1nJsalhelperVSimpleReferenceObject__;
-__1cJsalhelperbT__RTTI__1CpnJsalhelperVSimpleReferenceObject__;
-__1cJsalhelperbU__RTTI__1CpknJsalhelperVSimpleReferenceObject__;
-    local:
-        *;
-} SALHLP_1_0;
-
-SALHLP_1_0 { # WEAK (backward compatibility, should have been UDK_3.0)
-};
-
-{ # BASE
-_init;
-_fini;
-};
diff --git a/salhelper/version.mk b/salhelper/version.mk
deleted file mode 100644
index 76f6702..0000000
--- a/salhelper/version.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-# 
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org.  If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-# target
-SALHELPER_TARGET=salhelper
-
-# the major 
-SALHELPER_MAJOR=2
-# the minor 
-SALHELPER_MINOR=0
-# the micro 
-SALHELPER_MICRO=0
-
-# this is a c++ compatible library 
-SALHELPER_CPP=1
-
-SALHELPER=$(SALHELPER_TARGET)_$(CMPEXT)
-
-LIBSALHELPER_UNX=lib$(SALHELPER).a.$(SALHELPER_MAJOR)
-LIBSALHELPER_WIN=$(SALHELPER_TARGET)$(SALHELPER_MAJOR)$(CMPEXT).dll
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index 5be5001..e061c6d 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -149,8 +149,10 @@ gb_LinkTarget__RPATHS := \
 	SDKBIN: \
 	NONE:@__VIA_LIBRARY_PATH__@ \
 
+# The below contains a bad hack to set the correct install name for
+# libuno_salhepergcc3.dylib.3, with a trailing ".3":
 define gb_LinkTarget__get_installname
-$(if $(2),-install_name '$(2)$(1)',$(error
+$(if $(2),-install_name '$(2)$(1)$(if $(filter $(1),libuno_salhelpergcc3.dylib),.3)',$(error
     cannot determine -install_name for $(2)))
 endef
 


More information about the Libreoffice-commits mailing list