From c800188601ee6f537d268fcadfbac7be0389ced7 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 7 Jul 2020 09:52:21 +0930 Subject: [PATCH] XCOFF deterministic archives 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. --- bfd/ChangeLog | 6 ++++++ bfd/coff-rs6000.c | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 057bc05aa80..580edfe41ea 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2020-07-07 Alan Modra + + * coff-rs6000.c (xcoff_write_archive_contents_old): Set default + time, uid, gid and mode for deterministic archive. + (xcoff_write_archive_contents_big): Likewise. + 2020-07-07 Alan Modra * coffcode.h (coff_classify_symbol): Handle C_HIDEXT and diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c index 51fab9f0536..00c9d7c7f4b 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) -- 2.30.2