Back to index

cell-binutils  2.17cvs20070401
Functions | Variables
emul_aix.c File Reference
#include "binemul.h"
#include "bfdlink.h"
#include "coff/internal.h"
#include "coff/xcoff.h"
#include "libcoff.h"
#include "libxcoff.h"

Go to the source code of this file.

Functions

static void ar_emul_aix_usage (FILE *)
static bfd_boolean ar_emul_aix_append (bfd **, char *, bfd_boolean)
static bfd_boolean ar_emul_aix5_append (bfd **, char *, bfd_boolean)
static bfd_boolean ar_emul_aix_replace (bfd **, char *, bfd_boolean)
static bfd_boolean ar_emul_aix5_replace (bfd **, char *, bfd_boolean)
static bfd_boolean ar_emul_aix_parse_arg (char *)
static bfd_boolean ar_emul_aix_internal (bfd **, char *, bfd_boolean, const char *, bfd_boolean)

Variables

static bfd_boolean big_archive = TRUE
static bfd_boolean X32 = TRUE
static bfd_boolean X64 = FALSE

Function Documentation

static bfd_boolean ar_emul_aix5_append ( bfd **  after_bfd,
char *  file_name,
bfd_boolean  verbose 
) [static]

Definition at line 106 of file emul_aix.c.

{
  return ar_emul_aix_internal (after_bfd, file_name, verbose,
                            "aix5coff64-rs6000", TRUE);
}

Here is the call graph for this function:

static bfd_boolean ar_emul_aix5_replace ( bfd **  after_bfd,
char *  file_name,
bfd_boolean  verbose 
) [static]

Definition at line 120 of file emul_aix.c.

{
  return ar_emul_aix_internal (after_bfd, file_name, verbose,
                            "aix5coff64-rs6000", FALSE);
}

Here is the call graph for this function:

static bfd_boolean ar_emul_aix_append ( bfd **  after_bfd,
char *  file_name,
bfd_boolean  verbose 
) [static]

Definition at line 99 of file emul_aix.c.

{
  return ar_emul_aix_internal (after_bfd, file_name, verbose,
                            "aixcoff64-rs6000", TRUE);
}

Here is the call graph for this function:

static bfd_boolean ar_emul_aix_internal ( bfd **  after_bfd,
char *  file_name,
bfd_boolean  verbose,
const char *  target_name,
bfd_boolean  is_append 
) [static]

Definition at line 58 of file emul_aix.c.

{
  bfd *temp;
  bfd *try_bfd;

  temp = *after_bfd;

  /* Try 64 bit.  */
  try_bfd = bfd_openr (file_name, target_name);

  /* Failed or the object is possibly 32 bit.  */
  if (NULL == try_bfd || ! bfd_check_format (try_bfd, bfd_object))
    try_bfd = bfd_openr (file_name, "aixcoff-rs6000");

  AR_EMUL_ELEMENT_CHECK (try_bfd, file_name);

  if (bfd_xcoff_is_xcoff64 (try_bfd) && (! X64))
    return FALSE;

  if (bfd_xcoff_is_xcoff32 (try_bfd)
      && bfd_check_format (try_bfd, bfd_object) && (! X32))
    return FALSE;

  if (is_append)
    {
      AR_EMUL_APPEND_PRINT_VERBOSE (verbose, file_name);
    }
  else
    {
      AR_EMUL_REPLACE_PRINT_VERBOSE (verbose, file_name);
    }

  *after_bfd = try_bfd;
  (*after_bfd)->next = temp;

  return TRUE;
}

Here is the call graph for this function:

Here is the caller graph for this function:

static bfd_boolean ar_emul_aix_parse_arg ( char *  arg) [static]

Definition at line 127 of file emul_aix.c.

{
  if (CONST_STRNEQ (arg, "-X32_64"))
    {
      big_archive = TRUE;
      X32 = TRUE;
      X64 = TRUE;
    }
  else if (CONST_STRNEQ (arg, "-X32"))
    {
      big_archive = TRUE;
      X32 = TRUE;
      X64 = FALSE;
    }
  else if (CONST_STRNEQ (arg, "-X64"))
    {
      big_archive = TRUE;
      X32 = FALSE;
      X64 = TRUE;
    }
  else if (CONST_STRNEQ (arg, "-g"))
    {
      big_archive = FALSE;
      X32 = TRUE;
      X64 = FALSE;
    }
  else
    return FALSE;

  return TRUE;
}
static bfd_boolean ar_emul_aix_replace ( bfd **  after_bfd,
char *  file_name,
bfd_boolean  verbose 
) [static]

Definition at line 113 of file emul_aix.c.

{
  return ar_emul_aix_internal (after_bfd, file_name, verbose,
                            "aixcoff64-rs6000", FALSE);
}

Here is the call graph for this function:

static void ar_emul_aix_usage ( FILE *  fp) [static]

Definition at line 47 of file emul_aix.c.

{
  AR_EMUL_USAGE_PRINT_OPTION_HEADER (fp);
  /* xgettext:c-format */
  fprintf (fp, _("  [-g]         - 32 bit small archive\n"));
  fprintf (fp, _("  [-X32]       - ignores 64 bit objects\n"));
  fprintf (fp, _("  [-X64]       - ignores 32 bit objects\n"));
  fprintf (fp, _("  [-X32_64]    - accepts 32 and 64 bit objects\n"));
}

Here is the call graph for this function:


Variable Documentation

Definition at line 29 of file emul_aix.c.

bfd_boolean X32 = TRUE [static]

Definition at line 32 of file emul_aix.c.

bfd_boolean X64 = FALSE [static]

Definition at line 35 of file emul_aix.c.