Menu

#2180 dirent.h broken

WSL
closed
nobody
None
Bug
duplicate
Unknown
False
2014-01-25
2014-01-25
No

There is a discrepancy in the declaration of struct dirent and the implementation. struct dirent is defined in terms of time_t, whos type depends on _USE_32BIT_TIME_T being defined. That means that the implementation will use a type that depends upon _USE_32BIT_TIME_T being defined while building the library, while an application will see a struct that depends on _USE_32BIT_TIME_T being defined when compiling the application. There should be either a redirection similar to findfirst, providing 2 implementations (4 including the wide char versions) in the library, or the declaration being changed to explicit use either __time32_t or __time64_t, and the implementation explicitely use findfirst32/findfirst64i32 accordingly.

Discussion

  • Keith Marshall

    Keith Marshall - 2014-01-25
    • status: unread --> closed
    • Resolution: none --> duplicate
     
  • Keith Marshall

    Keith Marshall - 2014-01-25

    This should have been fixed, by the patch I attached to ticket [#2106]; it looks like the promise to apply it was never fulfilled.

     

    Related

    Issues: #2106