Generic linker error when building my firmware

Hi MicroEJ Support,

This morning I was reaching this error when building my firmware:

[java] soar/defaultProperties:
[java] soar/checkProperties:
[java] soar/do:
[java] soar:
[java] activity/partialLink:
[java] [echo] =============== [ Launching Link ] ===============
[java] partialLink/defaultProperties:
[java] partialLink/clean:
[java] partialLink/checkProperties:
[java] partialLink/prepare:
[java] partialLink/do:
[java] [partialLink] 5 : LINKER ERROR [com.microej.example.Wrapper.o]
[java] [partialLink] [M34] - Generic error during relocation resolution in :
[java] [partialLink] RLA: 0x0 [0x3 ] javaLjava_lang_Class addend=0x81020001
[java] [partialLink] .
[java] [partialLink] 6 : LINKER ERROR [com.microej.example.Wrapper.o]
[java] [partialLink] [M34] - Generic error during relocation resolution in :
[java] [partialLink] RLA: 0x0 [0x3 ] javaLjava_lang_Class addend=0x81020000
[java] [partialLink] .
[ . . . . . . . . . . . . . . . . . . . . . . . . ]
[java] [partialLink] .
[java] [partialLink] 1860 : LINKER ERROR [com.microej.example.Wrapper.o]
[java] [partialLink] [M34] - Generic error during relocation resolution in :
[java] [partialLink] RLA: 0x0 [0x3 ] javaALjava_lang_String addend=0x81000002
[java] [partialLink] .
[java] BUILD FAILED

With the same configuration (same platform), I rolled back my code to a previous revision and it works. Seems I have reached a limit. Any idea of what’s going wrong ?

This is kind of blocker for me.
Thanks for your help.

Hi Lucas,

This error is thrown when the SOAR is not able to link all the types.
More specifically, the maximum number of concrete types has been reached.

A concrete type is a type that can be allocated: a non abstract classes or an array.

The maximum number of concrete types that can be embedded is 2048 if your Architecture version is lower than 7.9.1 or 4096 if your Architecture version is greater or equal to 7.9.1.

You can check the number of embedded types in the xml file generated by the SOAR (e.g <selected_types ...> element).

Please also note that in case of a multi-sandboxed application, this limit is for only one context. Each context (Kernel, Feature 1, Feature 2, …) can embedded up to 2048/4096 concrete types depending on the Architecture version.

You can contact your Customer Care representative to get the latest Architecture version.

–Frédéric

Hi Frédéric,

Thanks for the update. Our project was based on architecture version 7.9.0.
I talked to Stephane this morning and we decided to bump to architecture maintenance version 7.9.2.

Thanks,
Lucas