@@ -348,6 +348,7 @@ config.swift_demangle_yamldump = inferSwiftBinary('swift-demangle-yamldump')
348348config .swift_demangle = inferSwiftBinary ('swift-demangle' )
349349config .benchmark_o = inferSwiftBinary ('Benchmark_O' )
350350config .benchmark_driver = inferSwiftBinary ('Benchmark_Driver' )
351+ config .lld = inferSwiftBinary ('lld' )
351352config .wasm_ld = inferSwiftBinary ('wasm-ld' )
352353config .swift_plugin_server = inferSwiftBinary ('swift-plugin-server' )
353354config .swift_parse_test = inferSwiftBinary ('swift-parse-test' )
@@ -451,6 +452,8 @@ if run_os == 'openbsd' and run_cpu == 'amd64':
451452run_ptrsize = '64' if ('64' in run_cpu or run_cpu == "s390x" ) else '32'
452453if run_cpu == 'arm64_32' :
453454 run_ptrsize = '32'
455+ if run_cpu == 'avr' :
456+ run_ptrsize = '16'
454457
455458run_ptrauth = 'ptrauth' if run_cpu == 'arm64e' else 'noptrauth'
456459run_endian = 'little' if run_cpu != 's390x' else 'big'
@@ -2052,6 +2055,90 @@ elif run_os == 'wasi':
20522055 # The Swift interpreter is not available when targeting WebAssembly/WASI.
20532056 config .available_features .discard ('swift_interpreter' )
20542057
2058+ elif config .external_embedded_platform :
2059+ lit_config .note ("Testing embedded platform " + config .variant_triple )
2060+
2061+ config .target_object_format = "elf"
2062+ config .target_sdk_name = "embedded"
2063+ config .target_runtime = "native"
2064+ config .target_shared_library_prefix = 'lib'
2065+ config .target_shared_library_suffix = ".so"
2066+ config .target_library_path_var = "LD_LIBRARY_PATH"
2067+
2068+ config .target_swift_autolink_extract = inferSwiftBinary ("swift-autolink-extract" )
2069+
2070+ embedded_test_support = os .path .join (config .swift_utils , 'embedded-test-support/embedded-test-support.py' )
2071+ PATH = config .environment ['PATH' ]
2072+
2073+ device = config .external_embedded_device
2074+ embedded_swift_flags = subprocess .check_output ([embedded_test_support , "--device" , device , "print-swift-flags" ], env = config .environment ).rstrip ().decode ('utf-8' )
2075+ embedded_swift_frontend_flags = subprocess .check_output ([embedded_test_support , "--device" , device , "print-swift-frontend-flags" ], env = config .environment ).rstrip ().decode ('utf-8' )
2076+ embedded_clang_flags = subprocess .check_output ([embedded_test_support , "--device" , device , "print-c-flags" ], env = config .environment ).rstrip ().decode ('utf-8' )
2077+
2078+ config .target_build_swift = ' ' .join ([
2079+ config .swiftc ,
2080+ '-target' , config .variant_triple ,
2081+ embedded_swift_flags ,
2082+ mcp_opt , config .swift_test_options ,
2083+ config .swift_driver_test_options , swift_execution_tests_extra_flags ])
2084+ config .target_codesign = "echo"
2085+ config .target_build_swift_dylib = (
2086+ "%s -parse-as-library -emit-library -static -o '\\ 1'"
2087+ % (config .target_build_swift ))
2088+ config .target_add_rpath = ''
2089+ config .target_swift_frontend = ' ' .join ([
2090+ config .swift_frontend ,
2091+ '-target' , config .variant_triple , embedded_swift_frontend_flags ,
2092+ config .resource_dir_opt , mcp_opt ,
2093+ config .swift_test_options , config .swift_frontend_test_options ])
2094+ subst_target_swift_frontend_mock_sdk = config .target_swift_frontend
2095+ subst_target_swift_frontend_mock_sdk_after = ""
2096+ config .target_run = embedded_test_support + ' --device %s run --elf-file ' % device
2097+ config .target_env_prefix = ''
2098+
2099+ config .target_sil_opt = (
2100+ '%s -target %s %s %s %s' %
2101+ (config .sil_opt , config .variant_triple , config .resource_dir_opt , mcp_opt , config .sil_test_options ))
2102+ subst_target_sil_opt_mock_sdk = config .target_sil_opt
2103+ subst_target_sil_opt_mock_sdk_after = ""
2104+ config .target_swift_symbolgraph_extract = ' ' .join ([
2105+ config .swift_symbolgraph_extract ,
2106+ '-target' , config .variant_triple ,
2107+ mcp_opt ])
2108+ config .target_swift_synthesize_interface = ' ' .join ([
2109+ config .swift_synthesize_interface ,
2110+ '-target' , config .variant_triple ,
2111+ mcp_opt ])
2112+ config .target_swift_ide_test = (
2113+ '%s -target %s %s %s %s %s' %
2114+ (config .swift_ide_test , config .variant_triple , config .resource_dir_opt ,
2115+ mcp_opt , ccp_opt , config .swift_ide_test_test_options ))
2116+ subst_target_swift_ide_test_mock_sdk = config .target_swift_ide_test
2117+ subst_target_swift_ide_test_mock_sdk_after = ""
2118+ config .target_swiftc_driver = (
2119+ "%s -target %s -toolchain-stdlib-rpath %s %s" %
2120+ (config .swiftc , config .variant_triple , config .resource_dir_opt , mcp_opt ))
2121+ config .target_stdlib_swiftc_driver = config .target_swiftc_driver
2122+ config .target_swift_modulewrap = (
2123+ '%s -modulewrap -target %s' %
2124+ (config .swiftc , config .variant_triple ))
2125+ config .target_swift_emit_pcm = (
2126+ '%s -emit-pcm -target %s' %
2127+ (config .swiftc , config .variant_triple ))
2128+ config .target_clang = (
2129+ "%s -target %s %s %s" %
2130+ (config .clang , config .variant_triple , embedded_clang_flags , clang_mcp_opt ))
2131+ config .target_ld = (
2132+ "%s -L%r" %
2133+ (config .lld , make_path (test_resource_dir , config .target_sdk_name )))
2134+
2135+ config .available_features .discard ('swift_interpreter' )
2136+
2137+ config .excludes += ['Unit' ]
2138+
2139+ if 'SWIFT_USE_OLD_DRIVER' in config .environment : del config .environment ['SWIFT_USE_OLD_DRIVER' ]
2140+ if 'SWIFT_AVOID_WARNING_USING_OLD_DRIVER' in config .environment : del config .environment ['SWIFT_AVOID_WARNING_USING_OLD_DRIVER' ]
2141+
20552142else :
20562143 lit_config .fatal ("Don't know how to define target_run and "
20572144 "target_build_swift for platform " + config .variant_triple )
0 commit comments