diff options
author | James Knight <james.knight@rockwellcollins.com> | 2016-09-29 17:26:29 -0400 |
---|---|---|
committer | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2016-10-15 23:07:22 +0200 |
commit | b3532dec3739d1f21226bc2087fd8667d87a3916 (patch) | |
tree | fb8166ae21000305771ad138c2e34aff2a406900 /package/rapidxml | |
parent | 46a373e2f59356f70a551507b7b8dc2943fe49ff (diff) | |
download | buildroot-b3532dec3739d1f21226bc2087fd8667d87a3916.tar.gz buildroot-b3532dec3739d1f21226bc2087fd8667d87a3916.zip |
rapidxml: add patch to fix usage with gcc 4.7+
The official `rapidxml` package release only supports up to GCC 4.6.x
for all capabilities. Implementers attempting to include the file
"rapidxml_print.hpp" will all result in a compilation failure when using
a currently supported Buildroot GCC version (all 4.7+ at this time).
With the provided patch, dependent packages will be able to use all of
rapidxml's capabilities using a generated toolchain from Buildroot (let
alone external toolchains).
Signed-off-by: James Knight <james.knight@rockwellcollins.com>
[Thomas: rework patch so that it contains the proper line endings, and
applies properly without a pre-patch hook to convert the line endings
beforehand.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'package/rapidxml')
-rw-r--r-- | package/rapidxml/0001-ensure-internal-print-operations-are-declared-before.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/package/rapidxml/0001-ensure-internal-print-operations-are-declared-before.patch b/package/rapidxml/0001-ensure-internal-print-operations-are-declared-before.patch new file mode 100644 index 0000000000..fcf1b3cce6 --- /dev/null +++ b/package/rapidxml/0001-ensure-internal-print-operations-are-declared-before.patch @@ -0,0 +1,38 @@ +[PATCH] ensure internal print operations are declared before use + +Stock rapidxml-1.13 does not allow implementers of the +`rapidxml_print.hpp` header to build under GCC 4.7 (or newer) due to +compliation issues. This is a result of "Name lookup changes" introduced +in GCC 4.7 [1]. The following adds forward declarations required to +compile with GCC 4.7+. + +This issue has been mentioned upstream [2], but it has yet to be fixed +in official sources. + +[1]: https://gcc.gnu.org/gcc-4.7/porting_to.html +[2]: https://sourceforge.net/p/rapidxml/bugs/16/ + +Signed-off-by: James Knight <james.knight@rockwellcollins.com> + +Index: b/rapidxml_print.hpp +=================================================================== +--- a/rapidxml_print.hpp ++++ b/rapidxml_print.hpp +@@ -101,7 +101,16 @@ +
+ ///////////////////////////////////////////////////////////////////////////
+ // Internal printing operations
+-
++
++ template<class OutIt, class Ch> inline OutIt print_cdata_node(OutIt out, const xml_node<Ch> *node, int flags, int indent);
++ template<class OutIt, class Ch> inline OutIt print_children(OutIt out, const xml_node<Ch> *node, int flags, int indent);
++ template<class OutIt, class Ch> inline OutIt print_comment_node(OutIt out, const xml_node<Ch> *node, int flags, int indent);
++ template<class OutIt, class Ch> inline OutIt print_data_node(OutIt out, const xml_node<Ch> *node, int flags, int indent);
++ template<class OutIt, class Ch> inline OutIt print_declaration_node(OutIt out, const xml_node<Ch> *node, int flags, int indent);
++ template<class OutIt, class Ch> inline OutIt print_doctype_node(OutIt out, const xml_node<Ch> *node, int flags, int indent);
++ template<class OutIt, class Ch> inline OutIt print_element_node(OutIt out, const xml_node<Ch> *node, int flags, int indent);
++ template<class OutIt, class Ch> inline OutIt print_pi_node(OutIt out, const xml_node<Ch> *node, int flags, int indent);
++
+ // Print node
+ template<class OutIt, class Ch>
+ inline OutIt print_node(OutIt out, const xml_node<Ch> *node, int flags, int indent)
|