@@ -348,6 +348,7 @@ config.swift_demangle_yamldump = inferSwiftBinary('swift-demangle-yamldump')
348
348
config .swift_demangle = inferSwiftBinary ('swift-demangle' )
349
349
config .benchmark_o = inferSwiftBinary ('Benchmark_O' )
350
350
config .benchmark_driver = inferSwiftBinary ('Benchmark_Driver' )
351
+ config .lld = inferSwiftBinary ('lld' )
351
352
config .wasm_ld = inferSwiftBinary ('wasm-ld' )
352
353
config .swift_plugin_server = inferSwiftBinary ('swift-plugin-server' )
353
354
config .swift_parse_test = inferSwiftBinary ('swift-parse-test' )
@@ -451,6 +452,8 @@ if run_os == 'openbsd' and run_cpu == 'amd64':
451
452
run_ptrsize = '64' if ('64' in run_cpu or run_cpu == "s390x" ) else '32'
452
453
if run_cpu == 'arm64_32' :
453
454
run_ptrsize = '32'
455
+ if run_cpu == 'avr' :
456
+ run_ptrsize = '16'
454
457
455
458
run_ptrauth = 'ptrauth' if run_cpu == 'arm64e' else 'noptrauth'
456
459
run_endian = 'little' if run_cpu != 's390x' else 'big'
@@ -2052,6 +2055,90 @@ elif run_os == 'wasi':
2052
2055
# The Swift interpreter is not available when targeting WebAssembly/WASI.
2053
2056
config .available_features .discard ('swift_interpreter' )
2054
2057
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
+
2055
2142
else :
2056
2143
lit_config .fatal ("Don't know how to define target_run and "
2057
2144
"target_build_swift for platform " + config .variant_triple )
0 commit comments