Skip to content

Conversation

@W-M-R
Copy link
Contributor

@W-M-R W-M-R commented Jan 30, 2026

Note: Please adhere to Contributing Guidelines.

Summary

  1. This update adds Makefile/CMake compilation support for armclang to the ARM64 toolchain and corrects several CONFIG_ reference errors.
  2. On the CMake toolchain side, compatibility handling has been implemented: options not supported by armclang have been filtered, and linking/archiving/CPP ​​parameter settings have been adjusted to prevent warnings from CMake triggering compiler detection and code checks.
  3. The toolchain now uniformly sets CMAKE_EXECUTABLE_SUFFIX to empty to prevent issues in subsequent processes caused by armclang/tasking generating executables with suffixes.
  4. ARM (toolchain/cmake) adds support for Cortex-M85.

Impact

1, Enables NuttX/NX to use armclang for CMake/Makefile builds on ARM64, reducing noise warnings from CMake compiler probes.
2, Improves the stability of armclang builds (linker selection, ar parameter parsing, CPP --target, -nostdlib, --undefined __start, libgcc handling, etc.).
3. Expands target coverage for the ARM Cortex-M series (adding cortex-m85), with no expected behavior changes to existing GCC/Clang targets.

Testing

ci test

W-M-R added 5 commits January 30, 2026 16:45
VELAPLATFO-62486

1. cmake natively supports armclang, and by default it will use the set CMAKE_LINKER link. To adapt to NX's cmake, you need to modify it to use armclang as the linker.
2. Using set(CMAKE_AR armar -rcs) will make cmake recognize the parameter as armar;-rcs, resulting in a compiler error
3. The CPP setting of armclang needs to include --target, otherwise a compilation error will occur and a suitable target cannot be found
4. armclang link cannot use -nostdlib
5. Add --undefined to force linking of the __start symbol, otherwise it will not be referenced and armclang will not be able to find the symbol
6. Fix armclang config
7. armclang cancel the search for libgcc

Change-Id: I652f3d1f6ad91e7780729bb255ff649f72d65dd3
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
…uting detection code

VELAPLATFO-62486

Using some compilers that CMake supports detection, such as armclang, will cause some warnings to appear

Change-Id: I21ab8ed8f3c23fab4dc898bb3c3188484dd14620
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
VELAPLATFO-62486

Not only the executable file generated by tasking will be added with a suffix, but armclang will also

Change-Id: I507abd01929a6f81f37572d87e2e12f6403f036f
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
VELAPLATFO-62486

1. Support ARM64 armclang Makefile and CMake compilation
2. Modify some CONFIG reference errors
3. Add some option judgments to filter out options that armclang does not support

Change-Id: I4ad49a288e5ab5b13f3befa099dbd57d044f4ef9
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
VELAPLATFO-62486

Change-Id: I9b727436945135fe34dc4776b1859defef77d19a
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
@github-actions github-actions bot added Area: Build system Arch: arm Issues related to ARM (32-bit) architecture Arch: arm64 Issues related to ARM64 (64-bit) architecture Size: M The size of the change in this PR is medium labels Jan 30, 2026
@acassis acassis requested a review from linguini1 January 30, 2026 11:02
Copy link
Contributor

@linguini1 linguini1 left a comment

Choose a reason for hiding this comment

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

Please update the PR title to the same format as the commit messages.

Also, could please show some logs from a a local build using the new tool chain? I don't think our CI will be able to test that one.

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

Labels

Arch: arm Issues related to ARM (32-bit) architecture Arch: arm64 Issues related to ARM64 (64-bit) architecture Area: Build system Size: M The size of the change in this PR is medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants