Ticket #39130

correct header file name versionhelpers.h

Open Date: 2019-04-14 07:21 Last Update: 2019-04-17 23:58

Reporter:
Owner:
(None)
Type:
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Rejected
File:
None
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

The distributed name of versionhelpers.h is VersionHelpers.h
mingw created this file as versionhelpers.h, which only works when compiling on windows with a case agnostic filesystem.

Ticket History (3/3 Histories)

2019-04-14 07:21 Updated by: rich_coe
  • New Ticket "correct header file name versionhelpers.h" created
2019-04-17 23:37 Updated by: keith
  • Status Update from Open to Closed
  • Resolution Update from None to Rejected
Comment

This is a can of worms I'd rather not open!

The distributed name of versionhelpers.h is VersionHelpers.h

Says who? Our distributed name is "versionhelpers.h", (all lower case). For it to be otherwise creates near-infinite scope of mixed case possibilities, for creative naming across the entire gamut of system header files. We adopt a simple rule: all system header files will be consistently named in lower case — always. That's not just me being pig-headed; it's a rational choice, to ensure predictability for compilation on platforms which actually care about file name case, and it isn't going to change.

only works when compiling on windows with a case agnostic filesystem

Sure, if you compile on Windows, the Windows BDOS is case agnostic; (IIRC, the underlying NTFS is actually case-sensitive, but Windows normally abstracts that to give the appearance of case neutrality). That property allows Microsoft to be creative, in their coding examples, by using mixed case header file names. They aren't even always consistent, in such usage, but they are delighted when you follow suit, because it just adds lock-in potential for their ghastly OS. If you care about cross-compiling on a host with a case sensitive file system, then you should never write code which refers to system header files using mixed case names. Always use lower case only references; this will allow your code to compile on Windows, and on any platform with a case sensitive file system, (provided your system headers, on such a case sensitive platform, are all named exclusively in lower case — as MinGW's always will be).

2019-04-17 23:58 Updated by: rich_coe
Comment

The case of the file as distributed by MS is VersionHelpers.h.

I didn't make the file, name the file, or write it in the software I was compiling.

If the originator of the file calls it VersionHelpers, maybe mingw should too. Or not.

I discovered the problem and reported it. Perhaps this report will save someone some time when they find the same issue.

Maybe it gets fixed in mingw so no one else finds it. Or not.

Attachment File List

No attachments

Edit

Please login to add comment to this ticket » Login