Skip to content

Commit 63b9a3a

Browse files
authored
Fix nativeaot libraries test cross-build (#84870)
1 parent b2fa5bd commit 63b9a3a

1 file changed

Lines changed: 29 additions & 1 deletion

File tree

eng/testing/tests.singlefile.targets

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
<PropertyGroup Condition="'$(TestNativeAot)' == 'true'">
2525
<IlcToolsPath>$(CoreCLRILCompilerDir)</IlcToolsPath>
26-
<IlcToolsPath Condition="'$(TargetArchitecture)' != '$(BuildArchitecture)'">$(CoreCLRCrossILCompilerDir)</IlcToolsPath>
26+
<IlcToolsPath Condition="'$(CrossBuild)' == 'true' or '$(TargetArchitecture)' != '$(BuildArchitecture)'">$(CoreCLRCrossILCompilerDir)</IlcToolsPath>
2727
<SysRoot Condition="('$(CrossBuild)' == 'true' or '$(BuildArchitecture)' != '$(TargetArchitecture)') and '$(HostOS)' != 'windows'">$(ROOTFS_DIR)</SysRoot>
2828
<IlcBuildTasksPath>$(CoreCLRILCompilerDir)netstandard/ILCompiler.Build.Tasks.dll</IlcBuildTasksPath>
2929
<IlcSdkPath>$(CoreCLRAotSdkDir)</IlcSdkPath>
@@ -36,6 +36,34 @@
3636
<SuppressAotAnalysisWarnings>true</SuppressAotAnalysisWarnings>
3737
</PropertyGroup>
3838

39+
<!-- Needed for the amd64 -> amd64 musl cross-build to pass the target flag. -->
40+
<Target Name="_FixIlcTargetTriple"
41+
AfterTargets="SetupOSSpecificProps"
42+
Condition="'$(CrossBuild)' == 'true' and '$(HostOS)' != 'windows'">
43+
<!-- Compute CrossCompileRid, and copy the downstream logic as-is. -->
44+
<PropertyGroup>
45+
<CrossCompileRid>$(RuntimeIdentifier)</CrossCompileRid>
46+
47+
<CrossCompileArch />
48+
<CrossCompileArch Condition="$(CrossCompileRid.EndsWith('-x64'))">x86_64</CrossCompileArch>
49+
<CrossCompileArch Condition="$(CrossCompileRid.EndsWith('-arm64')) and '$(_IsApplePlatform)' != 'true'">aarch64</CrossCompileArch>
50+
<CrossCompileArch Condition="$(CrossCompileRid.EndsWith('-arm64')) and '$(_IsApplePlatform)' == 'true'">arm64</CrossCompileArch>
51+
52+
<TargetTriple />
53+
<TargetTriple Condition="'$(CrossCompileArch)' != ''">$(CrossCompileArch)-linux-gnu</TargetTriple>
54+
<TargetTriple Condition="'$(CrossCompileArch)' != '' and ($(CrossCompileRid.StartsWith('linux-musl')) or $(CrossCompileRid.StartsWith('alpine')))">$(CrossCompileArch)-alpine-linux-musl</TargetTriple>
55+
<TargetTriple Condition="'$(CrossCompileArch)' != '' and ($(CrossCompileRid.StartsWith('freebsd')))">$(CrossCompileArch)-unknown-freebsd12</TargetTriple>
56+
</PropertyGroup>
57+
58+
<ItemGroup>
59+
<LinkerArg Include="--target=$(TargetTriple)" Condition="'$(TargetOS)' != 'osx' and '$(TargetTriple)' != ''" />
60+
</ItemGroup>
61+
</Target>
62+
63+
<ItemGroup Condition="'$(NativeAotSupported)' == 'true'">
64+
<CustomLinkerArg Condition="'$(CrossBuild)' == 'true' and '$(_hostArchitecture)' == '$(_targetArchitecture)' and '$(_hostOS)' != 'windows'" Include="--gcc-toolchain=$(ROOTFS_DIR)/usr" />
65+
</ItemGroup>
66+
3967
<PropertyGroup Condition="'$(PublishSingleFile)' == 'true' or '$(TestNativeAot)' == 'true'">
4068
<DefineConstants>$(DefineConstants);SINGLE_FILE_TEST_RUNNER</DefineConstants>
4169
</PropertyGroup>

0 commit comments

Comments
 (0)