From f1c795baf1268c2650c706fc2aec28c2a7fbaf0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= 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 @@ +#include "doctok/resourceids.hxx" +#include "resourcemodel/QNameToString.hxx" + +namespace writerfilter +{ +} 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 & out) +#include "ooxml/resourceids.hxx" +#include "resourcemodel/QNameToString.hxx" + +namespace writerfilter +{ +} - \ No newline at end of file + 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 + +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 -#include -#include -#include - -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