<div dir="ltr">We build on e.g. Linux AMD64 systems, targeting AARCH64. But we use Gluon Substrate, which exits the native-image process after the object file is generated.<div>Linking the object file with the required libs (static JDK and JavaFX libs) is then done on the Pi itself.</div><div>Note that indeed this only works on 64-bit systems at this moment, as there is no 32-bit arm generation yet in GraalVM native-image.</div><div><br></div><div>- Johan</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Oct 9, 2020 at 2:12 PM Samuel Audet <<a href="mailto:samuel.audet@gmail.com">samuel.audet@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Johan,<br>
<br>
How do you guys create your images for aarch64?<br>
<br>
Samuel<br>
<br>
On 10/9/20 8:53 PM, Ramsey Gurley wrote:<br>
> Someone can correct me if I am wrong, since I haven't tried.<br>
> <br>
> According to what I've read, images built with jaotc are processor<br>
> dependent and considered very beta quality. images built with<br>
> native-image are not. There is no arm 32 bit native-image, because there<br>
> is no graalvm for arm except for aarch64, but jaotc is included with<br>
> java 10+.<br>
> <br>
> I'm under the impression it is possible to cross compile a native image,<br>
> but you would need a copy of the target graalvm as well as libc and<br>
> other things. It is probably hard and you're better off compiling on<br>
> aarch64 if you can :)<br>
> <br>
> My guess is you would be okay building native-image on gravitons to<br>
> deploy on whatever aarch64 device you want. Even with limited ram, you<br>
> could build on device with enough swap, but that's just going to be<br>
> really painfully slow.<br>
> <br>
> <br>
> On 10/9/20 4:12 PM, Thorsten Schöning wrote:<br>
>> Guten Tag Ramsey Gurley,<br>
>> am Donnerstag, 8. Oktober 2020 um 12:44 schrieben Sie:<br>
>><br>
>>> I haven't gotten to the point of deploying one yet, but I've built<br>
>>> them on aarch64. It takes a lot of memory. A hello world vertx<br>
>>> application built with native-image takes nearly 4GB of RAM to<br>
>>> build. You will probably want to build your native images on AWS<br>
>>> graviton2 instances for more speed and available memory.<br>
>> Thanks for mentioning that, didn't have that in mind at all. :-)<br>
>><br>
>> How identical need the build server be to the system where things get<br>
>> deployed to in the end? Same CPU, but different amount of RAM only? Or<br>
>> is a different CPU OK if it's the same ARM-architecture? Like all<br>
>> aarch64 are OK, regardless model, number of cores or alike? Is there<br>
>> any cross-compiling possible for aarch64 native images on x86-64?<br>
>><br>
>> I'm wondering because the SoC discussed for me currently is only<br>
>> available with 256 MiB of RAM at all, so one really would need to<br>
>> build somewhere else. Besides the fact that it might not even be 64<br>
>> Bit and might not work at all with native image. :-/<br>
>><br>
>> Mit freundlichen Grüßen,<br>
>><br>
>> Thorsten Schöning<br>
>><br>
</blockquote></div>