This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] gdb: Fix phony iconv build
- From: Pedro Alves <palves at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 17 Oct 2016 16:17:20 -0000
- Subject: [binutils-gdb] gdb: Fix phony iconv build
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5562a44eb490b5777c9e786971907c0727d88495
commit 5562a44eb490b5777c9e786971907c0727d88495
Author: Pedro Alves <palves@redhat.com>
Date: Mon Oct 17 17:13:26 2016 +0100
gdb: Fix phony iconv build
Cross building gdb for mingw32 on Fedora 23 fails with:
x86_64-w64-mingw32-g++ -g -O2 [...] ../../src/gdb/charset.c
In file included from ../../src/gdb/charset.c:21:0:
../../src/gdb/charset.h:134:3: error: 'iconv_t' does not name a type
iconv_t m_desc;
^
../../src/gdb/charset.c: In constructor 'wchar_iterator::wchar_iterator(const gdb_byte*, size_t, const char*, size_t)':
../../src/gdb/charset.c:600:3: error: 'm_desc' was not declared in this scope
m_desc = iconv_open (INTERMEDIATE_ENCODING, charset);
^
../../src/gdb/charset.c: In destructor 'wchar_iterator::~wchar_iterator()':
../../src/gdb/charset.c:607:7: error: 'm_desc' was not declared in this scope
if (m_desc != (iconv_t) -1)
^
../../src/gdb/charset.c: In member function 'int wchar_iterator::iterate(wchar_iterate_result*, gdb_wchar_t**, const gdb_byte**, size_t*)':
../../src/gdb/charset.c:633:25: error: 'm_desc' was not declared in this scope
size_t r = iconv (m_desc, &inptr, &m_bytes, &outptr, &out_avail);
^
This is a regression caused by commit cda6c55bd399 (Turn wchar
iterator into a class). The problem is that iconv_t is now exposed in
gdb/charset.h, while before it was only used in gdb/charset.c.
gdb/charset.c, under #ifdef PHONY_ICONV, does:
#undef iconv_t
#define iconv_t int
So it seems the simplest is to use 'int' in the header file too.
gdb/ChangeLog:
2016-10-17 Pedro Alves <palves@redhat.com>
* charset.h (class wchar_iterator) [PHONY_ICONV] <m_desc>: Use
'int' as type.
Diff:
---
gdb/ChangeLog | 5 +++++
gdb/charset.h | 4 ++++
2 files changed, 9 insertions(+)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4859e27..4ebbf8d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2016-10-17 Pedro Alves <palves@redhat.com>
+
+ * charset.h (class wchar_iterator) [PHONY_ICONV] <m_desc>: Use
+ 'int' as type.
+
2016-10-14 Sangamesh Mallayya <sangamesh.swamy@in.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
diff --git a/gdb/charset.h b/gdb/charset.h
index 64aa58d..c5feb08 100644
--- a/gdb/charset.h
+++ b/gdb/charset.h
@@ -131,7 +131,11 @@ class wchar_iterator
private:
/* The underlying iconv descriptor. */
+#ifdef PHONY_ICONV
+ int m_desc;
+#else
iconv_t m_desc;
+#endif
/* The input string. This is updated as we convert characters. */
const gdb_byte *m_input;