runtime: crossgen2 fails to compile dlls on armel with versionbubble after compilation of ILCompiler.ReadyToRun.dll

Description

This bug is related to compilation of crossgen2 itself with --inputbubble option. It reproduces on tizen armel only, I was not able to reproduce it on ubuntu x64/arm64.

After compilation of System.Private.CoreLib.dll and crossgen2/ILCompiler.ReadyToRun.dll any dll fails to compile, for example error for crossgen2/crossgen2.dll:

Error: Object reference not set to an instance of an object.
System.NullReferenceException: Object reference not set to an instance of an object.
   at ILCompiler.CompilerTypeSystemContext.OpenPEFile(String filePath, MemoryMappedViewAccessor& mappedViewAccessor) in ILCompiler.ReadyToRun.dll:token 0x6000029+0x33
   at ILCompiler.CompilerTypeSystemContext.AddModule(String filePath, String expectedSimpleName, Boolean useForBinding, ModuleData oldModuleData) in ILCompiler.ReadyToRun.dll:token 0x600002a+0xa
   at ILCompiler.CompilerTypeSystemContext.GetOrAddModuleFromPath(String filePath, Boolean useForBinding) in ILCompiler.ReadyToRun.dll:token 0x6000028+0x4e
   at ILCompiler.Program.Run(String[] args) in crossgen2.dll:token 0x600015a+0x18c
   at ILCompiler.Program.Main(String[] args) in crossgen2.dll:token 0x6000162+0x5

crossgen2 compilation command:

./corerun ./crossgen2/crossgen2.dll -r:`pwd`/*.dll -r:`pwd`/crossgen2/*.dll -O --compilebubblegenerics --inputbubble -o:`pwd`/crossgen2/crossgen2.ni.dll `pwd`/crossgen2/crossgen2.dll

Without --inputbubble everything works fine.

Can this happen because armel is not handled correctly somewhere in crossgen2?

cc @alpencolt @jkotas

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 18 (18 by maintainers)

Most upvoted comments

@mangod9 Not really. I’ll move this issue to 7.0.0, as its not a ship blocker for any work done for use in any supported scenarios. However, if @gbalykov is able to find a fix or find a repro which applies to a non-armel scenario we will likely be able to take it into the .NET 6 product, but we will not consider this bug as part of the .NET 6 release.