Skip to content

[Feature Request]: vDSO for 32-bit ARM apps, CROSS_COMPILE_COMPAT #9216

@ValdikSS

Description

@ValdikSS

Which feature would you like to have?

It turns out that 64-bit aarch64 kernel does not include 32-bit vDSO for ARMv7 applications, requiring additional CROSS_COMPILE_COMPAT make variable to point to 32-bit compiler upon kernel compilation.

This is because aarch64 GCC does not support 32-bit mode, requiring separate cross-compiler targeting 32-bit arm specifically. Clang does not have this drawback.

Without vDSO in 64-bit kernel, 32-bit applications with heavy use of gettimeofday system call will have quite a performance penalty.
More information: https://sigma-star.at/blog/2024/02/aarch64-32-bit-compat-pitfall/

Somewhere here CROSS_COMPILE_COMPAT=arm-linux-gnueabi- should be added.

common_make_params_quoted=(
# @TODO: introduce O=path/to/binaries, so sources and bins are not in the same dir; this has high impact in headers packaging though.
"${DISTCC_MAKE_J_PARALLEL[@]}" # Parallel compile, "-j X" for X cpus; determined by distcc, or is just "$CTHREADS" if distcc is not enabled.
"ARCH=${ARCHITECTURE}" # Key param. Everything depends on this.
"LOCALVERSION=-${BRANCH}-${LINUXFAMILY}" # Change the internal kernel version to include the family. Changing this causes recompiles # @TODO change hack at .config; that might handles mtime better

Funding

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions