Skip to content

MiniMyth2 cross canadian compilation

heitbaum edited this page Jun 27, 2021 · 4 revisions

cross-compilation in canadian model

MiniMyth2 uses cross-compilation in canadian model to build all target architecture binaries. From high-level point of view - process of building cross-compilation environment used to build MiniMyth2 is following:

1.build bootstrap compiler.

In this step – MiniMyth2 build process is using host OS installed compiler to build MiniMyth2 bootstrap build compiler called ’gcc-shared’. The name ’shared’ comes from fact that this compiler ’shares’ standard C library (glibc) of host OS.

2.build standard C library header files.

In this step the build process is using builtin step1 bootstrap compiler to build MiniMyth2 version of standard C library (glibc) header files. Standard C library (glibc) header files are required in next steps to build minimal 'build' gcc compiler.

3.build MiniMyth2 ’build’ compiler.

Standard C library headers built in step2 and bootstrap gcc compiler from step1 are used in this step to build minimal ’build’ gcc compiler called ’gcc-static’. This ’build’ compiler has minimal possible dependency on host OS components but also it offers just minimal required functionality. Its functionality is just enough to build 'main' minimyth2 gcc compiler, its gcc supporting library and standard C library for target architecture.

4.build MiniMyth2 target C library start-up files.

In this step the minimal ’build’ gcc compiler is used to build start-up files of target standard C library which are required to build compiler support library required to build main MiniMyth2 gcc compiler.

5.build compiler support library for MiniMyth2 ’main’ compiler

In this step - by using standard C library start-up files built in step4 - the build process builds standard compiler support library of 'main' gcc compiler.

6.build MiniMyth2 target standard C library (glibc)

In this step - ’build’ compiler is used to build target standard C library (glibc) which is required to build main gcc compiler in next step.

This step is ......

7.build MiniMyth2 'main' compiler

In this step the ’build’ compiler using target glibc from steep6 and compiler support library from step5 to finally build ’main’ gcc compiler used to compile all components of MiniMyth2 for selected target architecture (i386/x86_64/ARM/aarch64.)

8.build all MiniMyth2 libraries/tools/apps

In this final step the ’main’ gcc compiler is used to build all MiniMyth2 components - starting with kernel, drivers, by building perl, python, Qt and finishing with the MythTV application and user tools.