diff --git a/dotnet/targets/Xamarin.Shared.Sdk.targets b/dotnet/targets/Xamarin.Shared.Sdk.targets index 61cb909dd5..c29eb68d20 100644 --- a/dotnet/targets/Xamarin.Shared.Sdk.targets +++ b/dotnet/targets/Xamarin.Shared.Sdk.targets @@ -705,7 +705,7 @@ Condition="'$(_SdkIsSimulator)' != 'true' And '$(_PlatformName)' != 'macOS'" DependsOnTargets="_ComputeVariables" Inputs="@(_AssembliesToAOT)" - Outputs="@(_AssembliesToAOT -> '$(_AOTOutputDirectory)%(Arch)\%(Filename)%(Extension).o')"> + Outputs="@(_AssembliesToAOT -> '%(ObjectFile)');@(_AssembliesToAOT -> '%(LLVMFile)');"> @@ -733,12 +733,11 @@ SdkRoot="$(_SdkRoot)" TargetFrameworkMoniker="$(_ComputedTargetFrameworkMoniker)" > - - <_XamarinMainLibraries Include="@(_AOTObjectFiles)" /> + <_XamarinMainLibraries Include="@(_AssembliesToAOT -> '%(ObjectFile)')" /> diff --git a/tools/dotnet-linker/Steps/ComputeAOTArguments.cs b/tools/dotnet-linker/Steps/ComputeAOTArguments.cs index 0b6535c636..79d90cefec 100644 --- a/tools/dotnet-linker/Steps/ComputeAOTArguments.cs +++ b/tools/dotnet-linker/Steps/ComputeAOTArguments.cs @@ -39,6 +39,7 @@ namespace Xamarin.Linker { var llvmFile = string.Empty; if ((abi & Abi.LLVM) == Abi.LLVM) throw ErrorHelper.CreateError (99, $"Support for LLVM hasn't been implemented yet."); + var objectFile = Path.Combine (outputDirectory, arch, Path.GetFileName (input) + ".o"); app.GetAotArguments (asm.FullPath, abi, outputDirectory, aotAssembly, llvmFile, aotData, out var processArguments, out var aotArguments, Path.GetDirectoryName (Configuration.AOTCompiler)); item.Metadata.Add ("Arguments", StringUtils.FormatArguments (aotArguments)); item.Metadata.Add ("ProcessArguments", StringUtils.FormatArguments (processArguments)); @@ -46,6 +47,7 @@ namespace Xamarin.Linker { item.Metadata.Add ("Arch", arch); item.Metadata.Add ("AOTData", aotData); item.Metadata.Add ("AOTAssembly", aotAssembly); + item.Metadata.Add ("ObjectFile", objectFile); } assembliesToAOT.Add (item);