Add MVE link test for ARM to ensure target compatibility
New ARM test verifies that MVE-enabled code can link successfully.
This commit introduces a new linking test target, arm_v8_1m_mve_link, for the ARM architecture. It aims to confirm that code compiled with options enabling the MVE (M-Profile Vector Extension) can link correctly. This is important because board-specific linker flags might sometimes be incompatible with the linkage requirements of certain test cases, ensuring overall build stability.
In Details
The arm_v8_1m_mve_ok target is used to check if MVE is enabled. This new arm_v8_1m_mve_link target follows the same approach but adds a crucial linkage step. It uses the arm_v8_1m_mve_link in lib/target-supports.exp and applies it to relevant test cases like gcc.target/arm/pr110268-1.c. This helps catch issues where MVE instructions might be generated correctly but fail to link due to ABI or linker script conflicts, especially with bundled test code like testglue.c.
- MVE
- M-Profile Vector Extension, a SIMD (Single Instruction, Multiple Data) instruction set extension for ARM Cortex-M processors, designed to enhance performance for DSP and machine learning workloads.
- Linker flags
- Options passed to the linker (usually
ld) that control how object files are combined into an executable or shared library. Examples include specifying library paths, entry points, or memory layout. - ARM
- A family of reduced instruction set computing (RISC) architectures for computer processors. Widely used in mobile devices, embedded systems, and increasingly in servers due to its energy efficiency and performance.
- dejagnu
- A testing framework developed by Cygnus Solutions, widely used in the GCC project for writing and running tests. It provides infrastructure for test case selection, execution, and result reporting.