For arm targets, we generate many effective-targets with check_effective_target_FUNC_multilib and check_effective_target_arm_arch_FUNC_multilib which check if we can link and execute a simple program with a given set of flags/multilibs.
In some cases however, it's possible to link but not to execute a program, so this patch adds similar _link effective-targets which only check if link succeeds. The patch does not uupdate the documentation as it already lacks the numerous existing related effective-targets. 2023-07-07 Christophe Lyon <christophe.l...@linaro.org> gcc/testsuite/ * lib/target-supports.exp (arm_*FUNC_link): New effective-targets. --- gcc/testsuite/lib/target-supports.exp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index c04db2be7f9..d33bc077418 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -5129,6 +5129,14 @@ foreach { armfunc armflag armdefs } { return "$flags FLAG" } + proc check_effective_target_arm_arch_FUNC_link { } { + return [check_no_compiler_messages arm_arch_FUNC_link executable { + #include <stdint.h> + int dummy; + int main (void) { return 0; } + } [add_options_for_arm_arch_FUNC ""]] + } + proc check_effective_target_arm_arch_FUNC_multilib { } { return [check_runtime arm_arch_FUNC_multilib { int @@ -5906,6 +5914,7 @@ proc add_options_for_arm_v8_2a_bf16_neon { flags } { # arm_v8m_main_cde: Armv8-m CDE (Custom Datapath Extension). # arm_v8m_main_cde_fp: Armv8-m CDE with FP registers. # arm_v8_1m_main_cde_mve: Armv8.1-m CDE with MVE. +# arm_v8_1m_main_cde_mve_fp: Armv8.1-m CDE with MVE with FP support. # Usage: # /* { dg-require-effective-target arm_v8m_main_cde_ok } */ # /* { dg-add-options arm_v8m_main_cde } */ @@ -5965,6 +5974,24 @@ foreach { armfunc armflag armdef arminc } { return "$flags $et_FUNC_flags" } + proc check_effective_target_FUNC_link { } { + if { ! [check_effective_target_FUNC_ok] } { + return 0; + } + return [check_no_compiler_messages FUNC_link executable { + #if !(DEF) + #error "DEF failed" + #endif + #include <arm_cde.h> + INC + int + main (void) + { + return 0; + } + } [add_options_for_FUNC ""]] + } + proc check_effective_target_FUNC_multilib { } { if { ! [check_effective_target_FUNC_ok] } { return 0; -- 2.34.1