From: zhaozhou Date: Mon, 10 Nov 2025 07:38:26 +0000 (+0800) Subject: LoongArch: Fix issue where data marked as GTY is cleaned up by ggc. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f77f4797010736d9fea7b313b52267d643ebcff7;p=thirdparty%2Fgcc.git LoongArch: Fix issue where data marked as GTY is cleaned up by ggc. As for GGC(GCC Garbage Collection), it's use gengtype tool to scan all source files contain the GTY mark, and generate gt-*.h files. GGC traversal these file to find gt_root node and marks these objects that directly or indirectly reference this node as active, then clean up unmarked object's memory. For the loongarch-builtins.cc file, it is necessary to add target_gtfiles in config.gcc to generate gt-loongarch-builtins.h, and include this header file in the .cc file, prevented the data marked with GTY in this `.cc` file cleaned up by ggc. gcc/ChangeLog: * config.gcc: Add target_gtfiles. * config/loongarch/loongarch-builtins.cc: Add header file. --- diff --git a/gcc/config.gcc b/gcc/config.gcc index d2770ea556b..fa3ce390f70 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -502,6 +502,7 @@ loongarch*-*-*) extra_headers="larchintrin.h lsxintrin.h lasxintrin.h" extra_objs="loongarch-c.o loongarch-builtins.o loongarch-cpu.o loongarch-opts.o loongarch-def.o loongarch-evolution.o loongarch-target-attr.o" extra_gcc_objs="loongarch-driver.o loongarch-cpu.o loongarch-opts.o loongarch-def.o" + target_gtfiles="\$(srcdir)/config/loongarch/loongarch-builtins.cc" extra_options="${extra_options} g.opt fused-madd.opt" ;; nds32*) diff --git a/gcc/config/loongarch/loongarch-builtins.cc b/gcc/config/loongarch/loongarch-builtins.cc index 312d87626a4..6c914c07d29 100644 --- a/gcc/config/loongarch/loongarch-builtins.cc +++ b/gcc/config/loongarch/loongarch-builtins.cc @@ -3259,3 +3259,5 @@ loongarch_build_builtin_va_list (void) { return ptr_type_node; } + +#include "gt-loongarch-builtins.h"