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 @@ -526,6 +526,34 @@ if("WASI" IN_LIST SWIFT_SDKS)
526526                                 DESTINATION  "lib/swift_static/${arch_subdir} " 
527527                                 COMPONENT  sdk-overlay)
528528    endif ()
529+ 
530+     set (wasilibc_apinotes_source "SwiftWASILibc.apinotes" )
531+     add_custom_command_target(
532+       copy_wasilibc_apinotes_resource
533+       COMMAND 
534+         "${CMAKE_COMMAND} "  "-E"  "make_directory"  ${SWIFTLIB_DIR} /apinotes ${SWIFTSTATICLIB_DIR} /apinotes
535+       COMMAND 
536+         "${CMAKE_COMMAND} "  "-E"  "copy_if_different" 
537+           "${CMAKE_CURRENT_SOURCE_DIR} /${wasilibc_apinotes_source} "  ${SWIFTLIB_DIR} /apinotes
538+       COMMAND 
539+         "${CMAKE_COMMAND} "  "-E"  "copy_if_different" 
540+           "${CMAKE_CURRENT_SOURCE_DIR} /${wasilibc_apinotes_source} "  ${SWIFTSTATICLIB_DIR} /apinotes
541+       OUTPUT 
542+         ${SWIFTLIB_DIR} /apinotes/${wasilibc_apinotes_source} 
543+         ${SWIFTSTATICLIB_DIR} /apinotes/${wasilibc_apinotes_source} 
544+       COMMENT  "Copying WASILibc API notes to resource directories" )
545+ 
546+     list (APPEND  wasilibc_modulemap_target_list ${copy_wasilibc_apinotes_resource} )
547+     add_dependencies (sdk-overlay ${copy_wasilibc_apinotes_resource} )
548+     swift_install_in_component(FILES  "${wasilibc_apinotes_source} " 
549+                                DESTINATION  "lib/swift/apinotes" 
550+                                COMPONENT  sdk-overlay)
551+     if (SWIFT_BUILD_STATIC_STDLIB)
552+       swift_install_in_component(FILES  "${wasilibc_apinotes_source} " 
553+                                  DESTINATION  "lib/swift_static/apinotes" 
554+                                  COMPONENT  sdk-overlay)
555+     endif ()
556+ 
529557  endforeach ()
530558endif ()
531559add_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