Alexco
Well-Known Member
Moin und frohes Neues!
Ich beschäftige mich so zwischendurch immer mal wieder mit dem Thema Cross-Compile. Dabei gehen die meisten Infos, die ich finde, immer von Linux irgendwas auf Linux-Raspi mit GNU aus, was mir so nicht hilft.
Ausgangspunkt ist ein kleines (leider closed source) Tool, das mittels Cmake gebaut wird. Das läuft unter allem möglichen (Linux, BSD, macOS,...) und hat als einzige Abhängigkeit nur die libusb-1. Aktuell starte ich auf meinem Laptop (macOS) jedes Mal eine Qemu-VM für BSD, Linux x86_64, Linux ARM, usw. und übersetze das dann nativ. Aber gerade die x86_64 Emulation ist da sehr langsam auf dem M1 und ich muss ja die Systeme in den VMs auch pflegen (4 VMs + 2 weitere Linux Test-VMs).
Jetzt dachte ich, ich baue mir eine FreeBSD/Linux ARM VM und baue das Tool dort drin auch für X86_64 mittels LLVM/clang, dann spare ich mir die ganzen GCC/GNU Dinger unter Linux und vor allem ein paar VMs. Scheint aber nicht so einfach zu sein. Ich scheitere eigentlich schon am einfachsten, nämlich die includes und libs des x86_64 Targets (sysroot) zu bekommen und diese dem clang per Cmake toolchain File mitzugeben.
Hat das schon mal jemand gemacht? Oder eine Idee?
Ich beschäftige mich so zwischendurch immer mal wieder mit dem Thema Cross-Compile. Dabei gehen die meisten Infos, die ich finde, immer von Linux irgendwas auf Linux-Raspi mit GNU aus, was mir so nicht hilft.
Ausgangspunkt ist ein kleines (leider closed source) Tool, das mittels Cmake gebaut wird. Das läuft unter allem möglichen (Linux, BSD, macOS,...) und hat als einzige Abhängigkeit nur die libusb-1. Aktuell starte ich auf meinem Laptop (macOS) jedes Mal eine Qemu-VM für BSD, Linux x86_64, Linux ARM, usw. und übersetze das dann nativ. Aber gerade die x86_64 Emulation ist da sehr langsam auf dem M1 und ich muss ja die Systeme in den VMs auch pflegen (4 VMs + 2 weitere Linux Test-VMs).
Jetzt dachte ich, ich baue mir eine FreeBSD/Linux ARM VM und baue das Tool dort drin auch für X86_64 mittels LLVM/clang, dann spare ich mir die ganzen GCC/GNU Dinger unter Linux und vor allem ein paar VMs. Scheint aber nicht so einfach zu sein. Ich scheitere eigentlich schon am einfachsten, nämlich die includes und libs des x86_64 Targets (sysroot) zu bekommen und diese dem clang per Cmake toolchain File mitzugeben.
Hat das schon mal jemand gemacht? Oder eine Idee?