split qnametostr to try and fit into rhel6 ppc64 toolchain limits

f41
Caolán McNamara 12 years ago
parent 82f23897d9
commit 0eb2ffe687

@ -0,0 +1,304 @@
From f1c795baf1268c2650c706fc2aec28c2a7fbaf0e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 23 Nov 2012 09:42:39 +0000
Subject: [PATCH] split qnametostr up to try and make .o's small enough for
ppc64
i.e. relocation truncated to fix: R_PPC64_TOC16_DS
while I'm at it merge the standalone header/footer files into the .xslt and
simplify the makefile.
Change-Id: Iee0e9b5dd96868f49f1bed22fb5dc6d28c8cef81
---
writerfilter/CustomTarget_source.mk | 16 +++----
writerfilter/Library_writerfilter.mk | 21 ++-------
writerfilter/source/doctok/qnametostr.xsl | 6 +++
writerfilter/source/ooxml/qnametostr.xsl | 8 +++-
.../source/resourcemodel/qnametostrcore.cxx | 52 ++++++++++++++++++++++
writerfilter/source/resourcemodel/qnametostrfooter | 7 ---
writerfilter/source/resourcemodel/qnametostrheader | 48 --------------------
7 files changed, 74 insertions(+), 84 deletions(-)
create mode 100644 writerfilter/source/resourcemodel/qnametostrcore.cxx
delete mode 100644 writerfilter/source/resourcemodel/qnametostrfooter
delete mode 100644 writerfilter/source/resourcemodel/qnametostrheader
diff --git a/writerfilter/CustomTarget_source.mk b/writerfilter/CustomTarget_source.mk
index fc29784..5ee3041 100644
--- a/writerfilter/CustomTarget_source.mk
+++ b/writerfilter/CustomTarget_source.mk
@@ -42,8 +42,8 @@ writerfilter_ALL = \
$(writerfilter_GEN_doctok_ResourceIds_hxx) \
$(writerfilter_GEN_doctok_Resources_cxx) \
$(writerfilter_GEN_doctok_Resources_hxx) \
+ $(writerfilter_GEN_doctok_QNameToStr_cxx) \
$(writerfilter_GEN_doctok_SprmIds_hxx) \
- $(writerfilter_GEN_model_QNameToStr_cxx) \
$(writerfilter_GEN_model_SprmCodeToStr_cxx) \
$(writerfilter_GEN_ooxml_Factory_cxx) \
$(writerfilter_GEN_ooxml_Factory_hxx) \
@@ -52,17 +52,17 @@ writerfilter_ALL = \
$(writerfilter_GEN_ooxml_FastTokens_hxx) \
$(writerfilter_GEN_ooxml_GperfFastToken_hxx) \
$(writerfilter_GEN_ooxml_NamespaceIds_hxx) \
+ $(writerfilter_GEN_ooxml_QNameToStr_cxx) \
$(writerfilter_GEN_ooxml_ResourceIds_hxx) \
$(patsubst %,$(writerfilter_WORK)/OOXMLFactory_%.hxx,$(writerfilter_OOXMLNAMESPACES)) \
$(patsubst %,$(writerfilter_WORK)/OOXMLFactory_%.cxx,$(writerfilter_OOXMLNAMESPACES)) \
writerfilter_DEP_ooxml_Namespaces_txt=$(OUTDIR)/inc/oox/namespaces.txt
-writerfilter_GEN_doctok_QnameToStr_tmp=$(writerfilter_WORK)/DOCTOKqnameToStr.tmp
writerfilter_GEN_doctok_ResourceIds_hxx=$(writerfilter_WORK)/doctok/resourceids.hxx
writerfilter_GEN_doctok_Resources_cxx=$(writerfilter_WORK)/resources.cxx
writerfilter_GEN_doctok_Resources_hxx=$(writerfilter_WORK)/doctok/resources.hxx
+writerfilter_GEN_doctok_QNameToStr_cxx=$(writerfilter_WORK)/doctok/qnametostr.cxx
writerfilter_GEN_doctok_SprmIds_hxx=$(writerfilter_WORK)/doctok/sprmids.hxx
-writerfilter_GEN_model_QNameToStr_cxx=$(writerfilter_WORK)/qnametostr.cxx
writerfilter_GEN_model_SprmCodeToStr_cxx=$(writerfilter_WORK)/sprmcodetostr.cxx
writerfilter_GEN_model_SprmCodeToStr_tmp=$(writerfilter_WORK)/sprmcodetostr.tmp
writerfilter_GEN_ooxml_FactoryValues_cxx=$(writerfilter_WORK)/OOXMLFactory_values.cxx
@@ -76,7 +76,7 @@ writerfilter_GEN_ooxml_Model_processed=$(writerfilter_WORK)/model_preprocessed.x
writerfilter_GEN_ooxml_NamespaceIds_hxx=$(writerfilter_WORK)/ooxml/OOXMLnamespaceids.hxx
writerfilter_GEN_ooxml_Namespacesmap_xsl=$(writerfilter_WORK)/namespacesmap.xsl
writerfilter_GEN_ooxml_Preprocess_xsl=$(writerfilter_WORK)/modelpreprocess.xsl
-writerfilter_GEN_ooxml_QNameToStr_tmp=$(writerfilter_WORK)/OOXMLqnameToStr.tmp
+writerfilter_GEN_ooxml_QNameToStr_cxx=$(writerfilter_WORK)/ooxml/qnametostr.cxx
writerfilter_GEN_ooxml_ResourceIds_hxx=$(writerfilter_WORK)/ooxml/resourceids.hxx
writerfilter_GEN_ooxml_Token_tmp=$(writerfilter_WORK)/token.tmp
writerfilter_GEN_ooxml_Token_xml=$(writerfilter_WORK)/token.xml
@@ -101,7 +101,7 @@ writerfilter_SRC_ooxml_Preprocess_xsl=$(writerfilter_SRC)/ooxml/modelpreprocess.
writerfilter_SRC_ooxml_QNameToStr_xsl=$(writerfilter_SRC)/ooxml/qnametostr.xsl
writerfilter_SRC_ooxml_ResourceIds_xsl=$(writerfilter_SRC)/ooxml/resourceids.xsl
-$(writerfilter_GEN_doctok_QnameToStr_tmp): $(writerfilter_SRC_doctok_QNameToStr_xsl) $(writerfilter_SRC_doctok_Model) | $(writerfilter_WORK)/.dir
+$(writerfilter_GEN_doctok_QNameToStr_cxx): $(writerfilter_SRC_doctok_QNameToStr_xsl) $(writerfilter_SRC_doctok_Model) $(writerfilter_SRC_doctok_ResourceTools_xsl) | $(writerfilter_WORK)/.dir
$(call gb_Output_announce,$@,build,XSL,1)
$(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_doctok_QNameToStr_xsl) $(writerfilter_SRC_doctok_Model)) > $@
@@ -121,10 +121,6 @@ $(writerfilter_GEN_doctok_SprmIds_hxx) : $(writerfilter_SRC_doctok_Model) $(writ
$(call gb_Output_announce,$@,build,XSL,1)
$(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_doctok_SprmIds_xsl) $(writerfilter_SRC_doctok_Model)) > $@
-$(writerfilter_GEN_model_QNameToStr_cxx): $(writerfilter_GEN_ooxml_QNameToStr_tmp) $(writerfilter_GEN_doctok_QnameToStr_tmp) $(writerfilter_SRC)/resourcemodel/qnametostrheader $(writerfilter_SRC)/resourcemodel/qnametostrfooter $(writerfilter_SRC_ooxml_FactoryTools_xsl) $(writerfilter_SRC_doctok_ResourceTools_xsl)
- $(call gb_Output_announce,$@,build,CAT,1)
- cat $(writerfilter_SRC)/resourcemodel/qnametostrheader $(writerfilter_GEN_ooxml_QNameToStr_tmp) $(writerfilter_GEN_doctok_QnameToStr_tmp) $(writerfilter_SRC)/resourcemodel/qnametostrfooter > $@
-
$(writerfilter_GEN_model_SprmCodeToStr_cxx): $(writerfilter_SRC)/resourcemodel/sprmcodetostrheader $(writerfilter_GEN_model_SprmCodeToStr_tmp) $(writerfilter_SRC)/resourcemodel/sprmcodetostrfooter
$(call gb_Output_announce,$@,build,CAT,1)
cat $^ > $@
@@ -179,7 +175,7 @@ $(writerfilter_GEN_ooxml_Preprocess_xsl) : $(writerfilter_SRC_ooxml_Preprocess_x
$(call gb_Output_announce,$@,build,CPY,1)
cp -f $(writerfilter_SRC_ooxml_Preprocess_xsl) $@
-$(writerfilter_GEN_ooxml_QNameToStr_tmp): $(writerfilter_SRC_ooxml_QNameToStr_xsl) $(writerfilter_GEN_ooxml_Model_processed)
+$(writerfilter_GEN_ooxml_QNameToStr_cxx): $(writerfilter_SRC_ooxml_QNameToStr_xsl) $(writerfilter_SRC_ooxml_FactoryTools_xsl) $(writerfilter_GEN_ooxml_Model_processed)
$(call gb_Output_announce,$@,build,XSL,1)
$(call gb_Helper_abbreviate_dirs, $(gb_XSLTPROC) $(writerfilter_SRC_ooxml_QNameToStr_xsl) $(writerfilter_GEN_ooxml_Model_processed)) > $@
diff --git a/writerfilter/Library_writerfilter.mk b/writerfilter/Library_writerfilter.mk
index 1d7c667..870732f 100644
--- a/writerfilter/Library_writerfilter.mk
+++ b/writerfilter/Library_writerfilter.mk
@@ -170,6 +170,7 @@ $(eval $(call gb_Library_add_exception_objects,writerfilter,\
writerfilter/source/resourcemodel/TagLogger \
writerfilter/source/resourcemodel/WW8Analyzer \
writerfilter/source/resourcemodel/XPathLogger \
+ writerfilter/source/resourcemodel/qnametostrcore \
writerfilter/source/resourcemodel/resourcemodel \
writerfilter/source/resourcemodel/util \
))
@@ -180,24 +181,8 @@ $(eval $(call gb_Library_add_generated_exception_objects,writerfilter,\
CustomTarget/writerfilter/source/OOXMLFactory_generated \
CustomTarget/writerfilter/source/OOXMLFactory_values \
CustomTarget/writerfilter/source/sprmcodetostr \
+ CustomTarget/writerfilter/source/doctok/qnametostr \
+ CustomTarget/writerfilter/source/ooxml/qnametostr \
))
-ifneq ($(COM)-$(OS)-$(CPUNAME),GCC-LINUX-POWERPC64)
-#Apparently some compilers, according to the original .mk this was converted
-#from, require this to be noopt or they fail to compile it, probably good to
-#revisit that and narrow this down to where it's necessary
-$(eval $(call gb_Library_add_generated_cxxobjects,writerfilter,\
- CustomTarget/writerfilter/source/qnametostr \
- , $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-else
-#Ironically, on RHEL-6 PPC64 with no-opt the output is too large for the
-#toolchain, "Error: operand out of range", but it build fine with
-#normal flags
-$(eval $(call gb_Library_add_generated_cxxobjects,writerfilter,\
- CustomTarget/writerfilter/source/qnametostr \
- , $(gb_LinkTarget_EXCEPTIONFLAGS) \
-))
-endif
-
# vim: set noet sw=4 ts=4:
diff --git a/writerfilter/source/doctok/qnametostr.xsl b/writerfilter/source/doctok/qnametostr.xsl
index a416512..e3009c9 100644
--- a/writerfilter/source/doctok/qnametostr.xsl
+++ b/writerfilter/source/doctok/qnametostr.xsl
@@ -22,8 +22,14 @@
<xsl:include href="resourcetools.xsl"/>
<xsl:template match="/">
+#include "doctok/resourceids.hxx"
+#include "resourcemodel/QNameToString.hxx"
+
+namespace writerfilter
+{
<xsl:apply-templates select=".//UML:Model" mode="qnametostr"/>
<xsl:apply-templates select='.//UML:Model' mode='sprmidstoxml'/>
<xsl:apply-templates select='.//UML:Model' mode='analyzerdoctokids'/>
+}
</xsl:template>
</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/qnametostr.xsl b/writerfilter/source/ooxml/qnametostr.xsl
index 1dc689f..a7a7d6c 100644
--- a/writerfilter/source/ooxml/qnametostr.xsl
+++ b/writerfilter/source/ooxml/qnametostr.xsl
@@ -113,8 +113,14 @@ void ooxmlidsToXML(::std::ostream &amp; out)
</xsl:template>
<xsl:template match="/">
+#include "ooxml/resourceids.hxx"
+#include "resourcemodel/QNameToString.hxx"
+
+namespace writerfilter
+{
<xsl:call-template name="qnametostr"/>
<xsl:call-template name="ooxmlidstoxml"/>
+}
</xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
+</xsl:stylesheet>
diff --git a/writerfilter/source/resourcemodel/qnametostrcore.cxx b/writerfilter/source/resourcemodel/qnametostrcore.cxx
new file mode 100644
index 0000000..81ed0f1
--- /dev/null
+++ b/writerfilter/source/resourcemodel/qnametostrcore.cxx
@@ -0,0 +1,52 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <resourcemodel/QNameToString.hxx>
+
+namespace writerfilter
+{
+
+QNameToString::Pointer_t QNameToString::pInstance;
+
+QNameToString::Pointer_t WRITERFILTER_RESOURCEMODEL_DLLPUBLIC QNameToString::Instance()
+{
+ if (pInstance.get() == NULL)
+ pInstance = QNameToString::Pointer_t(new QNameToString());
+
+ return pInstance;
+}
+
+string WRITERFILTER_RESOURCEMODEL_DLLPUBLIC QNameToString::operator()(Id qName)
+{
+ string sResult;
+
+ Map::const_iterator aIt = mMap.find(qName);
+
+ if (aIt != mMap.end())
+ sResult = aIt->second;
+
+ return mMap[qName];
+}
+
+QNameToString::QNameToString()
+{
+ init_doctok();
+ init_ooxml();
+}
+
+}
diff --git a/writerfilter/source/resourcemodel/qnametostrfooter b/writerfilter/source/resourcemodel/qnametostrfooter
deleted file mode 100644
index 3c79a48..0000000
--- a/writerfilter/source/resourcemodel/qnametostrfooter
+++ /dev/null
@@ -1,7 +0,0 @@
-QNameToString::QNameToString()
-{
- init_doctok();
- init_ooxml();
-}
-
-}
diff --git a/writerfilter/source/resourcemodel/qnametostrheader b/writerfilter/source/resourcemodel/qnametostrheader
deleted file mode 100644
index c476ff0..0000000
--- a/writerfilter/source/resourcemodel/qnametostrheader
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include <doctok/resourceids.hxx>
-#include <ooxml/resourceids.hxx>
-#include <resourcemodel/QNameToString.hxx>
-#include <stdio.h>
-
-namespace writerfilter
-{
-
-QNameToString::Pointer_t QNameToString::pInstance;
-
-QNameToString::Pointer_t WRITERFILTER_RESOURCEMODEL_DLLPUBLIC QNameToString::Instance()
-{
- if (pInstance.get() == NULL)
- pInstance = QNameToString::Pointer_t(new QNameToString());
-
- return pInstance;
-}
-
-string WRITERFILTER_RESOURCEMODEL_DLLPUBLIC QNameToString::operator()(Id qName)
-{
- string sResult;
-
- Map::const_iterator aIt = mMap.find(qName);
-
- if (aIt != mMap.end())
- sResult = aIt->second;
-
- return mMap[qName];
-}
-
--
1.7.11.7

@ -247,10 +247,11 @@ Patch25: 0001-Resolves-fdo-56198-collect-scrollbar-click-preferenc.patch
Patch26: 0001-disable-failing-check.patch
Patch27: 0001-fiddle-system-db-test-to-link-on-RHEL-6.patch
Patch28: 0001-fix-build-with-icu-4.0.patch
Patch29: 0001-split-qnametostr-up-to-try-and-make-.o-s-small-enoug.patch
%if %{defined rhel} && 0%{?rhel} < 7
Patch29: libreoffice-rhel6gcj.patch
Patch30: libreoffice-rhel6poppler.patch
Patch31: libreoffice-rhel6langs.patch
Patch30: libreoffice-rhel6gcj.patch
Patch31: libreoffice-rhel6poppler.patch
Patch32: libreoffice-rhel6langs.patch
%endif
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
@ -902,10 +903,11 @@ mv -f redhat.soc extras/source/palettes/standard.soc
%patch26 -p1 -b .disable-failing-check.patch
%patch27 -p1 -b .fiddle-system-db-test-to-link-on-RHEL-6.patch
%patch28 -p1 -b .fix-build-with-icu-4.0.patch
%patch29 -p1 -b .split-qnametostr-up-to-try-and-make-.o-s-small-enoug.patch
%if %{defined rhel} && 0%{?rhel} < 7
%patch29 -p1 -b .rhel6gcj.patch
%patch30 -p1 -b .rhel6poppler.patch
%patch31 -p1 -b .rhel6langs.patch
%patch30 -p1 -b .rhel6gcj.patch
%patch31 -p1 -b .rhel6poppler.patch
%patch32 -p1 -b .rhel6langs.patch
%endif
# TODO: check this

Loading…
Cancel
Save