idl/source/objects/types.cxx                   |    4 +++-
 solenv/gbuild/extensions/pre_MergedLibsList.mk |    2 ++
 starmath/inc/mathml/xparsmlbase.hxx            |    8 ++++----
 starmath/source/mathml/export.cxx              |    2 +-
 starmath/source/mathml/import.cxx              |    4 ++--
 starmath/source/mathml/mathmlexport.cxx        |    2 +-
 starmath/source/mathml/mathmlimport.cxx        |    4 ++--
 starmath/source/mathml/xparsmlbase.cxx         |   17 +++++++++++++----
 8 files changed, 28 insertions(+), 15 deletions(-)

New commits:
commit 87d3f768f3ecded1e1392442181edb287aed9e2e
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Thu Mar 7 13:46:09 2024 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Thu Mar 7 20:14:37 2024 +0100

    add sm to --enable-mergelibs=more
    
    Which means
    
    (1) We need to extend the weak linkage magic for the sfx2 SFX_TYPEMAP
    stuff. Just make it unconditional, since it makes no difference for the
    individual items.
    
    (2) The initialisation of global const Sequence data in starmath stops
    working, because it runs too early. Use function-local static to
    initialise it on-demand
    
    Change-Id: Idc397515cd1d9621a06d237606c19acee600081a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164532
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/idl/source/objects/types.cxx b/idl/source/objects/types.cxx
index 1089e929043c..3228e1cce378 100644
--- a/idl/source/objects/types.cxx
+++ b/idl/source/objects/types.cxx
@@ -249,7 +249,9 @@ void SvMetaType::WriteSfxItem(
 
     // write the implementation part
     rOutStm.WriteOString( "#ifdef SFX_TYPEMAP" ) << endl;
-    rOutStm.WriteOString( "#if !defined(_WIN32) && 
(defined(DISABLE_DYNLOADING) && (defined(ANDROID) || defined(IOS) || 
defined(EMSCRIPTEN) || defined(LINUX)))" ) << endl;
+    rOutStm.WriteOString( "#if defined(_WIN32)" ) << endl;
+    rOutStm.WriteOString( "__declspec(selectany)" ) << endl;
+    rOutStm.WriteOString( "#else" ) << endl;
     rOutStm.WriteOString( "__attribute__((__weak__))" ) << endl;
     rOutStm.WriteOString( "#endif" ) << endl;
     rOutStm.WriteOString( aTypeName ).WriteOString( aVarName )
diff --git a/solenv/gbuild/extensions/pre_MergedLibsList.mk 
b/solenv/gbuild/extensions/pre_MergedLibsList.mk
index aa925cbc91a8..e558790ed38f 100644
--- a/solenv/gbuild/extensions/pre_MergedLibsList.mk
+++ b/solenv/gbuild/extensions/pre_MergedLibsList.mk
@@ -177,6 +177,8 @@ gb_MERGE_LIBRARY_LIST += \
        sdbc2 \
        $(call gb_Helper_optional,DBCONNECTIVITY,sdbt) \
        slideshow \
+       sm \
+       smd \
        $(if $(filter WNT,$(OS)), \
                smplmail \
        ) \
diff --git a/starmath/inc/mathml/xparsmlbase.hxx 
b/starmath/inc/mathml/xparsmlbase.hxx
index 6c645a55e36c..5c06482396ef 100644
--- a/starmath/inc/mathml/xparsmlbase.hxx
+++ b/starmath/inc/mathml/xparsmlbase.hxx
@@ -39,15 +39,15 @@ constexpr sal_Int32 STARMATH_MATHMLHTML_ENTITY_NUMBER = 
2125;
   * Entity names for mathml. Example: &infin -> \u221E;
   * These ones are to be used on import.
   */
-const extern ::css::uno::Sequence<::css::beans::Pair<::rtl::OUString, 
::rtl::OUString>>
-    icustomMathmlHtmlEntities;
+const css::uno::Sequence<::css::beans::Pair<::rtl::OUString, ::rtl::OUString>>&
+getCustomMathmlHtmlEntities();
 
 /**
   * Entity names for mathml. Example: "\u221E"; -> &infin;
   * These ones are to be used on file export.
   */
-const extern ::css::uno::Sequence<::css::beans::Pair<::rtl::OUString, 
::rtl::OUString>>
-    icustomMathmlHtmlEntitiesExport;
+const css::uno::Sequence<::css::beans::Pair<::rtl::OUString, ::rtl::OUString>>&
+getCustomMathmlHtmlEntitiesExport();
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/starmath/source/mathml/export.cxx 
b/starmath/source/mathml/export.cxx
index 60328c89dabf..001a31434eaf 100644
--- a/starmath/source/mathml/export.cxx
+++ b/starmath/source/mathml/export.cxx
@@ -299,7 +299,7 @@ bool SmMLExportWrapper::WriteThroughComponentOS(const 
Reference<io::XOutputStrea
     // connect XML writer to output stream
     xSaxWriter->setOutputStream(xOutputStream);
     if (m_bUseHTMLMLEntities)
-        
xSaxWriter->setCustomEntityNames(starmathdatabase::icustomMathmlHtmlEntitiesExport);
+        
xSaxWriter->setCustomEntityNames(starmathdatabase::getCustomMathmlHtmlEntitiesExport());
 
     // prepare arguments (prepend doc handler to given arguments)
     Sequence<Any> aArgs{ Any(xSaxWriter), Any(rPropSet) };
diff --git a/starmath/source/mathml/import.cxx 
b/starmath/source/mathml/import.cxx
index d857e56930d6..ba1f59fa74f9 100644
--- a/starmath/source/mathml/import.cxx
+++ b/starmath/source/mathml/import.cxx
@@ -390,14 +390,14 @@ ErrCode SmMLImportWrapper::ReadThroughComponentIS(
         Reference<css::xml::sax::XFastDocumentHandler> 
xFastDocHandler(xFilter, UNO_QUERY);
         if (xFastParser)
         {
-            
xFastParser->setCustomEntityNames(starmathdatabase::icustomMathmlHtmlEntities);
+            
xFastParser->setCustomEntityNames(starmathdatabase::getCustomMathmlHtmlEntities());
             xFastParser->parseStream(aParserInput);
         }
         else if (xFastDocHandler)
         {
             Reference<css::xml::sax::XFastParser> xParser
                 = css::xml::sax::FastParser::create(rxContext);
-            
xParser->setCustomEntityNames(starmathdatabase::icustomMathmlHtmlEntities);
+            
xParser->setCustomEntityNames(starmathdatabase::getCustomMathmlHtmlEntities());
             xParser->setFastDocumentHandler(xFastDocHandler);
             xParser->parseStream(aParserInput);
         }
diff --git a/starmath/source/mathml/mathmlexport.cxx 
b/starmath/source/mathml/mathmlexport.cxx
index 1c18e716e7d6..2f0a6f40f2b2 100644
--- a/starmath/source/mathml/mathmlexport.cxx
+++ b/starmath/source/mathml/mathmlexport.cxx
@@ -234,7 +234,7 @@ bool SmXMLExportWrapper::WriteThroughComponent(const 
Reference<io::XOutputStream
     // connect XML writer to output stream
     xSaxWriter->setOutputStream(xOutputStream);
     if (m_bUseHTMLMLEntities)
-        
xSaxWriter->setCustomEntityNames(starmathdatabase::icustomMathmlHtmlEntitiesExport);
+        
xSaxWriter->setCustomEntityNames(starmathdatabase::getCustomMathmlHtmlEntitiesExport());
 
     // prepare arguments (prepend doc handler to given arguments)
     Sequence<Any> aArgs{ Any(xSaxWriter), Any(rPropSet) };
diff --git a/starmath/source/mathml/mathmlimport.cxx 
b/starmath/source/mathml/mathmlimport.cxx
index 7bc3e5b913e3..d93e31a14e60 100644
--- a/starmath/source/mathml/mathmlimport.cxx
+++ b/starmath/source/mathml/mathmlimport.cxx
@@ -264,7 +264,7 @@ ErrCode SmXMLImportWrapper::ReadThroughComponent(const 
Reference<io::XInputStrea
         if (xFastParser)
         {
             if (bUseHTMLMLEntities)
-                
xFastParser->setCustomEntityNames(starmathdatabase::icustomMathmlHtmlEntities);
+                
xFastParser->setCustomEntityNames(starmathdatabase::getCustomMathmlHtmlEntities());
             xFastParser->parseStream(aParserInput);
         }
         else if (xFastDocHandler)
@@ -272,7 +272,7 @@ ErrCode SmXMLImportWrapper::ReadThroughComponent(const 
Reference<io::XInputStrea
             Reference<css::xml::sax::XFastParser> xParser
                 = css::xml::sax::FastParser::create(rxContext);
             if (bUseHTMLMLEntities)
-                
xParser->setCustomEntityNames(starmathdatabase::icustomMathmlHtmlEntities);
+                
xParser->setCustomEntityNames(starmathdatabase::getCustomMathmlHtmlEntities());
             xParser->setFastDocumentHandler(xFastDocHandler);
             xParser->parseStream(aParserInput);
         }
diff --git a/starmath/source/mathml/xparsmlbase.cxx 
b/starmath/source/mathml/xparsmlbase.cxx
index ccfcf0049e77..418126c68b23 100644
--- a/starmath/source/mathml/xparsmlbase.cxx
+++ b/starmath/source/mathml/xparsmlbase.cxx
@@ -2149,9 +2149,13 @@ static ::css::beans::Pair<::rtl::OUString, 
::rtl::OUString>
         // clang-format on
     };
 
-const ::css::uno::Sequence<::css::beans::Pair<OUString, OUString>>
-    starmathdatabase::icustomMathmlHtmlEntities(
+const css::uno::Sequence<::css::beans::Pair<OUString, OUString>>&
+starmathdatabase::getCustomMathmlHtmlEntities()
+{
+    static css::uno::Sequence<::css::beans::Pair<OUString, OUString>> data(
         icustomMathmlHtmlEntitiesData, 
starmathdatabase::STARMATH_MATHMLHTML_ENTITY_NUMBER);
+    return data;
+}
 
 static ::css::beans::Pair<::rtl::OUString, ::rtl::OUString>
     icustomMathmlHtmlEntitiesNamesExportData[2] = {
@@ -2160,7 +2164,12 @@ static ::css::beans::Pair<::rtl::OUString, 
::rtl::OUString>
         { u"&infin;"_ustr, u"\u221E"_ustr}
         // clang-format on
     };
-const ::css::uno::Sequence<::css::beans::Pair<::rtl::OUString, 
::rtl::OUString>>
-    
starmathdatabase::icustomMathmlHtmlEntitiesExport(icustomMathmlHtmlEntitiesNamesExportData,
 2);
+const css::uno::Sequence<::css::beans::Pair<::rtl::OUString, ::rtl::OUString>>&
+starmathdatabase::getCustomMathmlHtmlEntitiesExport()
+{
+    static css::uno::Sequence<::css::beans::Pair<::rtl::OUString, 
::rtl::OUString>> data(
+        icustomMathmlHtmlEntitiesNamesExportData, 2);
+    return data;
+};
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Reply via email to