[PATCH] handle -D in ranlib

Roland McGrath mcgrathr@google.com
Mon Nov 28 23:15:00 GMT 2011


ar as the -D option, but ranlib lacks it.

Ok for trunk?


Thanks,
Roland

binutils/
2011-11-28  Roland McGrath  <mcgrathr@google.com>

	* ar.c (ranlib_usage): Describe -D.
	(ranlib_main): Parse -D.
	(ranlib_touch): Set BFD_DETERMINISTIC_OUTPUT under -D.

diff --git a/binutils/ar.c b/binutils/ar.c
index 882ef1a..3bf4ddf 100644
--- a/binutils/ar.c
+++ b/binutils/ar.c
@@ -324,6 +324,7 @@ ranlib_usage (int help)
 #endif
   fprintf (s, _("\
   -t                           Update the archive's symbol map timestamp\n\
+  -D                           Use zero for the symbol map timestamp\n\
   -h --help                    Print this help message\n\
   -v --version                 Print version information\n"));
 
@@ -559,10 +560,13 @@ ranlib_main (int argc, char **argv)
   bfd_boolean touch = FALSE;
   int c;
 
-  while ((c = getopt_long (argc, argv, "hHvVt", long_options, NULL)) != EOF)
+  while ((c = getopt_long (argc, argv, "DhHvVt", long_options, NULL)) != EOF)
     {
       switch (c)
         {
+        case 'D':
+          deterministic = TRUE;
+          break;
 	case 'h':
 	case 'H':
 	  show_help = 1;
@@ -581,7 +585,7 @@ ranlib_main (int argc, char **argv)
     ranlib_usage (0);
 
   if (show_help)
-    usage (1);
+    ranlib_usage (1);
 
   if (show_version)
     print_version ("ranlib");
@@ -1365,6 +1369,9 @@ ranlib_touch (const char *archname)
     /* xgettext:c-format */
     fatal (_("%s: no archive map to update"), archname);
 
+  if (deterministic)
+    arch->flags |= BFD_DETERMINISTIC_OUTPUT;
+
   bfd_update_armap_timestamp (arch);
 
   if (! bfd_close (arch))



More information about the Binutils mailing list