| Index: gdb/charset.c
 | 
| diff --git a/gdb/charset.c b/gdb/charset.c
 | 
| index f32736a5f7eb3888106a5ed6123db7f8dcb31043..89baf461f4a0b684efae74f6533e2717362af90c 100644
 | 
| --- a/gdb/charset.c
 | 
| +++ b/gdb/charset.c
 | 
| @@ -27,6 +27,7 @@
 | 
|  #include "vec.h"
 | 
|  #include "environ.h"
 | 
|  #include "arch-utils.h"
 | 
| +#include "gdb_vecs.h"
 | 
|  
 | 
|  #include <stddef.h>
 | 
|  #include "gdb_string.h"
 | 
| @@ -107,7 +108,7 @@
 | 
|  #define EILSEQ ENOENT
 | 
|  #endif
 | 
|  
 | 
| -iconv_t
 | 
| +static iconv_t
 | 
|  phony_iconv_open (const char *to, const char *from)
 | 
|  {
 | 
|    /* We allow conversions from UTF-32BE, wchar_t, and the host charset.
 | 
| @@ -123,13 +124,13 @@ phony_iconv_open (const char *to, const char *from)
 | 
|    return !strcmp (from, "UTF-32BE");
 | 
|  }
 | 
|  
 | 
| -int
 | 
| +static int
 | 
|  phony_iconv_close (iconv_t arg)
 | 
|  {
 | 
|    return 0;
 | 
|  }
 | 
|  
 | 
| -size_t
 | 
| +static size_t
 | 
|  phony_iconv (iconv_t utf_flag, const char **inbuf, size_t *inbytesleft,
 | 
|  	     char **outbuf, size_t *outbytesleft)
 | 
|  {
 | 
| @@ -717,8 +718,6 @@ wchar_iterate (struct wchar_iterator *iter,
 | 
|  
 | 
|  extern initialize_file_ftype _initialize_charset; /* -Wmissing-prototype */
 | 
|  
 | 
| -DEF_VEC_P (char_ptr);
 | 
| -
 | 
|  static VEC (char_ptr) *charsets;
 | 
|  
 | 
|  #ifdef PHONY_ICONV
 | 
| @@ -840,7 +839,7 @@ find_charset_names (void)
 | 
|  	 parse the glibc and libiconv formats; feel free to add others
 | 
|  	 as needed.  */
 | 
|  
 | 
| -      while (!feof (in))
 | 
| +      while (in != NULL && !feof (in))
 | 
|  	{
 | 
|  	  /* The size of buf is chosen arbitrarily.  */
 | 
|  	  char buf[1024];
 | 
| @@ -910,11 +909,8 @@ find_charset_names (void)
 | 
|    if (fail)
 | 
|      {
 | 
|        /* Some error occurred, so drop the vector.  */
 | 
| -      int ix;
 | 
| -      char *elt;
 | 
| -      for (ix = 0; VEC_iterate (char_ptr, charsets, ix, elt); ++ix)
 | 
| -	xfree (elt);
 | 
| -      VEC_truncate (char_ptr, charsets, 0);
 | 
| +      free_char_ptr_vec (charsets);
 | 
| +      charsets = NULL;
 | 
|      }
 | 
|    else
 | 
|      VEC_safe_push (char_ptr, charsets, NULL);
 | 
| 
 |