aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--binutils/ChangeLog7
-rw-r--r--binutils/ar.c14
-rw-r--r--binutils/binutils.texi18
-rw-r--r--binutils/nm.c14
4 files changed, 48 insertions, 5 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 4c77c72..09bbef4 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,10 @@
+2000-07-26 Geoff Keating <geoffk@cygnus.com>
+
+ * nm.c (main): Ignore '-X32_64' as an option.
+ * ar.c (main): Likewise.
+ * binutils.texi (nm): Document new option.
+ (ar): Likewise.
+
2000-07-23 Michael Sokolov <msokolov@ivan.Harhan.ORG>
* rdcoff.c (external_coff_symbol_p): K&R-ise.
diff --git a/binutils/ar.c b/binutils/ar.c
index 650092f..d640159 100644
--- a/binutils/ar.c
+++ b/binutils/ar.c
@@ -250,7 +250,7 @@ usage (help)
if (! is_ranlib)
{
/* xgettext:c-format */
- fprintf (s, _("Usage: %s [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"),
+ fprintf (s, _("Usage: %s [-X32_64] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"),
program_name);
/* xgettext:c-format */
fprintf (s, _(" %s -M [<mri-script]\n"), program_name);
@@ -276,6 +276,7 @@ usage (help)
fprintf (s, _(" [S] - do not build a symbol table\n"));
fprintf (s, _(" [v] - be verbose\n"));
fprintf (s, _(" [V] - display the version number\n"));
+ fprintf (s, _(" [-X32_64] - (ignored)\n"));
}
else
/* xgettext:c-format */
@@ -431,6 +432,17 @@ main (argc, argv)
xatexit (remove_output);
+ /* Ignored for (partial) AIX compatibility. On AIX,
+ the -X option can be used to ignore certain kinds
+ of object files in the archive (the 64-bit objects
+ or the 32-bit objects). GNU ar always looks at all
+ kinds of objects in an archive. */
+ while (strcmp (argv[1], "-X32_64") == 0)
+ {
+ argv++;
+ argc--;
+ }
+
if (is_ranlib)
{
boolean touch = false;
diff --git a/binutils/binutils.texi b/binutils/binutils.texi
index 2cc0c67..36508cd 100644
--- a/binutils/binutils.texi
+++ b/binutils/binutils.texi
@@ -234,7 +234,7 @@ program.
@section Controlling @code{ar} on the command line
@smallexample
-ar [-]@var{p}[@var{mod} [@var{relpos}] [@var{count}]] @var{archive} [@var{member}@dots{}]
+ar [-X32_64] [-]@var{p}[@var{mod} [@var{relpos}] [@var{count}]] @var{archive} [@var{member}@dots{}]
@end smallexample
@cindex Unix compatibility, @code{ar}
@@ -451,6 +451,12 @@ when the modifier @samp{v} is appended.
This modifier shows the version number of @code{ar}.
@end table
+@code{ar} ignores an initial option spelt @code{-X32_64}, for
+compatibility with AIX. The behaviour produced by this option is the
+default for GNU @code{ar}. @code{ar} does not support any of the other
+@code{-X} options; in particular, it does not support @code{-X32}
+which is the default for AIX @code{ar}.
+
@node ar scripts
@section Controlling @code{ar} with a script
@@ -636,8 +642,8 @@ nm [ -a | --debug-syms ] [ -g | --extern-only ]
[ -r | --reverse-sort ] [ --size-sort ] [ -u | --undefined-only ]
[ -t @var{radix} | --radix=@var{radix} ] [ -P | --portability ]
[ --target=@var{bfdname} ] [ -f @var{format} | --format=@var{format} ]
- [ --defined-only ] [-l | --line-numbers ]
- [ --no-demangle ] [ -V | --version ] [ --help ] [ @var{objfile}@dots{} ]
+ [ --defined-only ] [-l | --line-numbers ] [ --no-demangle ]
+ [ -V | --version ] [ -X 32_64 ] [ --help ] [ @var{objfile}@dots{} ]
@end smallexample
@sc{gnu} @code{nm} lists the symbols from object files @var{objfile}@dots{}.
@@ -855,6 +861,12 @@ Display only defined symbols for each object file.
@itemx --version
Show the version number of @code{nm} and exit.
+@item -X
+This option is ignored for compatibility with the AIX version of
+@code{nm}. It takes one parameter which must be the string
+@code{32_64}. The default mode of AIX @code{nm} corresponds
+to @code{-X 32}, which is not supported by @sc{gnu} @code{nm}.
+
@item --help
Show a summary of the options to @code{nm} and exit.
@end table
diff --git a/binutils/nm.c b/binutils/nm.c
index fca510c..f1219eb 100644
--- a/binutils/nm.c
+++ b/binutils/nm.c
@@ -321,6 +321,7 @@ usage (stream, status)
--target=BFDNAME Specify the target object format as BFDNAME\n\
-u, --undefined-only Display only undefined symbols\n\
-V, --version Display this program's version number\n\
+ -X 32_64 (ignored)\n\
\n"));
list_supported_targets (program_name, stream);
if (status == 0)
@@ -409,7 +410,7 @@ main (argc, argv)
bfd_init ();
set_default_bfd_target ();
- while ((c = getopt_long (argc, argv, "aABCDef:glnopPrst:uvV",
+ while ((c = getopt_long (argc, argv, "aABCDef:glnopPrst:uvVX:",
long_options, (int *) 0)) != EOF)
{
switch (c)
@@ -480,6 +481,17 @@ main (argc, argv)
case 'V':
show_version = 1;
break;
+ case 'X':
+ /* Ignored for (partial) AIX compatibility. On AIX, the
+ argument has values 32, 64, or 32_64, and specfies that
+ only 32-bit, only 64-bit, or both kinds of objects should
+ be examined. The default is 32. So plain AIX nm on a
+ library archive with both kinds of objects will ignore
+ the 64-bit ones. For GNU nm, the default is and always
+ has been -X 32_64, and other options are not supported. */
+ if (strcmp (optarg, "32_64") != 0)
+ fatal (_("Only -X 32_64 is supported"));
+ break;
case OPTION_TARGET: /* --target */
target = optarg;