public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "costas.argyris at gmail dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug driver/108865] gcc on Windows fails with Unicode path to source file
Date: Tue, 28 Feb 2023 22:07:44 +0000	[thread overview]
Message-ID: <bug-108865-4-xVls5L6Nj8@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-108865-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108865

--- Comment #10 from Costas Argyris <costas.argyris at gmail dot com> ---
The only interesting bit I found there was the shell script that gets called
before actually running windres:

https://github.com/jbruchon/jdupes/blob/master/Makefile#L201

which is doing some setup:

https://github.com/jbruchon/jdupes/blob/master/tune_winres.sh

It is changing some version information, but I don't think this is relevant to
the problem I am having.

Actually to be more precise, what I did did not fail completely, which makes
this even stranger:    I have a custom tool I created a while ago that you pass
it the path to a Windows executable and it tells you the active code page it is
using, and this tool actually reports the correct UTF-8 code page when I use
the patch I posted.    So it looks like it worked at first, but the arguments
passed to the executable are still destroyed before main has a chance to do
anything with them.

It is like the executable itself is successfully converted to use UTF-8, but
the setup done by the OS before reaching the entry point (main) hasn't been
done properly, so the args never reach main properly.    I suspect this is the
part that the ms tools do that we don't.

It makes some sense because on this particular problem, it is the arguments
passed to the program that matter as well, not only the program itself.   
Perhaps the ms tools do some more work on the executable (besides just linking
in the manifest) that signify to the OS loader that the args passed to it must
also be interpreted as UTF-8.    If such a thing is happening, our linking of
the object resource file would never accomplish that I think.

On another note, that program doesn't need to use the UTF-8 manifest because
apparently it is using the wmain approach to get UTF-16 wide strings and
converts them to char-based UTF-8, which wasn't a very good solution for gcc
due to impact on the rest of the programs it spawns:

https://github.com/jbruchon/jdupes/blob/master/jody_win_unicode.c

  parent reply	other threads:[~2023-02-28 22:07 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-20 21:11 [Bug driver/108865] New: " costas.argyris at gmail dot com
2023-02-20 21:23 ` [Bug driver/108865] " pinskia at gcc dot gnu.org
2023-02-20 21:39 ` costas.argyris at gmail dot com
2023-02-20 21:41 ` pinskia at gcc dot gnu.org
2023-02-25 14:15 ` costas.argyris at gmail dot com
2023-02-25 18:27 ` pinskia at gcc dot gnu.org
2023-02-28 21:01 ` costas.argyris at gmail dot com
2023-02-28 21:11 ` costas.argyris at gmail dot com
2023-02-28 21:14 ` pinskia at gcc dot gnu.org
2023-02-28 21:27 ` pinskia at gcc dot gnu.org
2023-02-28 22:07 ` costas.argyris at gmail dot com [this message]
2023-03-01 10:38 ` costas.argyris at gmail dot com
2023-03-01 17:08 ` costas.argyris at gmail dot com
2023-03-02  0:57 ` costas.argyris at gmail dot com
2023-03-02  1:11 ` pinskia at gcc dot gnu.org
2023-03-02  9:56 ` costas.argyris at gmail dot com
2023-03-02 23:50 ` pinskia at gcc dot gnu.org
2023-03-05 23:42 ` costas.argyris at gmail dot com
2023-03-05 23:50 ` pinskia at gcc dot gnu.org
2023-03-06 12:25 ` costas.argyris at gmail dot com
2023-03-09 15:00 ` cvs-commit at gcc dot gnu.org
2023-03-09 16:22 ` pinskia at gcc dot gnu.org
2023-03-22 10:00 ` lh_mouse at 126 dot com
2023-03-22 10:35 ` costas.argyris at gmail dot com
2023-03-22 15:37 ` lh_mouse at 126 dot com
2023-03-23  1:13 ` costas.argyris at gmail dot com
2023-03-23  4:48 ` lh_mouse at 126 dot com
2023-03-23  9:24 ` costas.argyris at gmail dot com
2023-03-23  9:53 ` costas.argyris at gmail dot com
2023-03-24 12:00 ` costas.argyris at gmail dot com
2023-03-24 13:33 ` rguenth at gcc dot gnu.org
2023-03-29 11:58 ` costas.argyris at gmail dot com
2023-03-29 12:01 ` costas.argyris at gmail dot com
2023-03-29 12:20 ` costas.argyris at gmail dot com
2023-11-15  0:05 ` peter0x44 at disroot dot org
2023-11-15  0:10 ` pinskia at gcc dot gnu.org
2023-11-15  0:13 ` pinskia at gcc dot gnu.org
2023-11-15  0:15 ` peter0x44 at disroot dot org
2023-11-15  1:31 ` lh_mouse at 126 dot com
2023-11-15  9:23 ` ebotcazou at gcc dot gnu.org
2023-11-15 13:16 ` costas.argyris at gmail dot com
2023-11-15 13:57 ` ebotcazou at gcc dot gnu.org
2023-11-16 13:41 ` costas.argyris at gmail dot com
2023-11-16 14:57 ` ebotcazou at gcc dot gnu.org
2023-11-18  2:41 ` aoliva at gcc dot gnu.org
2023-11-20 18:35 ` costas.argyris at gmail dot com
2023-11-23  0:49 ` cvs-commit at gcc dot gnu.org
2023-11-29 10:56 ` cvs-commit at gcc dot gnu.org

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=bug-108865-4-xVls5L6Nj8@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).