File tree Expand file tree Collapse file tree 3 files changed +52
-0
lines changed Expand file tree Collapse file tree 3 files changed +52
-0
lines changed Original file line number Diff line number Diff line change @@ -508,6 +508,34 @@ if("WASI" IN_LIST SWIFT_SDKS)
508508                                 DESTINATION  "lib/swift_static/${arch_subdir} " 
509509                                 COMPONENT  sdk-overlay)
510510    endif ()
511+ 
512+     set (wasilibc_apinotes_source "SwiftWASILibc.apinotes" )
513+     add_custom_command_target(
514+       copy_wasilibc_apinotes_resource
515+       COMMAND 
516+         "${CMAKE_COMMAND} "  "-E"  "make_directory"  ${SWIFTLIB_DIR} /apinotes ${SWIFTSTATICLIB_DIR} /apinotes
517+       COMMAND 
518+         "${CMAKE_COMMAND} "  "-E"  "copy_if_different" 
519+           "${CMAKE_CURRENT_SOURCE_DIR} /${wasilibc_apinotes_source} "  ${SWIFTLIB_DIR} /apinotes
520+       COMMAND 
521+         "${CMAKE_COMMAND} "  "-E"  "copy_if_different" 
522+           "${CMAKE_CURRENT_SOURCE_DIR} /${wasilibc_apinotes_source} "  ${SWIFTSTATICLIB_DIR} /apinotes
523+       OUTPUT 
524+         ${SWIFTLIB_DIR} /apinotes/${wasilibc_apinotes_source} 
525+         ${SWIFTSTATICLIB_DIR} /apinotes/${wasilibc_apinotes_source} 
526+       COMMENT  "Copying WASILibc API notes to resource directories" )
527+ 
528+     list (APPEND  wasilibc_modulemap_target_list ${copy_wasilibc_apinotes_resource} )
529+     add_dependencies (sdk-overlay ${copy_wasilibc_apinotes_resource} )
530+     swift_install_in_component(FILES  "${wasilibc_apinotes_source} " 
531+                                DESTINATION  "lib/swift/apinotes" 
532+                                COMPONENT  sdk-overlay)
533+     if (SWIFT_BUILD_STATIC_STDLIB)
534+       swift_install_in_component(FILES  "${wasilibc_apinotes_source} " 
535+                                  DESTINATION  "lib/swift_static/apinotes" 
536+                                  COMPONENT  sdk-overlay)
537+     endif ()
538+ 
511539  endforeach ()
512540endif ()
513541add_custom_target (wasilibc_modulemap DEPENDS  ${wasilibc_modulemap_target_list} )
Original file line number Diff line number Diff line change 1+ Name: SwiftWASILibc
2+ Globals:
3+   # errno macro is importable but we provide explicit Swift wrapper
4+   - Name: errno
5+     SwiftPrivate: true
Original file line number Diff line number Diff line change 1+ // RUN: %target-swift-frontend -typecheck -swift-version 6 %s -verify
2+ // REQUIRES: executable_test
3+ // REQUIRES: OS=wasi
4+ 
5+ import  WASILibc
6+ 
7+ // errno is a global thread-local variable, so it should be accessible
8+ // from any context.
9+ 
10+ enum  TestErrno  { 
11+   static  func  testSyncContext( )  { 
12+     _ =  errno
13+     errno =  0 
14+   } 
15+   static  func  testAsyncContext( )  async  { 
16+     _ =  errno
17+     errno =  0 
18+   } 
19+ } 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments