This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Patch for Preview: jcf-io.c and Win32 case-insensitive filename handling
- From: Tom Tromey <tromey at redhat dot com>
- To: gnustuff at thisiscool dot com
- Cc: gcc-patches at gcc dot gnu dot org, java-patches at gcc dot gnu dot org
- Date: 12 Mar 2003 19:18:07 -0700
- Subject: Re: Patch for Preview: jcf-io.c and Win32 case-insensitive filename handling
- References: <2XA0A9U22Y2Y65CBTQVPKH76HMHE.3e6eb0e5@p733>
- Reply-to: tromey at redhat dot com
>>>>> "Mohan" == Mohan Embar <gnustuff at thisiscool dot com> writes:
Mohan> This proposed patch aims to resolve gcj compilation glitches
Mohan> due to the Win32 case-insensitive filesystem.
Mohan> However, public Java classes must exist in same-named,
Mohan> same-case source files and therefore (cringe), I believe that
Mohan> it's the compiler's job (and not the runtime's job) to enforce
Mohan> case-strictness for these specific instances on
Mohan> case-insensitive filesystems. Since there is no portable way
Mohan> of doing this, it stands to reason that platform-specific code
Mohan> must trickle into the front end.
Thanks a lot for looking into this. As I'm sure you know, this is a
longstanding bug and is important to fix for Windows builds.
I have a few comments about this.
My recollection, from my brief and long since past Windows experience,
is that it isn't always easy to control the case of the files you
create on a Windows box. That is, sometimes a tool will not do
exactly what you might like.
If that's the case (and the more Windows knowledgeable should
definitely speak to this) then it seems this approach will make things
harder for gcj users. So that's one (potential) reason to be careful
before committing to this.
Another question which we have to ask is what the JDK does. Can you
find out? I mean in a clean-room way. For instance, does the JDK
require strict case conformance on Windows?
Could you explain the mechanism of the bug a bit more? I don't
understand it, and I'd like to. gcj must make one or more incorrect
decisions that lead it astray. Where are these points? (I've seen a
lot of information about the symptoms of the bug, which is helpful,
but I want to know the cause.)
There are a lot of changes that would need to be made to this code
(for GNU standards conformance) before it can go in. That can come
later.
Tom