Commit: Linker: release memory used to record dependency files
Nick Clifton
nickc@redhat.com
Wed Feb 4 12:28:03 GMT 2026
Hi Guys,
This is another small commit to close a minor memory leak. The
dependency file tracker code creates a linked list of files but did
not free list when it was done. Now it does...
Cheers
Nick
diff --git a/ld/ldmain.c b/ld/ldmain.c
index c73c228e59d..b30abceb64f 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -218,6 +218,20 @@ write_dependency_file (void)
fclose (out);
}
+
+static void
+free_dependency_files (void)
+{
+ struct dependency_file *dep, *next;
+
+ for (dep = dependency_files; dep != NULL; dep = next)
+ {
+ next = dep->next;
+ free (dep->name);
+ free (dep);
+ }
+ dependency_files = dependency_files_tail = NULL;
+}
static void
ld_cleanup (void)
@@ -1007,6 +1021,7 @@ main (int argc, char **argv)
if (config.dependency_file != NULL)
write_dependency_file ();
+ free_dependency_files ();
/* Even if we're producing relocatable output, some non-fatal errors should
be reported in the exit status. (What non-fatal errors, if any, do we
More information about the Binutils
mailing list