XCOFF deterministic archives

Alan Modra amodra@gmail.com
Tue Jul 7 08:48:24 GMT 2020


Adds support for "ar -D".

	* coff-rs6000.c (xcoff_write_archive_contents_old): Set default
	time, uid, gid and mode for deterministic archive.
	(xcoff_write_archive_contents_big): Likewise.

diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 51fab9f053..00c9d7c7f4 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -2101,6 +2101,13 @@ xcoff_write_archive_contents_old (bfd *abfd)
 	      bfd_set_error (bfd_error_system_call);
 	      return FALSE;
 	    }
+	  if ((abfd->flags & BFD_DETERMINISTIC_OUTPUT) != 0)
+	    {
+	      s.st_mtime = 0;
+	      s.st_uid = 0;
+	      s.st_gid = 0;
+	      s.st_mode = 0644;
+	    }
 
 	  ahdrp = bfd_zalloc (sub, sizeof (*ahdrp));
 	  if (ahdrp == NULL)
@@ -2321,6 +2328,13 @@ xcoff_write_archive_contents_big (bfd *abfd)
 	      bfd_set_error (bfd_error_system_call);
 	      return FALSE;
 	    }
+	  if ((abfd->flags & BFD_DETERMINISTIC_OUTPUT) != 0)
+	    {
+	      s.st_mtime = 0;
+	      s.st_uid = 0;
+	      s.st_gid = 0;
+	      s.st_mode = 0644;
+	    }
 
 	  ahdrp = bfd_zalloc (current_bfd, sizeof (*ahdrp));
 	  if (ahdrp == NULL)

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list