gdb: Fix phony iconv build
authorPedro Alves <palves@redhat.com>
Mon, 17 Oct 2016 16:13:26 +0000 (17:13 +0100)
committerPedro Alves <palves@redhat.com>
Mon, 17 Oct 2016 16:13:26 +0000 (17:13 +0100)
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.

gdb/ChangeLog
gdb/charset.h

index 4859e27a4d3a45c23878c541ff140c28a5b6386c..4ebbf8d70f7d5746dab20b003fe69a8489d14ed4 100644 (file)
@@ -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>
 
index 64aa58d8a296826fd4a33be1ba48a2daec287757..c5feb0818d3488b519dd955fdbe3429db218438a 100644 (file)
@@ -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;