Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Doug Evans <xdje42@gmail.com>
To: Sandra Loosemore <sandra@codesourcery.com>
Cc: gdb-patches <gdb-patches@sourceware.org>
Subject: Re: [patch, testsuite] check for UTF-32 target wide charset support in gdb.base/wchar.exp
Date: Thu, 17 Sep 2015 04:31:00 -0000	[thread overview]
Message-ID: <m3k2rpsm4p.fsf@sspiff.org> (raw)
In-Reply-To: <55FA325D.1020207@codesourcery.com> (Sandra Loosemore's message	of "Wed, 16 Sep 2015 21:24:13 -0600")

Sandra Loosemore <sandra@codesourcery.com> writes:
> This patch is related to the one I posted yesterday to make
> with_target_charset do something reasonable in the absence of ICONV
> support:
>
> https://sourceware.org/ml/gdb-patches/2015-09/msg00357.html
>
> If GDB is configured without ICONV support, the target wide charset
> defaults to "ISO-8859-1" (which isn't even a wide charset), and all
> the wide strings in this test print as gibberish.  Otherwise, GDB
> seems to think the default is "auto; currently UTF-32", so let's make
> the dependency on UTF-32 explicit here and bail out if it's not
> available.
>
> OK to commit?
>
> -Sandra
>
>
> 2015-09-16  Sandra Loosemore  <sandra@codesourcery.com>
>
> 	gdb/testsuite/
> 	* gdb.base/wchar.exp: Require UTF-32 target wide charset support,
> 	otherwise skip this test.
>
> diff --git a/gdb/testsuite/gdb.base/wchar.exp b/gdb/testsuite/gdb.base/wchar.exp
> index 1a5a2d4..171385b 100644
> --- a/gdb/testsuite/gdb.base/wchar.exp
> +++ b/gdb/testsuite/gdb.base/wchar.exp
> @@ -24,6 +24,19 @@ if ![runto "wchar.c:$bp_location" ] then {
>    return -1
>  }
>  
> +# This test requires wide character support in GDB.
> +# Setting the charset may fail if GDB was configured without
> +# ICONV support.
> +gdb_test_multiple "set target-wide-charset UTF-32" "" {
> +    -re "Undefined item.*$gdb_prompt " {
> +	unsupported "Unknown charset UTF-32"
> +	return -1
> +    }
> +    -re ".*$gdb_prompt " {
> +	pass "set target-wide-charset UTF-32"
> +    }
> +}
> +
>  gdb_test "print narrow" "= 97 L'a'"
>  
>  gdb_test "print single" "= 48879 L'\\\\xbeef'"

Yeah, the default for the !iconv case doesn't seem right:

#ifdef PHONY_ICONV

/* Provide a phony iconv that does as little as possible.  Also,
   arrange for there to be a single available character set.  */

#undef GDB_DEFAULT_HOST_CHARSET
#define GDB_DEFAULT_HOST_CHARSET "ISO-8859-1"
#define GDB_DEFAULT_TARGET_CHARSET "ISO-8859-1"
#define GDB_DEFAULT_TARGET_WIDE_CHARSET "ISO-8859-1" <<<<

How reasonable is it to enhance the PHONY_ICONV support so that
it handles this better?
I see it already tries to provide some minimal functionality:

static iconv_t
phony_iconv_open (const char *to, const char *from)
{
  /* We allow conversions from UTF-32BE, wchar_t, and the host charset.
     We allow conversions to wchar_t and the host charset.  */
  if (strcmp (from, "UTF-32BE") && strcmp (from, "wchar_t")
      && strcmp (from, GDB_DEFAULT_HOST_CHARSET))
    return -1;
  if (strcmp (to, "wchar_t") && strcmp (to, GDB_DEFAULT_HOST_CHARSET))
    return -1;

  /* Return 1 if we are converting from UTF-32BE, 0 otherwise.  This is
     used as a flag in calls to iconv.  */
  return !strcmp (from, "UTF-32BE");
}

I don't know, off hand, why big endian is supported and not little endian.


  reply	other threads:[~2015-09-17  4:31 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-17  3:25 Sandra Loosemore
2015-09-17  4:31 ` Doug Evans [this message]
2015-09-17  5:10   ` Eli Zaretskii
2015-09-18  4:38     ` Doug Evans
2015-09-17  5:07 ` Eli Zaretskii
2015-09-17  5:17   ` Sandra Loosemore
2015-09-17  5:59     ` Eli Zaretskii
2015-09-18  4:48     ` Doug Evans
2015-09-29 13:50       ` Pedro Alves
2015-09-18  4:41   ` Doug Evans

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3k2rpsm4p.fsf@sspiff.org \
    --to=xdje42@gmail.com \
    --cc=gdb-patches@sourceware.org \
    --cc=sandra@codesourcery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox