make-alpha
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Case sensitive/insensitive changes needed


From: John E. Malmberg
Subject: Case sensitive/insensitive changes needed
Date: Sun, 25 Jan 2015 19:16:13 -0600
User-agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0

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.

Traditionally VMS file systems are case insensitive. On the newer ODS-5 file system it is a per process setting to treat the file system as case sensitive or just case preserving.

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.

This means that either some of the VMS specific code is not needed, or there may be a bug that the other case insensitive platforms have not detected yet.


On VMS, instead of having the case sensitivity as a build parameter, I am going to change it to look up the process setting when make starts.

A global variable vms_case_sensitive will be added for VMS to hold that setting.

* dir.c(vms_hash): will not lowercase the filename if
  vms_case_sensitive.

* dir.c(find_directory): VMS specific block will have the same change.

* dir.c(dir_contents_file_exists_p): VMS Specific code will be added
  to also check vms_case_sensitive.  The VMS specific code in that
  module will also be updated.

* dir.c(file_impossible): VMS specific code will be updated.

* dir.c(file_impossible_p):  VMS Specific code will be added.

* file.c(lookup_file): VMS specific code will be updated.

* enter_file.c(enter_file): VMS specific code will be updated.

* vmsfunctions.c(readdir): Not used on any version of VMS that GNU Make
  will currently build on, and is incorrectly uppercasing the result
  where the real readdir() on VMS would have returned a lowercase
  result.  Probably time to just remove this and the related routines.

* vmsify.c(copyto): VMS specific code will be updated.

* hash.h: Will need to do something with these macros.  Not sure what
  yet.

* makeint.h: Have to do something with the patheq macro.

Regards,
-John
address@hidden




reply via email to

[Prev in Thread] Current Thread [Next in Thread]