OS for compiling in Linux?
-
@d-healey If I install Linux Mint on a computer, do I also have to use the oldest version possible for greater compatibility of the exported plugin?
-
@bendurso yes, I'm on v18 I think, I'll check when I'm home
-
@bendurso oh wait do you mean as a user or for compiling?
-
@d-healey For compiling :)
-
@d-healey Oh, and is that rule only for Linux? I understood that in Windows and macOS, the OS version you use to export the plugin doesn't matter
-
@bendurso Yeah just for Linux. Main reason is because of the way Linux shares libraries so you need to use a version of the library that is the same or older than the version a user will have. So using a newer OS will use a newer version of a library which users on older OS versions won't have available.
For standard programs there are solutions to this like flatpak. snap, appimage, but I don't think such a solution exists for plugins.
I just checked and I'm using Linux Mint 18.
-
@d-healey This is a bit old, but.. I’m now trying to use Linux on a Silicon Mac. I understand that Mint doesn’t work with ARM processors. If I use Ubuntu 20.04 Focal (ARM version), will the plugins I export work on non‑ARM computers? If not.. is there another alternative?
-
@bendurso The only distro I know that somewhat runs on Apple silicon is Asahi Linux, but I believe there are still some driver issues and I'm not sure which generation of M chip it supports.
I believe if you manage to install it, and then manage to build HISE on it, you'll end up with an ARM build that probably won't run on many (or any) other distros.
All of this is a guess because I haven't tried it.
I think you'll have better luck using an Intel/amd system, either dedicated to Linux or using a virtual machine. I do all my builds with virtual machines on a Proxmox server.
-
@d-healey said in OS for compiling in Linux?:
Great, thanks! I also just found something called QEMU, which allows you to emulate (rather than virtualize) any operating system on Silicon Macs. That means I could run Mint on my Mac M4. I’m going to give it a try.
-
@bendurso Yeah Proxmox uses qemu too
-
@d-healey Oh nice, but if I do it on my computer is free hehe
The proxmox server is a paid subscription right? Or there is a free version? -
@bendurso Proxmox is free and open source, there is a paid repo with some enterprise stuff but we don't need it. I followed this course - https://www.youtube.com/playlist?list=PLT98CRl2KxKHnlbYhtABg6cF50bYa8Ulo
-
@bendurso You can virtualise ARM Linux with UTM, but then use Rosetta to provide the x86 emulation:
Rosetta
Documentation for UTM virtual machines
UTM Documentation (docs.getutm.app)
I've not tried it yet, so don't know how practical it is in use, but it should perform significantly better than emulating the entire OS.
-
@d-healey thanks I will check it :)
@modularsamples Thanks, sounds good. I ended up using UTM in emulation mode, but yeah… it’s really slow. I actually have an old Mac running Mint that feels faster than this emulation.This virtualization with Rosetta sounds promising. But it’s really important that all the libraries and dependencies are installed for x86_64, right? Because if we build HISE using some ARM libraries, then the resulting plugin wouldn’t work correctly on x86_64 machines I think.
-
@bendurso said in OS for compiling in Linux?:
But it’s really important that all the libraries and dependencies are installed for x86_64, right? Because if we build HISE using some ARM libraries, then the resulting plugin wouldn’t work correctly on x86_64 machines I think.
If you want to distribute on x86, probably. I had a little play around with this earlier, and was able to get HISE up running on an ARM version of Debian 12 natively, but ran into problems adding the amd64 versions of the dependancies Clang, llvm and build-essentials (the rest install okay):
clang-14:amd64 : Depends: libclang-common-14-dev:amd64 (= 1:14.0.6-12) but it is not installable Recommends: llvm-14-dev:amd64 but it is not going to be installed Recommends: python3:amd64 but it is not going to be installed dpkg-dev : Depends: make Depends: binutils but it is not installable Recommends: build-essential but it is not installable python3 : PreDepends: python3-minimal (= 3.11.2-1+b1) but it is not going to be installed Depends: python3.11 (>= 3.11.2-1~) but it is not going to be installed
We should be able to specify an architecture when building:
TARGET_ARCH='-march=x86-64' make config=RELEASE
But this just gives us an error and list of acceptable values (all ARM), so it seems likely either the missing dependancies need fixing, or there's some other step being missed..
-
@modularsamples Nice, thanks for the details.
I think I’m going to get a decent Intel computer to compile for Windows and Linux x86—it’ll be easier, hehe.