Details
-
Epic
-
Resolution: Unresolved
-
P1: Critical
-
5.15, 6.0
-
MPU toolchains in container
Description
What is the benefit? Why is this valuable?
For Qt Device Creation (embedded development), we need macOS on ARM host support (which is however provided natively now for mac to mac use case) onto Linux targets. Additionally to this, we can see in horizon two major changes to earlier days: (1) We will need to support all current hosts on both Intel and ARM based hosts duplicating hosts support, and (2) simultaneously we need to support more embedded target OS+HW combinations (Yocto + RTOS + AAOS + Ubuntu) than before (mainly Yocto + RTOS). Old style doing host specific cross compilation toolchains is not sustainable to keep up with the changing world.
Out of scope of this Epic but part of future: We also have developer teams that would like to orchestrate their targets management so that a project lead can centrally manage the team targets qualities, and sometimes also move compilation and packaging outside of the host machine.
Out of scope for this Epic but related: Simultaneously, we have customers and partners who want to create target systems where the target application is running in a container instead of directly on target OS. This part is partially overlapping with the business need defined above but out of scope for the main purpose of this Epic.
Able to deploy from Containerised (Docker) toolchain to embedded HW (using native image as today as opposed to running a container on embedded).
What are common use cases?
At least the following uses cases are needed:
-Develop on Mac on ARM (or x86_64) and cross-compile onto Yocto on ARM or x86_64 targets
-Develop on WIndows on x86_64 and cross-compile onto Yocto on ARM or x86_64 targets
-Develop on WIndows on ARM and cross-compile onto Yocto on ARM or x86_64 targets (pending Windows ARM host support)
Technical information
Due to Linux x86 toolchain performance issues on ARM macs, opting to use Linux arm64 toolchains on ARM Macs with containers. Hence we'd support three different toolchains:
-Linux x86
-Linux arm64
-Windows mingw
For Linux we can use the native x86 and arm toolchains without containers while on Mac and Windows a containerised toolchain is to be used. On Windows also the native mingw toolchain is available for the time being.
Docker Desktop for Apple silicon also supports multi-platform images,
which allows you to build and run images for both x86 and ARM
architectures without having to set up a complex cross-compilation
development environment.
Qmake support is also required for containerised toolchains as it is still widely used in the market and customers are not willing to change a solution that has been working and they are used to.
Attachments
Issue Links
- is blocked by
-
QTCREATORBUG-27621 Docker: is not possible to set mkspec from kit settings without error message
- Closed
-
QTCREATORBUG-28242 Unable to build with remote linux device
- Closed
-
QTCREATORBUG-28264 Make containerized toolchains work with a windows host
- Closed
-
QTCREATORBUG-28265 Speed up QFileDialog uses on truly remote setups
- Closed
-
QTBUG-106692 Add QBSP recipes for container based toolchain
- Closed
- is required for
-
QTBUG-93421 Qt 6.3 development hosts
- Closed
-
QTBUG-102789 Qt 6.4 development hosts
- Closed
-
QTBUG-104265 Qt 6.5 development hosts
- Closed
-
QTBUG-90806 Enable add-on model for B2Qt and Qt DC - the alternative way
- Withdrawn
- relates to
-
QTBUG-106663 Embedded Container Enhancements
- In Progress
-
QTBUG-83262 Android tools in container
- Closed