Skip to content
  • Cheng Shao's avatar
    rts: fix I/O manager compilation errors for win32 target · 710665bd
    Cheng Shao authored and Marge Bot's avatar Marge Bot committed
    This patch fixes I/O manager compilation errors for win32 target
    discovered when cross-compiling to win32 using recent clang:
    
    ```
    rts/win32/ThrIOManager.c:117:7: error:
         error: call to undeclared function 'is_io_mng_native_p'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
          117 |   if (is_io_mng_native_p ()) {
              |       ^
        |
    117 |   if (is_io_mng_native_p ()) {
        |       ^
    
    1 error generated.
    `x86_64-w64-mingw32-clang' failed in phase `C Compiler'. (Exit code: 1)
    
    rts/fs.c:143:28: error:
         error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]
          143 | int setErrNoFromWin32Error () {
              |                            ^
              |                             void
        |
    143 | int setErrNoFromWin32Error () {
        |                            ^
    
    1 error generated.
    `x86_64-w64-mingw32-clang' failed in phase `C Compiler'. (Exit code: 1)
    
    rts/win32/ConsoleHandler.c:227:9: error:
         error: call to undeclared function 'interruptIOManagerEvent'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
          227 |         interruptIOManagerEvent ();
              |         ^
        |
    227 |         interruptIOManagerEvent ();
        |         ^
    
    rts/win32/ConsoleHandler.c:227:9: error:
         note: did you mean 'getIOManagerEvent'?
        |
    227 |         interruptIOManagerEvent ();
        |         ^
    
    rts/include/rts/IOInterface.h:27:10: error:
         note: 'getIOManagerEvent' declared here
           27 | void *   getIOManagerEvent  (void);
              |          ^
       |
    27 | void *   getIOManagerEvent  (void);
       |          ^
    
    1 error generated.
    `x86_64-w64-mingw32-clang' failed in phase `C Compiler'. (Exit code: 1)
    
    rts/win32/ConsoleHandler.c:196:9: error:
         error: call to undeclared function 'setThreadLabel'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
          196 |         setThreadLabel(cap, t, "signal handler thread");
              |         ^
        |
    196 |         setThreadLabel(cap, t, "signal handler thread");
        |         ^
    
    rts/win32/ConsoleHandler.c:196:9: error:
         note: did you mean 'postThreadLabel'?
        |
    196 |         setThreadLabel(cap, t, "signal handler thread");
        |         ^
    
    rts/eventlog/EventLog.h:118:6: error:
         note: 'postThreadLabel' declared here
          118 | void postThreadLabel(Capability    *cap,
              |      ^
        |
    118 | void postThreadLabel(Capability    *cap,
        |      ^
    
    1 error generated.
    `x86_64-w64-mingw32-clang' failed in phase `C Compiler'. (Exit code: 1)
    ```
    710665bd