-# IFUNC support has only been implemented for the ix86, x86_64, powerpc,
-# aarch64, sparc, and S/390 so far.
-if {!(([istarget "i?86-*-*"]
- || [istarget "x86_64-*-*"]
- || [istarget "powerpc*-*-*"]
- || [istarget "aarch64*-*-*"]
- || [istarget "sparc*-*-*"]
- || [istarget "s390*-*-*"])
- && ([istarget "*-*-elf*"]
- || [istarget "*-*-nacl*"]
- || [istarget "*-*-linux*"]
- || [istarget "*-*-gnu*"])) } {
+if { ![is_elf_format] || ![supports_gnu_osabi]
+ || [istarget alpha-*-*]
+ || [istarget arc*-*-*]
+ || [istarget am33*-*-*]
+ || [istarget bfin-*-*]
+ || [istarget cris*-*-*]
+ || [istarget frv-*-*]
+ || [istarget lm32-*-*]
+ || [istarget m32r-*-*]
+ || [istarget m68k-*-*]
+ || [istarget microblaze-*-*]
+ || [istarget mips*-*-*]
+ || [istarget mn10300-*-*]
+ || [istarget nds32*-*-*]
+ || [istarget nios2-*-*]
+ || [istarget or1k-*-*]
+ || [istarget riscv*-*-*]
+ || [istarget score*-*-*]
+ || [istarget sh*-*-*]
+ || [istarget tic6x-*-*]
+ || [istarget tile*-*-*]
+ || [istarget vax-*-*] } {