NHDaly / ApplicationBuilder.jl

[deprecated] Compile, bundle, and release julia software
MIT License
168 stars 15 forks source link

"Unable to find compatible target in system image" when running compiled binary on other machine #30

Closed VPetukhov closed 4 years ago

VPetukhov commented 5 years ago

Hi,

I'm trying to create portable binary of your commandline_hello example. It's built fine and works on the building machine. But when I copy binaries to the other computer, I get single line "ERROR: Unable to find compatible target in system image.". At the beginning I did it with julia built from source, but switching to portable julia build (either 0.7 or 1.0.2) doesn't help. Both computers have the same Ubuntu 14.04. I also tried third one with Gentoo, result is the same.

My building script is as simple as it can be:

using ApplicationBuilder
build_app_bundle("hello.jl", appname="Hello");

There was large discussion that julia portable requires cx16 CPU flag, and it's not set in some virtual machines, which cause the same problem. But I use real machine, not virtual. And I have this flag in my /proc/cpuinfo. Do you by chance have any suggestions on what can I check and where to look?

NHDaly commented 4 years ago

Hi, sorry for my unreasonably long delay. :(

This was happening because the default cpu_target in PackageCompiler was native, so it was building specific to your exact CPU. This was fixed in 28b5528d02 by changing to x86_64 as the default (here: https://github.com/NHDaly/ApplicationBuilder.jl/commit/28b5528d0224e3588f2df9bb41f70bd5c75b833a#diff-ce9a26098d45e7ef68fb851c1f4548c6R179) and made configurable via the cpu_target argument, here: 54dd856c05c408a59cf59408f.

Sorry again for my radio silence, and thanks for the issue report!

VPetukhov commented 4 years ago

Thank you so much!