Hi, The problem here is that aarch64-builtins.c contains gty markers but does not include gt-aarch64-builtins.h and is not included in the target_gtfiles list in config.gcc. So sometimes the builtins get garbage collected when they should not be.
Committed as obvious after a build and test on aarch64-elf. Thanks, Andrew Pinski ChangeLog: Bug target/61997 * config.gcc (aarch64*-*-*): Set target_gtfiles to include aarch64-builtins.c. * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h at the end of the file.
Index: config.gcc =================================================================== --- config.gcc (revision 217376) +++ config.gcc (working copy) @@ -304,6 +304,7 @@ aarch64*-*-*) cpu_type=aarch64 extra_headers="arm_neon.h arm_acle.h" extra_objs="aarch64-builtins.o aarch-common.o" + target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c" target_has_targetm_common=yes ;; alpha*-*-*) Index: config/aarch64/aarch64-builtins.c =================================================================== --- config/aarch64/aarch64-builtins.c (revision 217376) +++ config/aarch64/aarch64-builtins.c (working copy) @@ -1473,3 +1473,4 @@ aarch64_atomic_assign_expand_fenv (tree #undef VAR10 #undef VAR11 +#include "gt-aarch64-builtins.h"