Skip to content

Improve cross-compilation#30

Open
jserv wants to merge 1 commit intodstogov:masterfrom
jserv:cross-build
Open

Improve cross-compilation#30
jserv wants to merge 1 commit intodstogov:masterfrom
jserv:cross-build

Conversation

@jserv
Copy link
Contributor

@jserv jserv commented May 7, 2023

This commit introduces support for the CROSS_COMPILE variable, which is commonly used in cross-compilation projects such as the Linux kernel.

When CROSS_COMPILE is set, the build process will use it to detect the proper architecture for code generation. If CROSS_COMPILE is not set, the build system will assume a native build by consulting the results of "uname" command. The SYSROOT variable is used along with CROSS_COMPILE to prepend both header and library default directories.

In addition, users can enforce gcc-multilib to generate 32-bit code under x86-64 platforms by specifying TARGET=x86.

Examples:

  1. Arm64 code generation make CROSS_COMPILE=aarch64-none-linux-gnu-
  2. Arm64 code generation with sysroot make CROSS_COMPILE=aarch64-none-linux-gnu- SYSROOT=$(HOME)/php/ARM64
  3. 32-bit x86 code generation make TARGET=x86

This commit introduces support for the CROSS_COMPILE variable, which
is commonly used in cross-compilation projects such as the Linux kernel.

When CROSS_COMPILE is set, the build process will use it to detect the
proper architecture for code generation. If CROSS_COMPILE is not set,
the build system will assume a native build by consulting the results of
"uname" command. The SYSROOT variable is used along with CROSS_COMPILE
to prepend both header and library default directories.

In addition, users can enforce gcc-multilib to generate 32-bit code under
x86-64 platforms by specifying TARGET=x86.

Examples:
1. Arm64 code generation
  make CROSS_COMPILE=aarch64-none-linux-gnu-
2. Arm64 code generation with sysroot
  make CROSS_COMPILE=aarch64-none-linux-gnu- SYSROOT=$(HOME)/php/ARM64
3. 32-bit x86 code generation
  make TARGET=x86
Copy link
Contributor

@weltling weltling left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this scenario is going to be supported, the change should be tested. It would be thinkable to add a parallel set of runs to the CI matrix, that would exercise all three Linux build scenarios that are currently present. For the aarch64 variant, QEMU could be also used to run the tests.

Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants