This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Patch for Preview: jcf-io.c and Win32 case-insensitive filename handling


> >> This proposed patch aims to resolve gcj compilation glitches due
> >> to the Win32 case-insensitive filesystem. For my native MingW
> >
> >BTW, does it fix the following test case?
> >
> >How/Why?
> 
> Yes, it does.

By God it does! Thank you for finding this out and fixing it!!
Great work!

However, I do have some general comments about this patch for
your consideration:

I might be wrong, but AFAIK, the proper way to do this is to define 
it as a host file system macro 
(http://gcc.gnu.org/onlinedocs/gccint/Filesystem.html) that gets 
defined for MinGW by "gcc/config/i386/xm-mingw32.h" in the manner 
you indicate and "jcf.h" (or perhaps GCC's system.h) could then 
have something like:

    #ifndef OPEN_EXACT_CASE
    #define OPEN_EXACT_CASE open
    #endif

(This macro could perhaps be of use to other GCC front-ends
and that's why the dropped "JCF_".)

AFAICT, Cygwin will also have to define this, but in a different
way from MinGW because it has a strict_case on/off runtime 
setting. (What about MacOS X, where UFS seems to care about
case but HFS+ does not? See
http://developer.apple.com/macosx/win32porting/)

The code looks a bit big to fit in as a macro in a host
header, but then, I don't know where else to really put 
it - "gcc/config/i386/winnt.c" looks strictly for instruction 
output and nothing else seems to fit... 

Perhaps this should really go in libiberty and specified as an 
"extra" object for windows (see "libiberty/config/mh-windows").

There are some minor formatting errors - the front-end is 
especially strict about such things. For example, "foo(bar)"
v/s "foo (bar)", etc.

In jcf-win32.c, you should FindClose(hFile) *after* you have
determined that hFile is not an INVALID_HANDLE_VALUE.

Ranjit.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]