bugmake - Bugs: bug #65776, [PATCH 1/3] win32 STAT_LITE

 
 

bug #65776: [PATCH 1/3] win32 STAT_LITE

Submitter:  Dan D <bulk88>
Submitted:  Thu 23 May 2024 12:21:38 AM UTC
   
 
Severity:  3 - Normal Item Group:  Enhancement
Status:  None Privacy:  Public
Assigned to:  None Open/Closed:  Open
Component Version:  None Operating System:  MS Windows
Fixed Release:  None Triage Status:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Mon 27 May 2024 03:35:34 PM UTC, comment #2: 

I check my Win2K PC, kernel32.dll has GetFileAttributesEx, my WinME also has GetFileAttributesEx, my Win 95 test box, NO.

https://www.betaarchive.com/wiki/index.php?title=Microsoft_KB_Archive/250301 says GFAEx() added Win 98 for Dos Windows family

https://www.geoffchappell.com/studies/windows/win32/kernel32/history/names40.htm added in NT 4.0 for NT Kernel family

I'd vote to abandon support for Win 95, since its a DOS Win OS, and the DOS Windows (95/98/ME) were always unstable, and its very unlikely any legacy/airgap type, business users, still exist. The legacy business users would have all picked NT 4 or Win 2K at the time (1998-2003 ish) for BSOD/stability reasons for whatever private biz apps they were using. Plus GFAEx() is available on Win 98/ME, so gnumake isn't dropping all "dos win" support, with this improvement/patch, just Win 95. By still supporting Win98 "on paper", gnumake is compat with 25 years of Dos Win, and NT 4, even more years.


I could write a runtime function symbol name lookup LoadLibrary/GetProcAddress and fallback to a stat() shim at runtime if GFAEx() is missing. I might need a global Win32 stat() shim or total stat() reimplement, that I will put in another patch ticket, for early 2000s GCC Mingw 3.4.5, I see severe perf problems, or 32b vs 64b time_t/file_timestamp_t/stat() problems with that CC. My VC 6 same Win2k machine is fine.

small chance this "stat_lite()" function might become "stat_full()" for VC 6 build in the future, or GCC+Win 2000, or any CC+Win2K, because of the CC's or the old Win OS's libc's 32 bit time_t and/or 32b file size C struct, and 64b stat()/time() is unimplement by the CC or OS, 1998-2000-ish, and gmake casting up/down those 2 pieces of data, to 64b and down to 32b in many places. And gmake C code base, I'd throw a wild guess, is too dependent on 64b time_t/64b file size by 2024.

Dan D <bulk88>
Thu 23 May 2024 06:24:37 AM UTC, comment #1: 

We don't use GetFileAttributesEx because it doesn't exist on old Windows systems, and GNU Make still wants to support those old systems.

So I don't think we should make these changes, sorrty.

Eli Zaretskii <eliz>
Group Member
Thu 23 May 2024 12:21:38 AM UTC, original submission:  

3 parts for clear git history/dev logic, can be squashed if needed

Dan D <bulk88>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by eliz (Posted a comment)
  • -email is unavailable- added by bulk88 (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2024-05-23 bulk88 Attached File- Added 0001-win32-STAT_LITE-part-1.patch, #56084
        Attached File- Added 0002-win32-STAT_LITE-part-2.patch, #56085
        Attached File- Added 0003-win32-STAT_LITE-part-3.patch, #56086

    Back to the top

    Powered by Savane 3.15-e6e5.
    Corresponding source code