[binutils-gdb] Linker: Free memory used to track file dependencies.

Nick Clifton nickc@sourceware.org
Wed Feb 4 12:28:44 GMT 2026


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7c5179caca8cbca0f2fdb64f0fe215cee803ccb3

commit 7c5179caca8cbca0f2fdb64f0fe215cee803ccb3
Author: Nick Clifton <nickc@redhat.com>
Date:   Wed Feb 4 12:28:22 2026 +0000

    Linker: Free memory used to track file dependencies.

Diff:
---
 ld/ldmain.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

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-cvs mailing list