Program not executable in Linux Ubuntu

Hello

I have switched from Intel Mac to M1 Mac and also have installed the latest Xojo version 2022 Release 3.2

I’ve now just built a Linux version (build mode: x86 64) of my existing program which always ran with older Linux Ubuntu version. Now trying to execute on Linux Ubuntu 20.04 ARM

I’m unable to open the program by clicking the icon. Trying to execute the built version in shell shows me this:
bash: ./mytool Kann die Binärdatei nicht ausführen: Fehler im Format der Programmdatei
Translation:; ./mytool Can’t execute the binary file. Error in format of the program file.

Is this a known issue or did I wrong anything?

I’m not a Linux expert but do you know if Linux Ubuntu 20.04 ARM can run x86 64 files?

I did a search and found this but is a year old:

Edit: if you see Xojo Roadmap, maybe next Xojo version will be able to build Linux ARM.

Hmmm, ok, thanks, that might be the problem, I just checked Parallels (VM) in which I let Ubuntu install. By default Parallels installed Linux Ubuntu 20.04 ARM. When I download an Intel version of Linux Ubuntu it says: “The selected image can’t be used because your Mac has an Apple processor of the M series which doesn’t support Intel based OSs”.
Parallels itself states they support AMD and Intel based software on M1 Mac in Parallels: NEW: Parallels Desktop 16.5 for Mac Supports Both M1 and Intel Chips
There are no options I can switch between AMD and Intel, so I guess Parallels should recognize if the started software is Intel or AMD based. I guess I have to head over to Parallels forum then.

And yes, there is an option to build my project with “ARM 32” build option but then I got a lot of error messages due to variables using UINT64. Furthermore I need ARM 64 (not ARM 32) but that might come later. Annoying is that whenever I want to build in ARM 32 mode I got asked to buy Xojo or to enter a key even though I bought it and have no issues building it with X86 options.

You can’t run AMD/Intel guest OS with parallels under an ARM (M1/M2) mac.

There is a product that says it can run Intel/AMD OS (windows/linux/mac) with an ARM mac: UTM for mac it uses QEMU to do the magic so the performance may vary.

“You can’t run AMD/Intel guest OS with parallels under an ARM (M1/M2) Mac.”
→ I don’t know if I get you the right way… Parallels is a VM designed for running Windows, Linux and other OSs on Mac (including M1).

And why can I build my app for Windows with build options “X86 64-bit” and it runs in Windows 11 (AMD) in Parallels?

What the folks at Parallels are saying is that Parallels itself runs on Intel and ARM chips. The VM guests themselves must match the processor of the system they are on.

1 Like

First, I think you’re confusing AMD with ARM here. But the reason is that ARM Windows provides built-in emulation for x86 apps.

2 Likes

Correct, you can run x86 Windows/Linux/macOS on a x68 Mac, or ARM Windows/Linux/macOS on an ARM Mac. You can’t run Windows x86 with Parallels on an ARM Mac.

Because Windows 11 ARM provides emulation to run x86 code on it. Your Ubuntu ARM does not provide emulation. If you follow the link I posted there is information on how to install emulation if you want to run Linux x86 code on a Linux ARM installation (the link to askubuntu about the ‘translation layer’)


The options you have:

  • install UTM on your ARM Mac and use a Linux x86 guest
  • try to install a ‘translation layer’ for your Ubuntu ARM so it can run x86 code
  • wait for a future Xojo version to build Linux ARM
1 Like

Thanks all for the infos and clarifications. It’s now clear to me and I will try out the translation layer!