From 50cd99795268aaaf10705fa876dd4b751453e2f6 Mon Sep 17 00:00:00 2001 From: Michal Jires Date: Thu, 6 Mar 2025 06:49:20 +0100 Subject: [PATCH] lto: Fix missing cleanup with incremental LTO. Incremental LTO disabled cleanup of output_files since they have to persist in ltrans cache. This unintetionally also kept temporary early debug "*.debug.temp.o" files. Bootstrapped/regtested on x86_64-linux. Ok for trunk? lto-plugin/ChangeLog: * lto-plugin.c (cleanup_handler): Keep only files in ltrans cache. --- lto-plugin/lto-plugin.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lto-plugin/lto-plugin.c b/lto-plugin/lto-plugin.c index 3d272551fed..09d5441ecc7 100644 --- a/lto-plugin/lto-plugin.c +++ b/lto-plugin/lto-plugin.c @@ -945,6 +945,17 @@ cleanup_handler (void) if (!flto_incremental) for (i = 0; i < num_output_files; i++) maybe_unlink (output_files[i]); + else + { + /* Keep files in ltrans cache. */ + const char* suffix = ".ltrans.o"; + for (i = 0; i < num_output_files; i++) + { + int offset = strlen (output_files[i]) - strlen (suffix); + if (offset < 0 || strcmp (output_files[i] + offset, suffix)) + maybe_unlink (output_files[i]); + } + } free_2 (); return LDPS_OK;