Re: Case sensitive/insensitive changes needed
"John E. Malmberg" <[email protected]> Mon, 26 Jan 2015 19:26:31 -0600
| Newsgroups | gmane.comp.gnu.make.devel |
|---|---|
| Message-ID | <[email protected]> |
On 1/26/2015 12:10 AM, Eli Zaretskii wrote: >> From: "John E. Malmberg" <[email protected]> >> Date: Sun, 25 Jan 2015 19:16:13 -0600 >> >> Currently on GNU Make is either built to be case sensitive or >> insensitive as a build time parameter. >> >> On Windows and Unix, including OS-X, I think that the case sensitivity >> is a property of the file system, so it is possible to have both case >> sensitive and case insensitive file systems mounted. > > That would need significant refactoring of the Make code, since it > doesn't just stat a file it wants to find, but instead records the > entire directory in memory and hashes the file names. So you need > case-insensitive hashes. That code is already present, but most of it appears to be VMS specific. What I need is to be able to switch it at run-time to behave like Make on Linux. >> The properties of ODS-5 case handling is similar to what MSDOS/Windows >> case handling should be, so it is surprising to me that some of the code >> is VMS specific where it should be common to both. > > I guess the surprise will disappear if I say that both the DOS and > Windows ports of Make are traditionally case-sensitive, even though > the file system isn't. The case-insensitive feature is something > someone contributed, is turned off by default, and I personally never > used it, so I don't know if it works well. As long as the file system is case-preserving and the recipe does not have two files that differ only in case, that should work just fine. Some time in the past, a variant VMS build was needed, apparently for JAVA that needed to deal with that, and apparently that has not come up for other platforms that have case insensitive filenames. The older VMS file system is not case preserving, it presents all files as lowercase to a C program, so it needs case insensitive hashes. If we only needed to support ODS-5 on VMS, a lot of the VMS specific case insensitive code could be removed. >> * hash.h: Will need to do something with these macros. Not sure what >> yet. > > Yes, exactly. Doing TRT with these might open a path to a better > case-insensitive file support on other systems. That is why I am asking about other systems to get some feedback. Thanks, -John [email protected]