Arm GNU Toolchain, kernel version

Hello, dear ARM community members.

The actual ARM GNU Toolchain (https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads) contains linux kernel headers for userspace of kernel 4.20.13 (https://developer.arm.com/documentation/109845/13-3-Rel1/?lang=en).

The userspace header files are not very actual since linux 4.20.13 is 6 years old, the actual stable version is 6.11.3. E.g. the userspace API for GPIOs has been changed completely since version 4.20.13.

Due to this, some actual code could not be compiled with actual ARM GNU Toolchain.

I would like to ask:

  1. Has the kernel version of ARM GNU Toolchain been frozen on purpose or by mistake?
  2. Could be actual ARM GNU Toolchain used for compilation with kernel userspace headers made with
    make install_headers
    command (https://www.kernel.org/doc/html/v6.6/kbuild/headers_install.html) and exported from device OS compilation environment? I.e. via 
    arm-none-linux-gnueabihf-gcc -I ${LINUX-KERNEL-6.x.y-USERSPACE-HEADERS}/include ...

I need to set compilation of our software for our device at Arm DS-5 Community Edition by Intel/Altera at Windows platform. So, I could hardly use any other solution such as Visual Studio Code with Windows Subsystem for Linux, Cygwin or similar.

Compilation of highly customized OS for our device is done within buildroot running at virtualized Debian.

I would be glad if someone know answer to the questions above. Thank You a lot in advance.

Yours Jan Konečný.

Parents
  • Well, nobody seems to be able to answer. So I will do it myself.

    Using userspace headers of a newer linux kernel seems to be all right since Standard Library of C has to has backward compatibility (i.e. usable with even very old kernels) and kernel userspace API has to be, of course, orthogonal (i.e. independent) to version of Standard Library of C.

    The reason for using an old linux kernel in a Arm toolchain is still not known for me.

Reply
  • Well, nobody seems to be able to answer. So I will do it myself.

    Using userspace headers of a newer linux kernel seems to be all right since Standard Library of C has to has backward compatibility (i.e. usable with even very old kernels) and kernel userspace API has to be, of course, orthogonal (i.e. independent) to version of Standard Library of C.

    The reason for using an old linux kernel in a Arm toolchain is still not known for me.

Children
No data