-
Notifications
You must be signed in to change notification settings - Fork 128
Description
When running dotnet/runtime library tests in the effort to trim out assemblies, this linker error is hit.
ILLink: error IL1012: IL Linker has encountered an unexpected error. Please report the issue at https://github.com/mono/linker/issues
Fatal error in IL Linker
Unhandled exception. Mono.Linker.InternalErrorException: Step 'OutputStep' failed when processing assembly 'Microsoft.DotNet.RemoteExecutor, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
---> Mono.Linker.LinkerFatalErrorException: ILLink: error IL1011: Failed to write 'linked/Microsoft.DotNet.RemoteExecutor.dll
---> System.ArgumentException: Member 'System.Int32 Microsoft.DotNet.RemoteExecutor.Program::Main(System.String[])' is declared in another module and needs to be imported
at Mono.Cecil.MetadataBuilder.LookupToken(IMetadataTokenProvider provider)
at Mono.Cecil.MetadataBuilder.BuildModule()
at Mono.Cecil.MetadataBuilder.BuildMetadata()
at Mono.Cecil.ModuleWriter.<>c.<BuildMetadata>b__2_0(MetadataBuilder builder, MetadataReader _)
at Mono.Cecil.ModuleDefinition.Read[TItem,TRet](TItem item, Func`3 read)
at Mono.Cecil.ModuleWriter.BuildMetadata(ModuleDefinition module, MetadataBuilder metadata)
at Mono.Cecil.ModuleWriter.Write(ModuleDefinition module, Disposable`1 stream, WriterParameters parameters)
at Mono.Cecil.ModuleWriter.WriteModule(ModuleDefinition module, Disposable`1 stream, WriterParameters parameters)
at Mono.Cecil.ModuleDefinition.Write(String fileName, WriterParameters parameters)
at Mono.Cecil.AssemblyDefinition.Write(String fileName, WriterParameters parameters)
at Mono.Linker.Steps.OutputStep.WriteAssembly(AssemblyDefinition assembly, String directory, WriterParameters writerParameters)
--- End of inner exception stack trace ---
at Mono.Linker.Steps.OutputStep.WriteAssembly(AssemblyDefinition assembly, String directory, WriterParameters writerParameters)
at Mono.Linker.Steps.OutputStep.WriteAssembly(AssemblyDefinition assembly, String directory)
at Mono.Linker.Steps.OutputStep.OutputAssembly(AssemblyDefinition assembly)
at Mono.Linker.Steps.OutputStep.ProcessAssembly(AssemblyDefinition assembly)
at Mono.Linker.Steps.BaseStep.Process(LinkContext context)
--- End of inner exception stack trace ---
at Mono.Linker.Steps.BaseStep.Process(LinkContext context)
at Mono.Linker.Pipeline.Process(LinkContext context)
at Mono.Linker.Driver.Run(ILogger customLogger)
at Mono.Linker.Driver.Main(String[] args)
Abort trap: 6
Zip file repro steps
Unzip the following and modify the first part of repro.sh /Users/mdhwang/runtime_wasm_clean/.dotnet/dotnet "/Users/mdhwang/.nuget/packages/microsoft.net.illink.tasks/6.0.0-alpha.1.20621.1/tools/net5.0/illink.dll" to conform to local dotnet and illink.
OutputStepLinker.zip
Dotnet/runtime repro steps
Check out https://github.com/mdh1418/runtime/commits/mdhwang/trim_library_tests_linker_bug
In the repo root
./build.sh -os Browser -arch wasm -c Debug
./dotnet.sh build /t:Test src/libraries/System.Buffers/tests/ /p:TargetOS=Browser /p:TargetArchitecture=wasm /p:Configuration=Debug /p:RunNormal=true
/cc @marek-safar