Commonizer for [mingwX64, mingwX86] is failing on...
# kotlin-native
b
Commonizer for [mingwX64, mingwX86] is failing on Windows Server amd64 (logs in thread). Anyone knows if this is expected due to different architectures?
Copy code
Error: Exception in thread "main" java.lang.IllegalStateException: Classifier platform/windows/EXCEPTION_ROUTINE not found for OutputTarget(targets=[InputTarget(name=mingw_x64, konanTarget=mingw_x64), InputTarget(name=mingw_x86, konanTarget=mingw_x86)])
	at org.jetbrains.kotlin.descriptors.commonizer.builder.TargetDeclarationsBuilderComponents.findClassOrTypeAlias(context.kt:178)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.BuilderUtilsKt.buildType(builderUtils.kt:110)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.BuilderUtilsKt.buildType(builderUtils.kt:92)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.BuilderUtilsKt.buildArgument(builderUtils.kt:176)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.BuilderUtilsKt.collectArguments(builderUtils.kt:155)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.BuilderUtilsKt.buildType(builderUtils.kt:106)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.TypeAliasDescriptorsKt$buildDescriptor$lazyUnderlyingType$1.invoke(typeAliasDescriptors.kt:77)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.TypeAliasDescriptorsKt$buildDescriptor$lazyUnderlyingType$1.invoke(typeAliasDescriptors.kt:76)
	at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:408)
	at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:527)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.CommonizedTypeAliasDescriptor.getUnderlyingType(CommonizedTypeAliasDescriptor.kt:29)
	at org.jetbrains.kotlin.descriptors.impl.AbstractTypeAliasDescriptor.isInner(AbstractTypeAliasDescriptor.kt:55)
	at org.jetbrains.kotlin.descriptors.TypeParameterUtilsKt.computeConstructorTypeParameters(typeParameterUtils.kt:29)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.CommonizedTypeAliasDescriptor$typeConstructorParametersImpl$1.invoke(CommonizedTypeAliasDescriptor.kt:39)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.CommonizedTypeAliasDescriptor$typeConstructorParametersImpl$1.invoke(CommonizedTypeAliasDescriptor.kt:39)
	at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:408)
	at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:527)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.CommonizedTypeAliasDescriptor.getTypeConstructorTypeParameters(CommonizedTypeAliasDescriptor.kt:40)
	at org.jetbrains.kotlin.descriptors.impl.AbstractTypeAliasDescriptor$typeConstructor$1.getParameters(AbstractTypeAliasDescriptor.kt:105)
	at org.jetbrains.kotlin.types.TypeAliasExpansion$Companion.create(TypeAliasExpansion.kt:34)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.BuilderUtilsKt.buildType(builderUtils.kt:222)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.BuilderUtilsKt.buildType(builderUtils.kt:92)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.BuilderUtilsKt.buildType$default(builderUtils.kt:87)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.FunctionDescriptorsKt.buildDescriptor(functionDescriptors.kt:78)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.FunctionDescriptorsKt.buildDescriptor$default(functionDescriptors.kt:36)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.FunctionDescriptorsKt.buildDescriptors(functionDescriptors.kt:27)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.DeclarationsBuilderVisitor2.visitFunctionNode(DeclarationsBuilderVisitor2.kt:77)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.DeclarationsBuilderVisitor2.visitFunctionNode(DeclarationsBuilderVisitor2.kt:25)
	at org.jetbrains.kotlin.descriptors.commonizer.mergedtree.CirFunctionNode.accept(CirFunctionNode.kt:17)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.DeclarationsBuilderVisitor2.visitPackageNode(DeclarationsBuilderVisitor2.kt:58)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.DeclarationsBuilderVisitor2.visitPackageNode(DeclarationsBuilderVisitor2.kt:25)
	at org.jetbrains.kotlin.descriptors.commonizer.mergedtree.CirPackageNode.accept(CirPackageNode.kt:28)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.DeclarationsBuilderVisitor2.visitModuleNode(DeclarationsBuilderVisitor2.kt:43)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.DeclarationsBuilderVisitor2.visitModuleNode(DeclarationsBuilderVisitor2.kt:25)
	at org.jetbrains.kotlin.descriptors.commonizer.mergedtree.CirModuleNode.accept(CirModuleNode.kt:21)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.DeclarationsBuilderVisitor2.visitRootNode(DeclarationsBuilderVisitor2.kt:34)
	at org.jetbrains.kotlin.descriptors.commonizer.builder.DeclarationsBuilderVisitor2.visitRootNode(DeclarationsBuilderVisitor2.kt:25)
	at org.jetbrains.kotlin.descriptors.commonizer.mergedtree.CirRootNode.accept(CirRootNode.kt:21)
	at org.jetbrains.kotlin.descriptors.commonizer.FacadeKt.runCommonization(facade.kt:34)
	at org.jetbrains.kotlin.descriptors.commonizer.konan.NativeDistributionCommonizer.commonize(NativeDistributionCommonizer.kt:166)
	at org.jetbrains.kotlin.descriptors.commonizer.konan.NativeDistributionCommonizer.run(NativeDistributionCommonizer.kt:61)
	at org.jetbrains.kotlin.descriptors.commonizer.cli.NativeDistributionCommonize.execute(nativeTasks.kt:64)
	at org.jetbrains.kotlin.descriptors.commonizer.cli.CommonizerCLI.main(cli.kt:34)

> Task :lib:template-kmp-library-core:runCommonizer FAILED
:lib:template-kmp-library-core:runCommonizer (Thread[Daemon worker,5,main]) completed. Took 1 mins 39.059 secs.
l
Seems to an issue in the code that tries to detect it's running on Windows, or a required library not available in Windows Server. amd64 is x64 AFAIK, so should not be the issue IMO, though maybe there's differences in the reported value.
b
This is a shell project with no external libraries (other than coroutines-core where supported) nor any cinterops
l
Would be interesting material for kotl.in/issue, don't you think?
b
Trying to figure out if it's really not expected behaviour first 😄
I'll raise an issue later if nobody stops me
m
I'm not sure, but can it be because Gradle JVM Metaspace exhausted, seen in your log above the error? You set XX:MaxMetaspaceSize for
dokka
task, but not for
publish
.
b
I'll give it another go today
No dice. Metaspace is exhausted for all other platforms too, yet they commonize fine
m
Hm. Cloned your repository, reverted
Copy code
macosX64() to true
   )
+  //Commonizer does not yet work on [mingwX64, mingwX86]
   val windowsHostTargets = nativeTargetGroup(
     "windows",
-    mingwX64() to true,
     mingwX86() to false
+  ) + nativeTargetGroup(
+    "windows",
+    mingwX64() to true,
   )
   val linuxHostTargets = linuxTargets + androidNdkTargets
   val osxHostTargets = nativeTargetGroup()
and it builds on my local Windows box (Windows7, JDK8).
gradlew build publishToMavenLocal
passed, but does not publish anythig.
b
Might be either JDK or the fact that it's running on windows server (i'm on JDK 11)