Hi,
I have noticed that in the mips.exp dg-option handling code the isa and
arch_test_option_p variables are not updated after the pre-arch to arch
dependency handling. This means that if this code changes the
architecture the post-arch dependency handling code (which relies on
arch_test_option_p being true) is not run to handle any extra dependencies
the new architecture might need.
I have found this issue while investigating failures with the mips-mti-elf
toolchain using the -mnan=legacy multilib flags when running any of the
mips tests that have the HAS_LSA option specified in the dg-options. The
default architecture for this toolchain is mips32r2. This means the
architecture
handling code changes the architecture to mips32r6 to handle the HAS_LSA
requirements. Unfortunately because the arch_test_option_p is not updated
it is still set to false, so the post-arch code is not run. This means
the nan encoding is not set to -mnan=2008 when then causes the tests to fail
because mips32r6 does not support -mnan=legacy.
The patch and ChangeLog are below.
Ok to commit?
Regards,
Andrew
testsuite/
* gcc.target/mips/mips.exp (mips-dg-options): Update the isa and
arch_test_option_p variables after the arch dependency handling code.
diff --git a/gcc/testsuite/gcc.target/mips/mips.exp
b/gcc/testsuite/gcc.target/mips/mips.exp
index 1dd4173..1eb714d 100644
--- a/gcc/testsuite/gcc.target/mips/mips.exp
+++ b/gcc/testsuite/gcc.target/mips/mips.exp
@@ -1188,8 +1188,10 @@ proc mips-dg-options { args } {
}
# Re-calculate the isa_rev for use in the abi handling code below
+ set arch_test_option_p [mips_test_option_p options arch]
set arch [mips_option options arch]
set isa_rev [mips_arch_info $arch isa_rev]
+ set isa [mips_arch_info $arch isa]
# Set an appropriate ABI, handling dependencies between the pre-abi
# options and the abi options. This should mirror the abi and post-abi