* nm.c (main): Ignore '-X32_64' as an option.
authorGeoffrey Keating <geoffk@geoffk.org>
Thu, 27 Jul 2000 01:39:45 +0000 (01:39 +0000)
committerGeoffrey Keating <geoffk@geoffk.org>
Thu, 27 Jul 2000 01:39:45 +0000 (01:39 +0000)
* ar.c (main): Likewise.
* binutils.texi (nm): Document new option.
(ar): Likewise.

binutils/ChangeLog
binutils/ar.c
binutils/binutils.texi
binutils/nm.c

index 4c77c72010528b74dc243940e6a38934b551788d..09bbef4039914a5bb98275550d44c4b268c65e25 100644 (file)
@@ -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.
index 650092f449c5c495281023ecc7c1ae5df8447744..d6401599a02b3acff5380a6b4d2a1bce846b2f9e 100644 (file)
@@ -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;
index 2cc0c67669c8ce8e3cd58e1fb5d99faf6ebdd03e..36508cd0bc35fe56834c27c9780e7b0b4a7f1312 100644 (file)
@@ -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
index fca510caba270e5c00c27ac2e4f3a2313fdf0c4d..f1219eb7e6d3e59011159e7bde3d589b1046839e 100644 (file)
@@ -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;