[cxxtools] Fix FTBFS on ARM.
Jon Ciesla
limb at fedoraproject.org
Sat Sep 22 14:49:46 UTC 2012
commit 0e28bc1a095cf25c919ce1330dabde9c6a3515d2
Author: Jon Ciesla <limburgher at gmail.com>
Date: Sat Sep 22 09:49:32 2012 -0500
Fix FTBFS on ARM.
cxxtools-2.1.1-arm.patch | 278 ++++++++++++++++++++++++++++++++++++++++++++++
cxxtools.spec | 7 +-
2 files changed, 284 insertions(+), 1 deletions(-)
---
diff --git a/cxxtools-2.1.1-arm.patch b/cxxtools-2.1.1-arm.patch
new file mode 100644
index 0000000..1f07025
--- /dev/null
+++ b/cxxtools-2.1.1-arm.patch
@@ -0,0 +1,278 @@
+--- src/csvparser.cpp~ 2012-09-21 14:19:12.000000000 -0500
++++ src/csvparser.cpp 2012-09-21 14:32:10.667705093 -0500
+@@ -76,7 +76,7 @@
+
+ void CsvParser::advance(Char ch)
+ {
+- if (ch == L'\n')
++ if ( (int) ch == (int) L'\n')
+ ++_lineNo;
+
+ switch (_state)
+@@ -86,13 +86,13 @@
+ {
+ _titles.back() += ch.narrow();
+ }
+- else if (ch == L'\n' || ch == L'\r')
++ else if ( (int) ch == (int) L'\n' || (int) ch == (int) L'\r')
+ {
+ log_debug("title=\"" << _titles.back() << '"');
+ _noColumns = 1;
+- _state = (ch == L'\r' ? state_cr : state_rowstart);
++ _state = ( (int) ch == (int) L'\r' ? state_cr : state_rowstart);
+ }
+- else if (ch == L'\'' || ch == L'"')
++ else if ( (int) ch == (int) L'\'' || (int) ch == (int) L'"')
+ {
+ _quote = ch;
+ _state = state_detectDelim_q;
+@@ -119,17 +119,17 @@
+ break;
+
+ case state_detectDelim_postq:
+- if (isalnum(ch) || ch == L'_' || ch == L'\'' || ch == L'"' || ch == L' ')
++ if (isalnum(ch) || (int) ch == (int) L'_' || (int) ch == (int) L'\'' || (int) ch == (int) L'"' || (int) ch == (int) L' ')
+ {
+ std::ostringstream msg;
+ msg << "invalid character '" << ch.narrow() << "' within csv title of column " << _titles.size();
+ SerializationError::doThrow(msg.str());
+ }
+- else if (ch == L'\n' || ch == L'\r')
++ else if ( (int) ch == (int) L'\n' || (int) ch == (int) L'\r')
+ {
+ log_debug("title=\"" << _titles.back() << '"');
+ _noColumns = 1;
+- _state = (ch == L'\r' ? state_cr : state_rowstart);
++ _state = ( (int) ch == (int) L'\r' ? state_cr : state_rowstart);
+ }
+ else
+ {
+@@ -142,10 +142,10 @@
+ break;
+
+ case state_title:
+- if (ch == L'\n' || ch == L'\r')
++ if ( (int) ch == (int) L'\n' || (int) ch == (int) L'\r')
+ {
+ log_debug("title=\"" << _titles.back() << '"');
+- _state = (ch == L'\r' ? state_cr : state_rowstart);
++ _state = ( (int) ch == (int) L'\r' ? state_cr : state_rowstart);
+ _noColumns = _titles.size();
+ }
+ else if (ch == _delimiter)
+@@ -153,7 +153,7 @@
+ log_debug("title=\"" << _titles.back() << '"');
+ _titles.push_back(std::string());
+ }
+- else if (ch == '\'' || ch == '\"')
++ else if ( (int) ch == (int) '\'' || (int) ch == (int) '\"')
+ {
+ if (_titles.back().empty())
+ {
+@@ -185,10 +185,10 @@
+ break;
+
+ case state_qtitlep:
+- if (ch == L'\n' || ch == L'\r')
++ if ( (int) ch == (int) L'\n' || (int) ch == (int) L'\r')
+ {
+ log_debug("title=\"" << _titles.back() << '"');
+- _state = (ch == L'\r' ? state_cr : state_rowstart);
++ _state = ( (int) ch == (int) L'\r' ? state_cr : state_rowstart);
+ _noColumns = _titles.size();
+ }
+ else if (ch == _delimiter)
+--- src/csvparser.cpp~ 2012-09-21 14:32:24.000000000 -0500
++++ src/csvparser.cpp 2012-09-21 14:47:26.251661276 -0500
+@@ -82,7 +82,7 @@
+ switch (_state)
+ {
+ case state_detectDelim:
+- if (isalnum(ch) || ch == L'_' || ch == ' ')
++ if (isalnum(ch) || (int) ch == (int) L'_' || (int) ch == (int) ' ')
+ {
+ _titles.back() += ch.narrow();
+ }
+@@ -207,7 +207,7 @@
+
+ case state_cr:
+ _state = state_rowstart;
+- if (ch == L'\n')
++ if ( (int) ch == (int) L'\n')
+ {
+ break;
+ }
+@@ -228,14 +228,14 @@
+ _column < _titles.size() ? _titles[_column] : std::string(),
+ std::string(), SerializationInfo::Value);
+
+- if (ch == L'\n' || ch == L'\r')
++ if ( (int) ch == (int) L'\n' || (int) ch == (int) L'\r')
+ {
+ _deserializer->leaveMember();
+ checkNoColumns(_column, _noColumns, _lineNo);
+ _deserializer->leaveMember();
+- _state = (ch == L'\r' ? state_cr : state_rowstart);
++ _state = ( (int) ch == (int) L'\r' ? state_cr : state_rowstart);
+ }
+- else if (ch == L'"' || ch == L'\'')
++ else if ((int) ch == L'"' || (int) ch == L'\'')
+ {
+ _quote = ch;
+ _state = state_qdata;
+@@ -253,7 +253,7 @@
+ break;
+
+ case state_data0:
+- if (ch == L'"' || ch == L'\'')
++ if ( (int) ch == (int) L'"' || (int) ch == (int) L'\'')
+ {
+ _quote = ch;
+ _state = state_qdata;
+@@ -261,7 +261,7 @@
+ }
+
+ case state_data:
+- if (ch == L'\n' || ch == L'\r')
++ if ( (int) ch == (int) L'\n' || (int) ch == (int) L'\r')
+ {
+ log_debug("value \"" << _value << '"');
+ _deserializer->setValue(_value);
+@@ -269,7 +269,7 @@
+ checkNoColumns(_column, _noColumns, _lineNo);
+ _deserializer->leaveMember(); // leave data item
+ _deserializer->leaveMember(); // leave row
+- _state = (ch == L'\r' ? state_cr : state_rowstart);
++ _state = ( (int) ch == (int) L'\r' ? state_cr : state_rowstart);
+ }
+ else if (ch == _delimiter)
+ {
+@@ -307,11 +307,11 @@
+ break;
+
+ case state_qdata_end:
+- if (ch == L'\n' || ch == L'\r')
++ if ( (int) ch == (int) L'\n' || (int) ch == (int) L'\r')
+ {
+ checkNoColumns(_column, _noColumns, _lineNo);
+ _deserializer->leaveMember(); // leave row
+- _state = (ch == L'\r' ? state_cr : state_rowstart);
++ _state = ( (int) ch == (int) L'\r' ? state_cr : state_rowstart);
+ }
+ else if (ch == _delimiter)
+ {
+--- src/jsonformatter.cpp~ 2012-05-03 11:06:16.000000000 -0500
++++ src/jsonformatter.cpp 2012-09-21 16:10:58.726176999 -0500
+@@ -323,25 +323,25 @@
+ {
+ for (std::string::const_iterator it = str.begin(); it != str.end(); ++it)
+ {
+- if (*it == '"')
++ if ( (int) *it == (int) '"')
+ *_ts << L'\\'
+ << L'\"';
+- else if (*it == '\\')
++ else if ( (int) *it == (int) '\\')
+ *_ts << L'\\'
+ << L'\\';
+- else if (*it == '\b')
++ else if ( (int) *it == (int) '\b')
+ *_ts << L'\\'
+ << L'b';
+- else if (*it == '\f')
++ else if ( (int) *it == (int) '\f')
+ *_ts << L'\\'
+ << L'f';
+- else if (*it == '\n')
++ else if ( (int) *it == (int) '\n')
+ *_ts << L'\\'
+ << L'n';
+- else if (*it == '\r')
++ else if ( (int) *it == (int) '\r')
+ *_ts << L'\\'
+ << L'r';
+- else if (*it == '\t')
++ else if ( (int) *it == (int) '\t')
+ *_ts << L'\\'
+ << L't';
+ else if (static_cast<unsigned char>(*it) >= 0x80 || static_cast<unsigned char>(*it) < 0x20)
+@@ -364,25 +364,25 @@
+ {
+ for (cxxtools::String::const_iterator it = str.begin(); it != str.end(); ++it)
+ {
+- if (*it == L'"')
++ if ( (int) *it == (int) L'"')
+ *_ts << L'\\'
+ << L'\"';
+- else if (*it == L'\\')
++ else if ( (int) *it == (int) L'\\')
+ *_ts << L'\\'
+ << L'\\';
+- else if (*it == L'\b')
++ else if ( (int) *it == (int) L'\b')
+ *_ts << L'\\'
+ << L'b';
+- else if (*it == L'\f')
++ else if ( (int) *it == (int) L'\f')
+ *_ts << L'\\'
+ << L'f';
+- else if (*it == L'\n')
++ else if ( (int) *it == (int) L'\n')
+ *_ts << L'\\'
+ << L'n';
+- else if (*it == L'\r')
++ else if ( (int) *it == (int) L'\r')
+ *_ts << L'\\'
+ << L'r';
+- else if (*it == L'\t')
++ else if ( (int) *it == (int) L'\t')
+ *_ts << L'\\'
+ << L't';
+ else if (it->value() >= 0x80 || it->value() < 0x20)
+--- src/xml/entityresolver.cpp~ 2012-05-03 11:06:15.000000000 -0500
++++ src/xml/entityresolver.cpp 2012-09-21 17:51:22.973780927 -0500
+@@ -563,19 +563,19 @@
+
+ String EntityResolver::resolveEntity(const String& entity) const
+ {
+- if (!entity.empty() && entity[0] == L'#')
++ if (!entity.empty() && (int) entity[0] == (int) L'#')
+ {
+ int code = 0;
+- if (entity.size() > 2 && entity[1] == L'x')
++ if (entity.size() > 2 && (int) entity[1] == (int) L'x')
+ {
+ // hex notation: ꯍ
+ for (String::const_iterator it = entity.begin() + 2; it != entity.end(); ++it)
+ {
+- if (*it >= L'0' && *it <= L'9')
++ if ( (int) *it >= (int) L'0' && (int) *it <= (int) L'9')
+ code = code * 16 + (it->value() - L'0');
+- else if (*it >= L'A' && *it <= L'F')
++ else if ( (int) *it >= (int) L'A' && (int) *it <= (int) L'F')
+ code = code * 16 + (it->value() - L'A' + 10);
+- else if (*it >= L'a' && *it <= L'f')
++ else if ( (int) *it >= (int) L'a' && (int) *it <= (int) L'f')
+ code = code * 16 + (it->value() - L'a' + 10);
+ else
+ throw std::runtime_error(std::string("invalid entity ") + entity.narrow());
+@@ -586,7 +586,7 @@
+ // dec notation: ✏
+ for (String::const_iterator it = entity.begin() + 1; it != entity.end(); ++it)
+ {
+- if (*it >= L'0' && *it <= L'9')
++ if ( (int) *it >= (int) L'0' && (int) *it <= (int) L'9')
+ code = code * 10 + (it->value() - '0');
+ else
+ throw std::runtime_error(std::string("invalid entity ") + entity.narrow());
+--- src/bin/formatter.cpp~ 2012-05-03 11:35:06.000000000 -0500
++++ src/bin/formatter.cpp 2012-09-21 21:23:28.796827789 -0500
+@@ -218,7 +218,7 @@
+
+ if (type == "int")
+ {
+- if (value.size() > 0 && (value[0] == L'-' || value[0] == L'+'))
++ if (value.size() > 0 && ( (int) value[0] == (int) L'-' || (int) value[0] == (int) L'+'))
+ {
+ int64_t v = convert<int64_t>(value);
+ printInt(*_out, v, name);
diff --git a/cxxtools.spec b/cxxtools.spec
index 563cc8f..d2d050b 100644
--- a/cxxtools.spec
+++ b/cxxtools.spec
@@ -1,12 +1,13 @@
Name: cxxtools
Version: 2.1.1
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: A collection of general-purpose C++ classes
Group: System Environment/Libraries
License: LGPLv2+
URL: http://www.tntnet.org/cxxtools.html
Source0: http://www.tntnet.org/download/cxxtools-%{version}.tar.gz
+Patch0: cxxtools-2.1.1-arm.patch
Provides: bundled(md5-polstra)
@@ -24,6 +25,7 @@ Development files for %{name}
%prep
%setup -q
+%patch0 -p0
# fix spurious executable perm
find -name "*.cpp" -exec chmod -x {} \;
@@ -65,6 +67,9 @@ rm -rf $RPM_BUILD_ROOT
%{_includedir}/cxxtools/
%changelog
+* Fri Sep 21 2012 Jon Ciesla <limburgher at gmail.com> - 2.1.1-5
+- Fix FTBFS on ARM.
+
* Thu Jul 26 2012 Dan HorĂ¡k <dan[at]danny.cz> - 2.1.1-4
- fix build on s390(x) where atomicity detection fails
More information about the scm-commits
mailing list