#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"));
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;
ranlib_usage (0);
if (show_help)
- usage (1);
+ ranlib_usage (1);
if (show_version)
print_version ("ranlib");
/* 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))
@c man title ar create, modify, and extract from archives
@smallexample
-ar [@option{--plugin} @var{name}] [-]@var{p}[@var{mod} [@var{relpos}] [@var{count}]] [@option{--target} @var{bfdname}] @var{archive} [@var{member}@dots{}]
+ar [@option{--plugin} @var{name}] [-]@var{p}[@var{mod} [@var{relpos}] [@var{count}]] [@option{--target} @var{bfdname}] @var{archive} [@var{member}@dots{}]
ar -M [ <mri-script ]
@end smallexample
is in effect, any long section names in the input object will be truncated.
The @samp{enable} option will only emit long section names if any are
present in the inputs; this is mostly the same as @samp{keep}, but it
-is left undefined whether the @samp{enable} option might force the
+is left undefined whether the @samp{enable} option might force the
creation of an empty string table in the output file.
@item --change-leading-char
@item --prefix=@var{prefix}
@cindex Add prefix to absolute paths
Specify @var{prefix} to add to the absolute paths when used with
-@option{-S}.
+@option{-S}.
@item --prefix-strip=@var{level}
@cindex Strip absolute paths
This is the default when @option{--prefix-addresses} is used.
@item --insn-width=@var{width}
-@cindex Instruction width
+@cindex Instruction width
Display @var{width} bytes on a single line when disassembling
instructions.
@smallexample
@c man begin SYNOPSIS ranlib
-ranlib [@option{-vVt}] @var{archive}
+ranlib [@option{-DhHvVt}] @var{archive}
@c man end
@end smallexample
@c man begin OPTIONS ranlib
@table @env
+@item -h
+@itemx -H
+@itemx --help
+Show usage information for @command{ranlib}.
+
@item -v
@itemx -V
@itemx --version
Show the version number of @command{ranlib}.
+@item -D
+@cindex deterministic archives
+Operate in @emph{deterministic} mode. The symbol map archive member's
+header will show zero for the UID, GID, and timestamp. When this
+option is used, multiple runs will produce identical output files.
+
@item -t
Update the timestamp of the symbol map of an archive.
@end table
@command{dlltool} may also be used to query an existing import library
-to determine the name of the DLL to which it is associated. See the
+to determine the name of the DLL to which it is associated. See the
description of the @option{-I} or @option{--identify} option.
-
+
@c man end
@c man begin OPTIONS dlltool
@node GNU Free Documentation License
@appendix GNU Free Documentation License
-
+
@include fdl.texi
@node Binutils Index