]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
This commit was manufactured by cvs2svn to create branch 'binutils-
authornobody <>
Thu, 25 Nov 2010 06:08:53 +0000 (06:08 +0000)
committernobody <>
Thu, 25 Nov 2010 06:08:53 +0000 (06:08 +0000)
2_21-branch'.

Cherrypick from master 2010-11-25 06:08:52 UTC Alan Modra <amodra@gmail.com> 'Update translations':
    binutils/elfcomm.c
    binutils/elfcomm.h
    ld/po/ja.po

binutils/elfcomm.c [new file with mode: 0644]
binutils/elfcomm.h [new file with mode: 0644]
ld/po/ja.po [new file with mode: 0644]

diff --git a/binutils/elfcomm.c b/binutils/elfcomm.c
new file mode 100644 (file)
index 0000000..e44dee8
--- /dev/null
@@ -0,0 +1,658 @@
+/* elfcomm.c -- common code for ELF format file.
+   Copyright 2010
+   Free Software Foundation, Inc.
+
+   Originally developed by Eric Youngdale <eric@andante.jic.com>
+   Modifications by Nick Clifton <nickc@redhat.com>
+
+   This file is part of GNU Binutils.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.  */
+
+#include "sysdep.h"
+#include "libiberty.h"
+#include "filenames.h"
+#include "bfd.h"
+#include "aout/ar.h"
+#include "bucomm.h"
+#include "elfcomm.h"
+
+void
+error (const char *message, ...)
+{
+  va_list args;
+
+  va_start (args, message);
+  fprintf (stderr, _("%s: Error: "), program_name);
+  vfprintf (stderr, message, args);
+  va_end (args);
+}
+
+void
+warn (const char *message, ...)
+{
+  va_list args;
+
+  va_start (args, message);
+  fprintf (stderr, _("%s: Warning: "), program_name);
+  vfprintf (stderr, message, args);
+  va_end (args);
+}
+
+void (*byte_put) (unsigned char *, elf_vma, int);
+
+void
+byte_put_little_endian (unsigned char * field, elf_vma value, int size)
+{
+  switch (size)
+    {
+    case 8:
+      field[7] = (((value >> 24) >> 24) >> 8) & 0xff;
+      field[6] = ((value >> 24) >> 24) & 0xff;
+      field[5] = ((value >> 24) >> 16) & 0xff;
+      field[4] = ((value >> 24) >> 8) & 0xff;
+      /* Fall through.  */
+    case 4:
+      field[3] = (value >> 24) & 0xff;
+      /* Fall through.  */
+    case 3:
+      field[2] = (value >> 16) & 0xff;
+      /* Fall through.  */
+    case 2:
+      field[1] = (value >> 8) & 0xff;
+      /* Fall through.  */
+    case 1:
+      field[0] = value & 0xff;
+      break;
+
+    default:
+      error (_("Unhandled data length: %d\n"), size);
+      abort ();
+    }
+}
+
+void
+byte_put_big_endian (unsigned char * field, elf_vma value, int size)
+{
+  switch (size)
+    {
+    case 8:
+      field[7] = value & 0xff;
+      field[6] = (value >> 8) & 0xff;
+      field[5] = (value >> 16) & 0xff;
+      field[4] = (value >> 24) & 0xff;
+      value >>= 16;
+      value >>= 16;
+      /* Fall through.  */
+    case 4:
+      field[3] = value & 0xff;
+      value >>= 8;
+      /* Fall through.  */
+    case 3:
+      field[2] = value & 0xff;
+      value >>= 8;
+      /* Fall through.  */
+    case 2:
+      field[1] = value & 0xff;
+      value >>= 8;
+      /* Fall through.  */
+    case 1:
+      field[0] = value & 0xff;
+      break;
+
+    default:
+      error (_("Unhandled data length: %d\n"), size);
+      abort ();
+    }
+}
+
+elf_vma (*byte_get) (unsigned char *, int);
+
+elf_vma
+byte_get_little_endian (unsigned char *field, int size)
+{
+  switch (size)
+    {
+    case 1:
+      return *field;
+
+    case 2:
+      return  ((unsigned int) (field[0]))
+       |    (((unsigned int) (field[1])) << 8);
+
+    case 3:
+      return  ((unsigned long) (field[0]))
+       |    (((unsigned long) (field[1])) << 8)
+       |    (((unsigned long) (field[2])) << 16);
+
+    case 4:
+      return  ((unsigned long) (field[0]))
+       |    (((unsigned long) (field[1])) << 8)
+       |    (((unsigned long) (field[2])) << 16)
+       |    (((unsigned long) (field[3])) << 24);
+
+    case 8:
+      if (sizeof (elf_vma) == 8)
+       return  ((elf_vma) (field[0]))
+         |    (((elf_vma) (field[1])) << 8)
+         |    (((elf_vma) (field[2])) << 16)
+         |    (((elf_vma) (field[3])) << 24)
+         |    (((elf_vma) (field[4])) << 32)
+         |    (((elf_vma) (field[5])) << 40)
+         |    (((elf_vma) (field[6])) << 48)
+         |    (((elf_vma) (field[7])) << 56);
+      else if (sizeof (elf_vma) == 4)
+       /* We want to extract data from an 8 byte wide field and
+          place it into a 4 byte wide field.  Since this is a little
+          endian source we can just use the 4 byte extraction code.  */
+       return  ((unsigned long) (field[0]))
+         |    (((unsigned long) (field[1])) << 8)
+         |    (((unsigned long) (field[2])) << 16)
+         |    (((unsigned long) (field[3])) << 24);
+
+    default:
+      error (_("Unhandled data length: %d\n"), size);
+      abort ();
+    }
+}
+
+elf_vma
+byte_get_big_endian (unsigned char *field, int size)
+{
+  switch (size)
+    {
+    case 1:
+      return *field;
+
+    case 2:
+      return ((unsigned int) (field[1])) | (((int) (field[0])) << 8);
+
+    case 3:
+      return ((unsigned long) (field[2]))
+       |   (((unsigned long) (field[1])) << 8)
+       |   (((unsigned long) (field[0])) << 16);
+
+    case 4:
+      return ((unsigned long) (field[3]))
+       |   (((unsigned long) (field[2])) << 8)
+       |   (((unsigned long) (field[1])) << 16)
+       |   (((unsigned long) (field[0])) << 24);
+
+    case 8:
+      if (sizeof (elf_vma) == 8)
+       return ((elf_vma) (field[7]))
+         |   (((elf_vma) (field[6])) << 8)
+         |   (((elf_vma) (field[5])) << 16)
+         |   (((elf_vma) (field[4])) << 24)
+         |   (((elf_vma) (field[3])) << 32)
+         |   (((elf_vma) (field[2])) << 40)
+         |   (((elf_vma) (field[1])) << 48)
+         |   (((elf_vma) (field[0])) << 56);
+      else if (sizeof (elf_vma) == 4)
+       {
+         /* Although we are extracing data from an 8 byte wide field,
+            we are returning only 4 bytes of data.  */
+         field += 4;
+         return ((unsigned long) (field[3]))
+           |   (((unsigned long) (field[2])) << 8)
+           |   (((unsigned long) (field[1])) << 16)
+           |   (((unsigned long) (field[0])) << 24);
+       }
+
+    default:
+      error (_("Unhandled data length: %d\n"), size);
+      abort ();
+    }
+}
+
+elf_vma
+byte_get_signed (unsigned char *field, int size)
+{
+  elf_vma x = byte_get (field, size);
+
+  switch (size)
+    {
+    case 1:
+      return (x ^ 0x80) - 0x80;
+    case 2:
+      return (x ^ 0x8000) - 0x8000;
+    case 4:
+      return (x ^ 0x80000000) - 0x80000000;
+    case 8:
+      return x;
+    default:
+      abort ();
+    }
+}
+
+/* Return the path name for a proxy entry in a thin archive, adjusted
+   relative to the path name of the thin archive itself if necessary.
+   Always returns a pointer to malloc'ed memory.  */
+
+char *
+adjust_relative_path (const char *file_name, const char *name,
+                     int name_len)
+{
+  char * member_file_name;
+  const char * base_name = lbasename (file_name);
+
+  /* This is a proxy entry for a thin archive member.
+     If the extended name table contains an absolute path
+     name, or if the archive is in the current directory,
+     use the path name as given.  Otherwise, we need to
+     find the member relative to the directory where the
+     archive is located.  */
+  if (IS_ABSOLUTE_PATH (name) || base_name == file_name)
+    {
+      member_file_name = (char *) malloc (name_len + 1);
+      if (member_file_name == NULL)
+        {
+          error (_("Out of memory\n"));
+          return NULL;
+        }
+      memcpy (member_file_name, name, name_len);
+      member_file_name[name_len] = '\0';
+    }
+  else
+    {
+      /* Concatenate the path components of the archive file name
+         to the relative path name from the extended name table.  */
+      size_t prefix_len = base_name - file_name;
+      member_file_name = (char *) malloc (prefix_len + name_len + 1);
+      if (member_file_name == NULL)
+        {
+          error (_("Out of memory\n"));
+          return NULL;
+        }
+      memcpy (member_file_name, file_name, prefix_len);
+      memcpy (member_file_name + prefix_len, name, name_len);
+      member_file_name[prefix_len + name_len] = '\0';
+    }
+  return member_file_name;
+}
+
+/* Read the symbol table and long-name table from an archive.  */
+
+int
+setup_archive (struct archive_info *arch, const char *file_name,
+              FILE *file, bfd_boolean is_thin_archive,
+              bfd_boolean read_symbols)
+{
+  size_t got;
+  unsigned long size;
+
+  arch->file_name = strdup (file_name);
+  arch->file = file;
+  arch->index_num = 0;
+  arch->index_array = NULL;
+  arch->sym_table = NULL;
+  arch->sym_size = 0;
+  arch->longnames = NULL;
+  arch->longnames_size = 0;
+  arch->nested_member_origin = 0;
+  arch->is_thin_archive = is_thin_archive;
+  arch->next_arhdr_offset = SARMAG;
+
+  /* Read the first archive member header.  */
+  if (fseek (file, SARMAG, SEEK_SET) != 0)
+    {
+      error (_("%s: failed to seek to first archive header\n"), file_name);
+      return 1;
+    }
+  got = fread (&arch->arhdr, 1, sizeof arch->arhdr, file);
+  if (got != sizeof arch->arhdr)
+    {
+      if (got == 0)
+       return 0;
+
+      error (_("%s: failed to read archive header\n"), file_name);
+      return 1;
+    }
+
+  /* See if this is the archive symbol table.  */
+  if (const_strneq (arch->arhdr.ar_name, "/               ")
+      || const_strneq (arch->arhdr.ar_name, "/SYM64/         "))
+    {
+      size = strtoul (arch->arhdr.ar_size, NULL, 10);
+      size = size + (size & 1);
+
+      arch->next_arhdr_offset += sizeof arch->arhdr + size;
+
+      if (read_symbols)
+       {
+         unsigned long i;
+         /* A buffer used to hold numbers read in from an archive index.
+            These are always 4 bytes long and stored in big-endian
+            format.  */
+#define SIZEOF_AR_INDEX_NUMBERS 4
+         unsigned char integer_buffer[SIZEOF_AR_INDEX_NUMBERS];
+         unsigned char * index_buffer;
+
+         /* Check the size of the archive index.  */
+         if (size < SIZEOF_AR_INDEX_NUMBERS)
+           {
+             error (_("%s: the archive index is empty\n"), file_name);
+             return 1;
+           }
+
+         /* Read the numer of entries in the archive index.  */
+         got = fread (integer_buffer, 1, sizeof integer_buffer, file);
+         if (got != sizeof (integer_buffer))
+           {
+             error (_("%s: failed to read archive index\n"), file_name);
+             return 1;
+           }
+         arch->index_num = byte_get_big_endian (integer_buffer,
+                                                sizeof integer_buffer);
+         size -= SIZEOF_AR_INDEX_NUMBERS;
+
+         /* Read in the archive index.  */
+         if (size < arch->index_num * SIZEOF_AR_INDEX_NUMBERS)
+           {
+             error (_("%s: the archive index is supposed to have %ld entries, but the size in the header is too small\n"),
+                    file_name, arch->index_num);
+             return 1;
+           }
+         index_buffer = (unsigned char *)
+              malloc (arch->index_num * SIZEOF_AR_INDEX_NUMBERS);
+         if (index_buffer == NULL)
+           {
+             error (_("Out of memory whilst trying to read archive symbol index\n"));
+             return 1;
+           }
+         got = fread (index_buffer, SIZEOF_AR_INDEX_NUMBERS,
+                      arch->index_num, file);
+         if (got != arch->index_num)
+           {
+             free (index_buffer);
+             error (_("%s: failed to read archive index\n"), file_name);
+             return 1;
+           }
+         size -= arch->index_num * SIZEOF_AR_INDEX_NUMBERS;
+
+         /* Convert the index numbers into the host's numeric format.  */
+         arch->index_array = (long unsigned int *)
+              malloc (arch->index_num * sizeof (* arch->index_array));
+         if (arch->index_array == NULL)
+           {
+             free (index_buffer);
+             error (_("Out of memory whilst trying to convert the archive symbol index\n"));
+             return 1;
+           }
+
+         for (i = 0; i < arch->index_num; i++)
+           arch->index_array[i] = byte_get_big_endian ((unsigned char *) (index_buffer + (i * SIZEOF_AR_INDEX_NUMBERS)),
+                                                       SIZEOF_AR_INDEX_NUMBERS);
+         free (index_buffer);
+
+         /* The remaining space in the header is taken up by the symbol
+            table.  */
+         if (size < 1)
+           {
+             error (_("%s: the archive has an index but no symbols\n"),
+                    file_name);
+             return 1;
+           }
+         arch->sym_table = (char *) malloc (size);
+         arch->sym_size = size;
+         if (arch->sym_table == NULL)
+           {
+             error (_("Out of memory whilst trying to read archive index symbol table\n"));
+             return 1;
+           }
+         got = fread (arch->sym_table, 1, size, file);
+         if (got != size)
+           {
+             error (_("%s: failed to read archive index symbol table\n"),
+                    file_name);
+             return 1;
+           }
+       }
+      else
+       {
+         if (fseek (file, size, SEEK_CUR) != 0)
+           {
+             error (_("%s: failed to skip archive symbol table\n"),
+                    file_name);
+             return 1;
+           }
+       }
+
+      /* Read the next archive header.  */
+      got = fread (&arch->arhdr, 1, sizeof arch->arhdr, file);
+      if (got != sizeof arch->arhdr)
+       {
+         if (got == 0)
+            return 0;
+         error (_("%s: failed to read archive header following archive index\n"),
+                file_name);
+         return 1;
+       }
+    }
+  else if (read_symbols)
+    printf (_("%s has no archive index\n"), file_name);
+
+  if (const_strneq (arch->arhdr.ar_name, "//              "))
+    {
+      /* This is the archive string table holding long member names.  */
+      arch->longnames_size = strtoul (arch->arhdr.ar_size, NULL, 10);
+      arch->next_arhdr_offset += sizeof arch->arhdr + arch->longnames_size;
+
+      arch->longnames = (char *) malloc (arch->longnames_size);
+      if (arch->longnames == NULL)
+       {
+         error (_("Out of memory reading long symbol names in archive\n"));
+         return 1;
+       }
+
+      if (fread (arch->longnames, arch->longnames_size, 1, file) != 1)
+       {
+         free (arch->longnames);
+         arch->longnames = NULL;
+         error (_("%s: failed to read long symbol name string table\n"),
+                file_name);
+         return 1;
+       }
+
+      if ((arch->longnames_size & 1) != 0)
+       getc (file);
+    }
+
+  return 0;
+}
+
+/* Open and setup a nested archive, if not already open.  */
+
+int
+setup_nested_archive (struct archive_info *nested_arch,
+                     const char *member_file_name)
+{
+  FILE * member_file;
+
+  /* Have we already setup this archive?  */
+  if (nested_arch->file_name != NULL
+      && streq (nested_arch->file_name, member_file_name))
+    return 0;
+
+  /* Close previous file and discard cached information.  */
+  if (nested_arch->file != NULL)
+    fclose (nested_arch->file);
+  release_archive (nested_arch);
+
+  member_file = fopen (member_file_name, "rb");
+  if (member_file == NULL)
+    return 1;
+  return setup_archive (nested_arch, member_file_name, member_file,
+                       FALSE, FALSE);
+}
+
+/* Release the memory used for the archive information.  */
+
+void
+release_archive (struct archive_info * arch)
+{
+  if (arch->file_name != NULL)
+    free (arch->file_name);
+  if (arch->index_array != NULL)
+    free (arch->index_array);
+  if (arch->sym_table != NULL)
+    free (arch->sym_table);
+  if (arch->longnames != NULL)
+    free (arch->longnames);
+}
+
+/* Get the name of an archive member from the current archive header.
+   For simple names, this will modify the ar_name field of the current
+   archive header.  For long names, it will return a pointer to the
+   longnames table.  For nested archives, it will open the nested archive
+   and get the name recursively.  NESTED_ARCH is a single-entry cache so
+   we don't keep rereading the same information from a nested archive.  */
+
+char *
+get_archive_member_name (struct archive_info *arch,
+                         struct archive_info *nested_arch)
+{
+  unsigned long j, k;
+
+  if (arch->arhdr.ar_name[0] == '/')
+    {
+      /* We have a long name.  */
+      char *endp;
+      char *member_file_name;
+      char *member_name;
+
+      arch->nested_member_origin = 0;
+      k = j = strtoul (arch->arhdr.ar_name + 1, &endp, 10);
+      if (arch->is_thin_archive && endp != NULL && * endp == ':')
+        arch->nested_member_origin = strtoul (endp + 1, NULL, 10);
+
+      while ((j < arch->longnames_size)
+             && (arch->longnames[j] != '\n')
+             && (arch->longnames[j] != '\0'))
+        j++;
+      if (arch->longnames[j-1] == '/')
+        j--;
+      arch->longnames[j] = '\0';
+
+      if (!arch->is_thin_archive || arch->nested_member_origin == 0)
+        return arch->longnames + k;
+
+      /* This is a proxy for a member of a nested archive.
+         Find the name of the member in that archive.  */
+      member_file_name = adjust_relative_path (arch->file_name,
+                                              arch->longnames + k, j - k);
+      if (member_file_name != NULL
+          && setup_nested_archive (nested_arch, member_file_name) == 0)
+       {
+          member_name = get_archive_member_name_at (nested_arch,
+                                                   arch->nested_member_origin,
+                                                   NULL);
+         if (member_name != NULL)
+           {
+             free (member_file_name);
+             return member_name;
+           }
+       }
+      free (member_file_name);
+
+      /* Last resort: just return the name of the nested archive.  */
+      return arch->longnames + k;
+    }
+
+  /* We have a normal (short) name.  */
+  for (j = 0; j < sizeof (arch->arhdr.ar_name); j++)
+    if (arch->arhdr.ar_name[j] == '/')
+      {
+       arch->arhdr.ar_name[j] = '\0';
+       return arch->arhdr.ar_name;
+      }
+
+  /* The full ar_name field is used.  Don't rely on ar_date starting
+     with a zero byte.  */
+  {
+    char *name = xmalloc (sizeof (arch->arhdr.ar_name) + 1);
+    memcpy (name, arch->arhdr.ar_name, sizeof (arch->arhdr.ar_name));
+    name[sizeof (arch->arhdr.ar_name)] = '\0';
+    return name;
+  }
+}
+
+/* Get the name of an archive member at a given OFFSET within an archive
+   ARCH.  */
+
+char *
+get_archive_member_name_at (struct archive_info *arch,
+                            unsigned long offset,
+                           struct archive_info *nested_arch)
+{
+  size_t got;
+
+  if (fseek (arch->file, offset, SEEK_SET) != 0)
+    {
+      error (_("%s: failed to seek to next file name\n"), arch->file_name);
+      return NULL;
+    }
+  got = fread (&arch->arhdr, 1, sizeof arch->arhdr, arch->file);
+  if (got != sizeof arch->arhdr)
+    {
+      error (_("%s: failed to read archive header\n"), arch->file_name);
+      return NULL;
+    }
+  if (memcmp (arch->arhdr.ar_fmag, ARFMAG, 2) != 0)
+    {
+      error (_("%s: did not find a valid archive header\n"),
+            arch->file_name);
+      return NULL;
+    }
+
+  return get_archive_member_name (arch, nested_arch);
+}
+
+/* Construct a string showing the name of the archive member, qualified
+   with the name of the containing archive file.  For thin archives, we
+   use square brackets to denote the indirection.  For nested archives,
+   we show the qualified name of the external member inside the square
+   brackets (e.g., "thin.a[normal.a(foo.o)]").  */
+
+char *
+make_qualified_name (struct archive_info * arch,
+                    struct archive_info * nested_arch,
+                    const char *member_name)
+{
+  size_t len;
+  char * name;
+
+  len = strlen (arch->file_name) + strlen (member_name) + 3;
+  if (arch->is_thin_archive && arch->nested_member_origin != 0)
+    len += strlen (nested_arch->file_name) + 2;
+
+  name = (char *) malloc (len);
+  if (name == NULL)
+    {
+      error (_("Out of memory\n"));
+      return NULL;
+    }
+
+  if (arch->is_thin_archive && arch->nested_member_origin != 0)
+    snprintf (name, len, "%s[%s(%s)]", arch->file_name,
+             nested_arch->file_name, member_name);
+  else if (arch->is_thin_archive)
+    snprintf (name, len, "%s[%s]", arch->file_name, member_name);
+  else
+    snprintf (name, len, "%s(%s)", arch->file_name, member_name);
+
+  return name;
+}
diff --git a/binutils/elfcomm.h b/binutils/elfcomm.h
new file mode 100644 (file)
index 0000000..3f9727e
--- /dev/null
@@ -0,0 +1,110 @@
+/* elfcomm.h -- include file of common code for ELF format file.
+   Copyright 2010
+   Free Software Foundation, Inc.
+
+   Originally developed by Eric Youngdale <eric@andante.jic.com>
+   Modifications by Nick Clifton <nickc@redhat.com>
+
+   This file is part of GNU Binutils.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.  */
+\f
+#ifndef _ELFCOMM_H
+#define _ELFCOMM_H
+
+#include "aout/ar.h"
+
+void error (const char *, ...) ATTRIBUTE_PRINTF_1;
+void warn (const char *, ...) ATTRIBUTE_PRINTF_1;
+
+#if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2)
+/* We can't use any bfd types here since readelf may define BFD64 and
+   objdump may not.  */
+#define HOST_WIDEST_INT        long long
+#else
+#define HOST_WIDEST_INT long
+#endif
+typedef unsigned HOST_WIDEST_INT elf_vma;
+
+extern void (*byte_put) (unsigned char *, elf_vma, int);
+extern void byte_put_little_endian (unsigned char *, elf_vma, int);
+extern void byte_put_big_endian (unsigned char *, elf_vma, int);
+
+extern elf_vma (*byte_get) (unsigned char *, int);
+extern elf_vma byte_get_signed (unsigned char *, int);
+extern elf_vma byte_get_little_endian (unsigned char *, int);
+extern elf_vma byte_get_big_endian (unsigned char *, int);
+
+#define BYTE_PUT(field, val)   byte_put (field, val, sizeof (field))
+#define BYTE_GET(field)                byte_get (field, sizeof (field))
+#define BYTE_GET_SIGNED(field) byte_get_signed (field, sizeof (field))
+
+/* This is just a bit of syntatic sugar.  */
+#define streq(a,b)       (strcmp ((a), (b)) == 0)
+#define strneq(a,b,n)    (strncmp ((a), (b), (n)) == 0)
+#define const_strneq(a,b) (strncmp ((a), (b), sizeof (b) - 1) == 0)
+
+/* Structure to hold information about an archive file.  */
+
+struct archive_info
+{
+  char * file_name;                     /* Archive file name.  */
+  FILE * file;                          /* Open file descriptor.  */
+  unsigned long index_num;              /* Number of symbols in table.  */
+  unsigned long * index_array;          /* The array of member offsets.  */
+  char * sym_table;                     /* The symbol table.  */
+  unsigned long sym_size;               /* Size of the symbol table.  */
+  char * longnames;                     /* The long file names table.  */
+  unsigned long longnames_size;         /* Size of the long file names table.  */
+  unsigned long nested_member_origin;   /* Origin in the nested archive of the current member.  */
+  unsigned long next_arhdr_offset;      /* Offset of the next archive header.  */
+  bfd_boolean is_thin_archive;          /* TRUE if this is a thin archive.  */
+  struct ar_hdr arhdr;                  /* Current archive header.  */
+};
+
+/* Return the path name for a proxy entry in a thin archive.  */
+extern char *adjust_relative_path (const char *, const char *, int);
+
+/* Read the symbol table and long-name table from an archive.  */
+extern int setup_archive (struct archive_info *, const char *, FILE *,
+                         bfd_boolean, bfd_boolean);
+
+/* Open and setup a nested archive, if not already open.  */
+extern int setup_nested_archive (struct archive_info *, const char *);
+
+/* Release the memory used for the archive information.  */
+extern void release_archive (struct archive_info *);
+
+/* Get the name of an archive member from the current archive header.  */
+
+extern char *get_archive_member_name (struct archive_info *,
+                                     struct archive_info *);
+
+/* Get the name of an archive member at a given offset within an
+   archive.  */
+
+extern char *get_archive_member_name_at (struct archive_info *,
+                                        unsigned long,
+                                        struct archive_info *);
+
+/* Construct a string showing the name of the archive member, qualified
+   with the name of the containing archive file.  */
+
+extern char *make_qualified_name (struct archive_info *,
+                                 struct archive_info *,
+                                 const char *);
+
+#endif /* _ELFCOMM_H */
diff --git a/ld/po/ja.po b/ld/po/ja.po
new file mode 100644 (file)
index 0000000..4de0111
--- /dev/null
@@ -0,0 +1,2207 @@
+# Japanese messages for GNU ld
+# Copyright (C) 2010 Free Software Foundation, Inc.
+# This file is distributed under the same license as the binutils package.
+# Yasuaki Taniguchi <yasuakit@gmail.com>, 2010
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ld 2.20.90\n"
+"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
+"POT-Creation-Date: 2010-11-05 11:34+0100\n"
+"PO-Revision-Date: 2010-11-14 17:53+0900\n"
+"Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>\n"
+"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: emultempl/armcoff.em:73
+#, c-format
+msgid "  --support-old-code          Support interworking with old code\n"
+msgstr "  --support-old-code          古いコードの相互利用をサポートする\n"
+
+#: emultempl/armcoff.em:74
+#, c-format
+msgid "  --thumb-entry=<sym>         Set the entry point to be Thumb symbol <sym>\n"
+msgstr "  --thumb-entry=<sym>         エントリポイントを Thumb シンボル <sym> に設定する\n"
+
+#: emultempl/armcoff.em:122
+#, c-format
+msgid "Errors encountered processing file %s"
+msgstr "ファイル %s を処理中にエラーに遭遇しました"
+
+#: emultempl/armcoff.em:190 emultempl/pe.em:1812
+msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
+msgstr "%P: 警告: '--thumb-entry %s' は '-e %s' を上書きします\n"
+
+# thumb となっているが公式には Thumb なので先頭を大文字にしています
+#: emultempl/armcoff.em:195 emultempl/pe.em:1817
+msgid "%P: warning: cannot find thumb start symbol %s\n"
+msgstr "%P: 警告: Thumb 開始シンボル %s が見つかりません\n"
+
+#: emultempl/pe.em:418
+#, c-format
+msgid "  --base_file <basefile>             Generate a base file for relocatable DLLs\n"
+msgstr ""
+
+#: emultempl/pe.em:419
+#, c-format
+msgid "  --dll                              Set image base to the default for DLLs\n"
+msgstr ""
+
+#: emultempl/pe.em:420
+#, c-format
+msgid "  --file-alignment <size>            Set file alignment\n"
+msgstr "  --file-alignment <size>            ファイル整列を設定する\n"
+
+#: emultempl/pe.em:421
+#, c-format
+msgid "  --heap <size>                      Set initial size of the heap\n"
+msgstr "  --heap <size>                      ヒープの初期サイズを設定する\n"
+
+#: emultempl/pe.em:422
+#, c-format
+msgid "  --image-base <address>             Set start address of the executable\n"
+msgstr "  --image-base <address>             実行ファイルの開始アドレスを設定する\n"
+
+#: emultempl/pe.em:423
+#, c-format
+msgid "  --major-image-version <number>     Set version number of the executable\n"
+msgstr "  --major-image-version <number>     実行ファイルのバージョン番号を設定する\n"
+
+#: emultempl/pe.em:424
+#, c-format
+msgid "  --major-os-version <number>        Set minimum required OS version\n"
+msgstr "  --major-os-version <number>        最小の要求される OS バージョンを設定する\n"
+
+#: emultempl/pe.em:425
+#, c-format
+msgid "  --major-subsystem-version <number> Set minimum required OS subsystem version\n"
+msgstr "  --major-subsystem-version <number> 最小の要求される OS サブシステムバージョンを設定する\n"
+
+#: emultempl/pe.em:426
+#, c-format
+msgid "  --minor-image-version <number>     Set revision number of the executable\n"
+msgstr "  --minor-image-version <number>     実行ファイルのリビジョン番号を設定する\n"
+
+#: emultempl/pe.em:427
+#, c-format
+msgid "  --minor-os-version <number>        Set minimum required OS revision\n"
+msgstr "  --minor-os-version <number>        最小の要求される OS リビジョンを設定する\n"
+
+#: emultempl/pe.em:428
+#, c-format
+msgid "  --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
+msgstr "  --minor-subsystem-version <number> 最小の要求される OS 子サブシステムリビジョンを設定する\n"
+
+#: emultempl/pe.em:429
+#, c-format
+msgid "  --section-alignment <size>         Set section alignment\n"
+msgstr "  --section-alignment <size>         セクション整列を設定する\n"
+
+#: emultempl/pe.em:430
+#, c-format
+msgid "  --stack <size>                     Set size of the initial stack\n"
+msgstr "  --stack <size>                     インラインスタックの大きさを設定する\n"
+
+#: emultempl/pe.em:431
+#, c-format
+msgid "  --subsystem <name>[:<version>]     Set required OS subsystem [& version]\n"
+msgstr "  --subsystem <name>[:<version>]     要求される OS のサブシステム [およびバージョン] を設定する\n"
+
+#: emultempl/pe.em:432
+#, c-format
+msgid "  --support-old-code                 Support interworking with old code\n"
+msgstr "  --support-old-code                 古いコードの相互利用をサポートする\n"
+
+#: emultempl/pe.em:433
+#, c-format
+msgid "  --[no-]leading-underscore          Set explicit symbol underscore prefix mode\n"
+msgstr "  --[no-]leading-underscore          シンボルの下線 (_) 接頭辞モードを明示的に設定する\n"
+
+#: emultempl/pe.em:434
+#, c-format
+msgid "  --thumb-entry=<symbol>             Set the entry point to be Thumb <symbol>\n"
+msgstr "  --thumb-entry=<symbol>             エントリポイントを Thumb の <symbol> に設定する\n"
+
+#: emultempl/pe.em:436
+#, c-format
+msgid "  --add-stdcall-alias                Export symbols with and without @nn\n"
+msgstr "  --add-stdcall-alias                シンボルを @nn 付きと @nn 無しとでエクスポートする\n"
+
+#: emultempl/pe.em:437
+#, c-format
+msgid "  --disable-stdcall-fixup            Don't link _sym to _sym@nn\n"
+msgstr "  --disable-stdcall-fixup            _sym から _sym@nn へのリンクを行わない\n"
+
+#: emultempl/pe.em:438
+#, c-format
+msgid "  --enable-stdcall-fixup             Link _sym to _sym@nn without warnings\n"
+msgstr "  --enable-stdcall-fixup             _sym を _sym@nn へ警告なしにリンクする\n"
+
+#: emultempl/pe.em:439
+#, c-format
+msgid "  --exclude-symbols sym,sym,...      Exclude symbols from automatic export\n"
+msgstr "  --exclude-symbols sym,sym,...      シンボルを自動エクスポートから除外する\n"
+
+#: emultempl/pe.em:440
+#, c-format
+msgid "  --exclude-all-symbols              Exclude all symbols from automatic export\n"
+msgstr "  --exclude-all-symbols              全てのシンボルを自動エクスポートから除外する\n"
+
+#: emultempl/pe.em:441
+#, c-format
+msgid "  --exclude-libs lib,lib,...         Exclude libraries from automatic export\n"
+msgstr "  --exclude-libs lib,lib,...         ライブラリを自動エクスポートから除外する\n"
+
+#: emultempl/pe.em:442
+#, c-format
+msgid "  --exclude-modules-for-implib mod,mod,...\n"
+msgstr "  --exclude-modules-for-implib mod,mod,...\n"
+
+#: emultempl/pe.em:443
+#, c-format
+msgid "                                     Exclude objects, archive members from auto\n"
+msgstr ""
+
+#: emultempl/pe.em:444
+#, c-format
+msgid "                                     export, place into import library instead.\n"
+msgstr ""
+
+#: emultempl/pe.em:445
+#, c-format
+msgid "  --export-all-symbols               Automatically export all globals to DLL\n"
+msgstr "  --export-all-symbols               全てのグローバルシンボルを DLL に対して自動的にエクスポートする\n"
+
+#: emultempl/pe.em:446
+#, c-format
+msgid "  --kill-at                          Remove @nn from exported symbols\n"
+msgstr "  --kill-at                          エクスポートされたシンボルから @nn を削除する\n"
+
+#: emultempl/pe.em:447
+#, c-format
+msgid "  --out-implib <file>                Generate import library\n"
+msgstr "  --out-implib <file>                インポートライブラリを生成する\n"
+
+#: emultempl/pe.em:448
+#, c-format
+msgid "  --output-def <file>                Generate a .DEF file for the built DLL\n"
+msgstr "  --output-def <file>                構築した DLL から .DEF ファイルを生成する\n"
+
+#: emultempl/pe.em:449
+#, c-format
+msgid "  --warn-duplicate-exports           Warn about duplicate exports.\n"
+msgstr "  --warn-duplicate-exports           重複したエクスポートに関して警告する\n"
+
+#: emultempl/pe.em:450
+#, c-format
+msgid ""
+"  --compat-implib                    Create backward compatible import libs;\n"
+"                                       create __imp_<SYMBOL> as well.\n"
+msgstr ""
+"  --compat-implib                    後方互換性のためのインポートライブラリを作成し、\n"
+"                                       __imp_<SYMBOL> も作成する\n"
+
+#: emultempl/pe.em:452
+#, c-format
+msgid ""
+"  --enable-auto-image-base           Automatically choose image base for DLLs\n"
+"                                       unless user specifies one\n"
+msgstr ""
+"  --enable-auto-image-base           利用者が指定しない限り DLL のイメージベースを\n"
+"                                       自動的に選択する\n"
+
+#: emultempl/pe.em:454
+#, c-format
+msgid "  --disable-auto-image-base          Do not auto-choose image base. (default)\n"
+msgstr "  --disable-auto-image-base          イメージベースを自動選択しない (デフォルト)\n"
+
+#: emultempl/pe.em:455
+#, c-format
+msgid ""
+"  --dll-search-prefix=<string>       When linking dynamically to a dll without\n"
+"                                       an importlib, use <string><basename>.dll\n"
+"                                       in preference to lib<basename>.dll \n"
+msgstr ""
+"  --dll-search-prefix=<string>       インポートライブラリが無い dll を動的にリンクする時、\n"
+"                                       lib<basename>.dll の代わりに <string><basename>.dll\n"
+"                                       を使用する\n"
+
+#: emultempl/pe.em:458
+#, c-format
+msgid ""
+"  --enable-auto-import               Do sophistcated linking of _sym to\n"
+"                                       __imp_sym for DATA references\n"
+msgstr "  --enable-auto-import               DATA 参照時に _sym を __imp_sym にリンクする\n"
+
+#: emultempl/pe.em:460
+#, c-format
+msgid "  --disable-auto-import              Do not auto-import DATA items from DLLs\n"
+msgstr "  --disable-auto-import              DLL から DATA 項目を自動インポートしない\n"
+
+#: emultempl/pe.em:461
+#, c-format
+msgid ""
+"  --enable-runtime-pseudo-reloc      Work around auto-import limitations by\n"
+"                                       adding pseudo-relocations resolved at\n"
+"                                       runtime.\n"
+msgstr ""
+"  --enable-runtime-pseudo-reloc      実行時に疑似再配置による名前解決を行うことで\n"
+"                                       自動インポートの制限を回避をする\n"
+
+#: emultempl/pe.em:464
+#, c-format
+msgid ""
+"  --disable-runtime-pseudo-reloc     Do not add runtime pseudo-relocations for\n"
+"                                       auto-imported DATA.\n"
+msgstr ""
+"  --disable-runtime-pseudo-reloc     DATA の自動インポートに対する実行時疑似再配置\n"
+"                                       を行わない\n"
+
+#: emultempl/pe.em:466
+#, c-format
+msgid ""
+"  --enable-extra-pe-debug            Enable verbose debug output when building\n"
+"                                       or linking to DLLs (esp. auto-import)\n"
+msgstr ""
+"  --enable-extra-pe-debug            DLL のビルドまたはリンク時に冗長なデバッグ出力\n"
+"                                       を行う (特に自動インポート)\n"
+
+#: emultempl/pe.em:469
+#, c-format
+msgid ""
+"  --large-address-aware              Executable supports virtual addresses\n"
+"                                       greater than 2 gigabytes\n"
+msgstr ""
+"  --large-address-aware              実行ファイルが 2GB 以上の仮想アドレスを\n"
+"                                       サポートするようにする\n"
+
+#: emultempl/pe.em:471
+#, c-format
+msgid ""
+"  --enable-long-section-names        Use long COFF section names even in\n"
+"                                       executable image files\n"
+msgstr ""
+"  --enable-long-section-names        実行可能なイメージファイルの中でも長い COFF\n"
+"                                       セクション名を使用する\n"
+
+#: emultempl/pe.em:473
+#, c-format
+msgid ""
+"  --disable-long-section-names       Never use long COFF section names, even\n"
+"                                       in object files\n"
+msgstr ""
+"  --disable-long-section-names       オブジェクトファイル内でも長い COFF セクション\n"
+"                                       名を使用しない\n"
+
+#: emultempl/pe.em:475
+#, c-format
+msgid ""
+"  --dynamicbase\t\t\t Image base address may be relocated using\n"
+"\t\t\t\t       address space layout randomization (ASLR)\n"
+msgstr ""
+
+#: emultempl/pe.em:477
+#, c-format
+msgid "  --forceinteg\t\t Code integrity checks are enforced\n"
+msgstr "  --forceinteg\t\t コードの完全性チェックを強制する\n"
+
+#: emultempl/pe.em:478
+#, c-format
+msgid "  --nxcompat\t\t Image is compatible with data execution prevention\n"
+msgstr ""
+
+#: emultempl/pe.em:479
+#, c-format
+msgid "  --no-isolation\t\t Image understands isolation but do not isolate the image\n"
+msgstr ""
+
+#: emultempl/pe.em:480
+#, c-format
+msgid ""
+"  --no-seh\t\t\t Image does not use SEH. No SE handler may\n"
+"\t\t\t\t       be called in this image\n"
+msgstr ""
+
+#: emultempl/pe.em:482
+#, c-format
+msgid "  --no-bind\t\t\t Do not bind this image\n"
+msgstr ""
+
+#: emultempl/pe.em:483
+#, c-format
+msgid "  --wdmdriver\t\t Driver uses the WDM model\n"
+msgstr ""
+
+#: emultempl/pe.em:484
+#, c-format
+msgid "  --tsaware                  Image is Terminal Server aware\n"
+msgstr ""
+
+#: emultempl/pe.em:613
+msgid "%P: warning: bad version number in -subsystem option\n"
+msgstr "%P: 警告: -subsystem オプションのバージョン番号に誤りがあります\n"
+
+#: emultempl/pe.em:638
+msgid "%P%F: invalid subsystem type %s\n"
+msgstr "%P%F: 無効な子システム型 %s です\n"
+
+#: emultempl/pe.em:659
+msgid "%P%F: invalid hex number for PE parameter '%s'\n"
+msgstr "%P%F: PE パラメータ '%s' に対する無効な十六進数です\n"
+
+#: emultempl/pe.em:676
+msgid "%P%F: strange hex info for PE parameter '%s'\n"
+msgstr "%P%F: PE パラメータ '%s' に対しておかしな十六進情報があります\n"
+
+#: emultempl/pe.em:693
+#, c-format
+msgid "%s: Can't open base file %s\n"
+msgstr "%s: ベースファイル %s を開けません\n"
+
+#: emultempl/pe.em:969
+msgid "%P: warning, file alignment > section alignment.\n"
+msgstr "%P: 警告: ファイル引数 > セクション引数 となっています\n"
+
+#: emultempl/pe.em:982
+msgid "%P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?\n"
+msgstr "%P: 警告: PE ターゲットに対して --export-dynamic はサポートされていません。--export-all-symbols を行いたいのではないですか?\n"
+
+#: emultempl/pe.em:1058 emultempl/pe.em:1085
+#, c-format
+msgid "Warning: resolving %s by linking to %s\n"
+msgstr "警告: %2$s にリンクすることによって %1$s を解決しています\n"
+
+#: emultempl/pe.em:1063 emultempl/pe.em:1090
+msgid "Use --enable-stdcall-fixup to disable these warnings\n"
+msgstr "これらの警告を無効にするためには --enable-stdcall-fixup を使用してください\n"
+
+#: emultempl/pe.em:1064 emultempl/pe.em:1091
+msgid "Use --disable-stdcall-fixup to disable these fixups\n"
+msgstr "これらの修正を無効にするためには --disable-stdcall-fixup を使用してください\n"
+
+#: emultempl/pe.em:1110
+#, c-format
+msgid "%C: Cannot get section contents - auto-import exception\n"
+msgstr "%C: セクションの中身を取得できません - 自動インポート例外です\n"
+
+#: emultempl/pe.em:1150
+#, c-format
+msgid "Info: resolving %s by linking to %s (auto-import)\n"
+msgstr "情報: %2$s にリンクすることによって %1$s を解決しています (自動インポート)\n"
+
+#: emultempl/pe.em:1157
+msgid ""
+"%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line.\n"
+"This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.\n"
+msgstr ""
+"%P: 警告: --enable-auto-import のコマンドライン指定無しで自動インポートが有効になりました。\n"
+"自動インポートされた DLL にシンボルを参照する定数データ構造が含まれない限りこれは動作します。\n"
+
+#: emultempl/pe.em:1164 emultempl/pe.em:1369 emultempl/pe.em:1575 ldcref.c:490
+#: ldcref.c:588 ldmain.c:1183 ldmisc.c:286 pe-dll.c:705 pe-dll.c:1253
+#: pe-dll.c:1348
+msgid "%B%F: could not read symbols: %E\n"
+msgstr "%B%F: シンボルを読み込むことができませんでした: %E\n"
+
+#: emultempl/pe.em:1245
+msgid "%F%P: cannot perform PE operations on non PE output file '%B'.\n"
+msgstr "%F%P: PE ではない出力ファイル '%B' に対して PE 操作は行えません。\n"
+
+#: emultempl/pe.em:1616
+#, c-format
+msgid "Errors encountered processing file %s\n"
+msgstr "ファイル %s を処理中にエラーが発生しました\n"
+
+#: emultempl/pe.em:1639
+#, c-format
+msgid "Errors encountered processing file %s for interworking\n"
+msgstr "相互利用のためにファイル %s を処理中にエラーが発生しました\n"
+
+#: emultempl/pe.em:1701 ldexp.c:542 ldlang.c:3323 ldlang.c:3358 ldlang.c:6804
+#: ldlang.c:6835 ldmain.c:1128
+msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
+msgstr "%P%F: bfd_link_hash_lookup に失敗しました: %E\n"
+
+#: ldcref.c:168
+msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
+msgstr "%X%P: cref テーブルの bfd_hash_table_init に失敗しました: %E\n"
+
+#: ldcref.c:174
+msgid "%X%P: cref_hash_lookup failed: %E\n"
+msgstr "%X%P: cref_hash_lookup に失敗しました: %E\n"
+
+#: ldcref.c:184
+msgid "%X%P: cref alloc failed: %E\n"
+msgstr "%X%P: cref のメモリ確保に失敗しました: %E\n"
+
+#: ldcref.c:366
+#, c-format
+msgid ""
+"\n"
+"Cross Reference Table\n"
+"\n"
+msgstr ""
+"\n"
+"相互参照テーブル\n"
+"\n"
+
+#: ldcref.c:367
+msgid "Symbol"
+msgstr "シンボル"
+
+#: ldcref.c:375
+#, c-format
+msgid "File\n"
+msgstr "ファイル\n"
+
+#: ldcref.c:379
+#, c-format
+msgid "No symbols\n"
+msgstr "シンボル無し\n"
+
+#: ldcref.c:532
+msgid "%P: symbol `%T' missing from main hash table\n"
+msgstr ""
+
+#: ldcref.c:650 ldcref.c:657 ldmain.c:1217 ldmain.c:1224
+msgid "%B%F: could not read relocs: %E\n"
+msgstr "%B%F: 再配置を読み込めませんでした: %E\n"
+
+#. We found a reloc for the symbol.  The symbol is defined
+#. in OUTSECNAME.  This reloc is from a section which is
+#. mapped into a section from which references to OUTSECNAME
+#. are prohibited.  We must report an error.
+#: ldcref.c:684
+msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
+msgstr "%1$X%2$C: %5$s 内で %3$s から `%4$T' への相互参照は禁止されています\n"
+
+#: ldctor.c:85
+msgid "%P%X: Different relocs used in set %s\n"
+msgstr ""
+
+#: ldctor.c:103
+msgid "%P%X: Different object file formats composing set %s\n"
+msgstr ""
+
+#: ldctor.c:281 ldctor.c:295
+msgid "%P%X: %s does not support reloc %s for set %s\n"
+msgstr ""
+
+#: ldctor.c:316
+msgid "%P%X: Unsupported size %d for set %s\n"
+msgstr ""
+
+#: ldctor.c:337
+msgid ""
+"\n"
+"Set                 Symbol\n"
+"\n"
+msgstr ""
+
+#: ldemul.c:265
+#, c-format
+msgid "%S SYSLIB ignored\n"
+msgstr "%S SYSLIB は無視されました\n"
+
+#: ldemul.c:271
+#, c-format
+msgid "%S HLL ignored\n"
+msgstr "%S HLL は無視されました\n"
+
+#: ldemul.c:291
+msgid "%P: unrecognised emulation mode: %s\n"
+msgstr "%P: 認識できないエミュレーションモードです: %s\n"
+
+#: ldemul.c:292
+msgid "Supported emulations: "
+msgstr "サポートされているエミュレーションモード: "
+
+#: ldemul.c:334
+#, c-format
+msgid "  no emulation specific options.\n"
+msgstr ""
+
+#: ldexp.c:313
+msgid "%P: warning: address of `%s' isn't multiple of maximum page size\n"
+msgstr "%P: 警告: `%s' のアドレスが最大ページサイズの倍数ではありません\n"
+
+#: ldexp.c:351
+#, c-format
+msgid "%F%S %% by zero\n"
+msgstr "%F%S 0 による剰余演算\n"
+
+#: ldexp.c:359
+#, c-format
+msgid "%F%S / by zero\n"
+msgstr "%F%S 0 による除算\n"
+
+#: ldexp.c:552
+#, c-format
+msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
+msgstr ""
+
+#: ldexp.c:564
+#, c-format
+msgid "%F%S: undefined symbol `%s' referenced in expression\n"
+msgstr ""
+
+#: ldexp.c:585 ldexp.c:602 ldexp.c:629
+#, c-format
+msgid "%F%S: undefined section `%s' referenced in expression\n"
+msgstr ""
+
+#: ldexp.c:656 ldexp.c:670
+#, c-format
+msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
+msgstr ""
+
+#: ldexp.c:681
+#, c-format
+msgid "%F%S: unknown constant `%s' referenced in expression\n"
+msgstr ""
+
+#: ldexp.c:743
+#, c-format
+msgid "%F%S can not PROVIDE assignment to location counter\n"
+msgstr ""
+
+#: ldexp.c:757
+#, c-format
+msgid "%F%S invalid assignment to location counter\n"
+msgstr ""
+
+#: ldexp.c:760
+#, c-format
+msgid "%F%S assignment to location counter invalid outside of SECTION\n"
+msgstr ""
+
+#: ldexp.c:773
+msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
+msgstr ""
+
+#: ldexp.c:812
+msgid "%P%F:%s: hash creation failed\n"
+msgstr "%P%F:%s: ハッシュ作成に失敗しました\n"
+
+#: ldexp.c:1119 ldexp.c:1144 ldexp.c:1204
+#, c-format
+msgid "%F%S: nonconstant expression for %s\n"
+msgstr ""
+
+#: ldfile.c:141
+#, c-format
+msgid "attempt to open %s failed\n"
+msgstr ""
+
+#: ldfile.c:143
+#, c-format
+msgid "attempt to open %s succeeded\n"
+msgstr "%s を開くのに成功しました\n"
+
+#: ldfile.c:149
+msgid "%F%P: invalid BFD target `%s'\n"
+msgstr "%F%P: 無効な BFD ターゲット `%s' です\n"
+
+#: ldfile.c:266 ldfile.c:295
+msgid "%P: skipping incompatible %s when searching for %s\n"
+msgstr "%1$P: %3$s を探索しているときに互換性のない %2$s をスキップしました\n"
+
+#: ldfile.c:279
+msgid "%F%P: attempted static link of dynamic object `%s'\n"
+msgstr "%F%P: 動的オブジェクト `%s' に対する静的リンクが試みられました\n"
+
+#: ldfile.c:332 ldmain.c:832
+msgid "%P%F: %s: plugin reported error claiming file\n"
+msgstr ""
+
+#: ldfile.c:447
+msgid "%P: cannot find %s (%s): %E\n"
+msgstr "%P: %s (%s) が見つかりません: %E\n"
+
+#: ldfile.c:450
+msgid "%P: cannot find %s: %E\n"
+msgstr "%P: %s が見つかりません: %E\n"
+
+#: ldfile.c:485
+msgid "%P: cannot find %s inside %s\n"
+msgstr "%1$P: %3$s 内に %2$s が見つかりません\n"
+
+#: ldfile.c:488
+msgid "%P: cannot find %s\n"
+msgstr "%P: %s が見つかりません\n"
+
+#: ldfile.c:507 ldfile.c:525
+#, c-format
+msgid "cannot find script file %s\n"
+msgstr "スクリプトファイル %s が見つかりません\n"
+
+#: ldfile.c:509 ldfile.c:527
+#, c-format
+msgid "opened script file %s\n"
+msgstr "スクリプトファイル %s が開かれました\n"
+
+#: ldfile.c:657
+msgid "%P%F: cannot open linker script file %s: %E\n"
+msgstr "%P%F: リンカスクリプトファイル %s を開けません: %E\n"
+
+#: ldfile.c:722
+msgid "%P%F: cannot represent machine `%s'\n"
+msgstr ""
+
+#: ldlang.c:1160 ldlang.c:1202 ldlang.c:3048
+msgid "%P%F: can not create hash table: %E\n"
+msgstr "%P%F: ハッシュテーブルを作成できません: %E\n"
+
+#: ldlang.c:1253
+msgid "%P:%S: warning: redeclaration of memory region `%s'\n"
+msgstr "%P:%S: 警告: メモリ領域 `%s' が再宣言されています\n"
+
+#: ldlang.c:1259
+msgid "%P:%S: warning: memory region `%s' not declared\n"
+msgstr "%P:%S: メモリ領域 `%s' が宣言されていません\n"
+
+#: ldlang.c:1293
+msgid "%F%P:%S: error: alias for default memory region\n"
+msgstr ""
+
+#: ldlang.c:1304
+msgid "%F%P:%S: error: redefinition of memory region alias `%s'\n"
+msgstr ""
+
+#: ldlang.c:1311
+msgid "%F%P:%S: error: memory region `%s' for alias `%s' does not exist\n"
+msgstr ""
+
+#: ldlang.c:1363 ldlang.c:1402
+msgid "%P%F: failed creating section `%s': %E\n"
+msgstr "%P%F: セクション `%s' の作成に失敗しました: %E\n"
+
+#: ldlang.c:1958
+#, c-format
+msgid ""
+"\n"
+"Discarded input sections\n"
+"\n"
+msgstr ""
+"\n"
+"宣言された入力セクション\n"
+"\n"
+
+#: ldlang.c:1966
+msgid ""
+"\n"
+"Memory Configuration\n"
+"\n"
+msgstr ""
+"\n"
+"メモリ設定\n"
+"\n"
+
+#: ldlang.c:1968
+msgid "Name"
+msgstr ""
+
+#: ldlang.c:1968
+msgid "Origin"
+msgstr ""
+
+#: ldlang.c:1968
+msgid "Length"
+msgstr ""
+
+#: ldlang.c:1968
+msgid "Attributes"
+msgstr ""
+
+#: ldlang.c:2008
+#, c-format
+msgid ""
+"\n"
+"Linker script and memory map\n"
+"\n"
+msgstr ""
+"\n"
+"リンカスクリプトおよびメモリマップ\n"
+"\n"
+
+#: ldlang.c:2074
+msgid "%P%F: Illegal use of `%s' section\n"
+msgstr "%P%F: `%s' セクションの不正な利用です\n"
+
+#: ldlang.c:2083
+msgid "%P%F: output format %s cannot represent section called %s\n"
+msgstr ""
+
+#: ldlang.c:2636
+msgid "%B: file not recognized: %E\n"
+msgstr "%B: ファイルが認識できませんでした: %E\n"
+
+#: ldlang.c:2637
+msgid "%B: matching formats:"
+msgstr ""
+
+#: ldlang.c:2644
+msgid "%F%B: file not recognized: %E\n"
+msgstr "%F%B: ファイルが認識できませんでした: %E\n"
+
+#: ldlang.c:2715
+msgid "%F%B: member %B in archive is not an object\n"
+msgstr "%F%B: 書庫内のメンバ %B はオブジェクトではありません\n"
+
+#: ldlang.c:2730 ldlang.c:2744
+msgid "%F%B: could not read symbols: %E\n"
+msgstr "%F%B: シンボルを読み込めませんでした: %E\n"
+
+#: ldlang.c:3018
+msgid "%P: warning: could not find any targets that match endianness requirement\n"
+msgstr ""
+
+#: ldlang.c:3032
+msgid "%P%F: target %s not found\n"
+msgstr "%P%F: ターゲット %s が見つかりませんでした\n"
+
+#: ldlang.c:3034
+msgid "%P%F: cannot open output file %s: %E\n"
+msgstr "%P%F: 出力ファイル %s が開けません: %E\n"
+
+#: ldlang.c:3040
+msgid "%P%F:%s: can not make object file: %E\n"
+msgstr "%P%F:%s: オブジェクトファイルを作成できません: %E\n"
+
+#: ldlang.c:3044
+msgid "%P%F:%s: can not set architecture: %E\n"
+msgstr "%P%F:%s: アーキテクチャを設定できません: %E\n"
+
+#: ldlang.c:3185
+msgid "%P: warning: %s contains output sections; did you forget -T?\n"
+msgstr "%P: 警告: %s には出力セクションが含まれます。-T オプションを忘れていませんか?\n"
+
+#: ldlang.c:3215
+msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
+msgstr "%P%F: シンボル %s 作成時に bfd_hash_lookup が失敗しました\n"
+
+#: ldlang.c:3233
+msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
+msgstr "%P%F: シンボル %s 作成時に bfd_hash_allocate が失敗しました\n"
+
+#: ldlang.c:3688
+msgid "%F%P: %s not found for insert\n"
+msgstr ""
+
+#: ldlang.c:3903
+msgid " load address 0x%V"
+msgstr ""
+
+#: ldlang.c:4179
+msgid "%W (size before relaxing)\n"
+msgstr ""
+
+#: ldlang.c:4270
+#, c-format
+msgid "Address of section %s set to "
+msgstr ""
+
+#: ldlang.c:4423
+#, c-format
+msgid "Fail with %d\n"
+msgstr ""
+
+#: ldlang.c:4710
+msgid "%X%P: section %s loaded at [%V,%V] overlaps section %s loaded at [%V,%V]\n"
+msgstr ""
+
+#: ldlang.c:4726
+msgid "%X%P: region `%s' overflowed by %ld bytes\n"
+msgstr "%X%P: 領域 `%s' が %ld バイト溢れました\n"
+
+#: ldlang.c:4749
+msgid "%X%P: address 0x%v of %B section `%s' is not within region `%s'\n"
+msgstr ""
+
+#: ldlang.c:4760
+msgid "%X%P: %B section `%s' will not fit in region `%s'\n"
+msgstr ""
+
+#: ldlang.c:4816
+#, c-format
+msgid "%F%S: non constant or forward reference address expression for section %s\n"
+msgstr ""
+
+#: ldlang.c:4841
+msgid "%P%X: Internal error on COFF shared library section %s\n"
+msgstr "%P%X: COFF 共有ライブラリのセクション %s で内部エラーが発生しました\n"
+
+#: ldlang.c:4900
+msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
+msgstr ""
+
+#: ldlang.c:4905
+msgid "%P: warning: no memory region specified for loadable section `%s'\n"
+msgstr ""
+
+#: ldlang.c:4927
+msgid "%P: warning: changing start of section %s by %lu bytes\n"
+msgstr ""
+
+#: ldlang.c:5004
+msgid "%P: warning: dot moved backwards before `%s'\n"
+msgstr ""
+
+#: ldlang.c:5170
+msgid "%P%F: can't relax section: %E\n"
+msgstr ""
+
+#: ldlang.c:5497
+msgid "%F%P: invalid data statement\n"
+msgstr ""
+
+#: ldlang.c:5530
+msgid "%F%P: invalid reloc statement\n"
+msgstr ""
+
+#: ldlang.c:5648
+msgid "%P%F: gc-sections requires either an entry or an undefined symbol\n"
+msgstr ""
+
+#: ldlang.c:5673
+msgid "%P%F:%s: can't set start address\n"
+msgstr "%P%F:%s: 開始アドレスを設定できません\n"
+
+#: ldlang.c:5686 ldlang.c:5705
+msgid "%P%F: can't set start address\n"
+msgstr "%P%F: 開始アドレスを設定できません\n"
+
+#: ldlang.c:5698
+msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
+msgstr ""
+
+#: ldlang.c:5710
+msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
+msgstr ""
+
+#: ldlang.c:5760
+msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"
+msgstr ""
+
+#: ldlang.c:5770
+msgid "%P%X: %s architecture of input file `%B' is incompatible with %s output\n"
+msgstr ""
+
+#: ldlang.c:5792
+msgid "%P%X: failed to merge target specific data of file %B\n"
+msgstr ""
+
+#: ldlang.c:5863
+msgid "%P%F: Could not define common symbol `%T': %E\n"
+msgstr "%P%F: 共通シンボル `%T' を定義できませんでした: %E\n"
+
+#: ldlang.c:5875
+msgid ""
+"\n"
+"Allocating common symbols\n"
+msgstr ""
+"\n"
+"割り当てている共通シンボル\n"
+
+#: ldlang.c:5876
+msgid ""
+"Common symbol       size              file\n"
+"\n"
+msgstr ""
+
+#: ldlang.c:6022
+msgid "%P%F: invalid syntax in flags\n"
+msgstr ""
+
+#: ldlang.c:6415
+msgid "%P%F: Failed to create hash table\n"
+msgstr "%P%F: ハッシュ表の作成に失敗しました\n"
+
+#: ldlang.c:6430
+msgid "%P%F: %s: plugin reported error after all symbols read\n"
+msgstr "%P%F: %s: 全てのシンボル読み込み後にプラグインがエラーを報告しました\n"
+
+#: ldlang.c:6717
+msgid "%P%F: multiple STARTUP files\n"
+msgstr "%P%F: 複数の STARTUP ファイルがあります\n"
+
+#: ldlang.c:6765
+msgid "%X%P:%S: section has both a load address and a load region\n"
+msgstr ""
+
+#: ldlang.c:6950
+msgid "%X%P:%S: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
+msgstr ""
+
+#: ldlang.c:7022
+msgid "%F%P: no sections assigned to phdrs\n"
+msgstr ""
+
+#: ldlang.c:7060
+msgid "%F%P: bfd_record_phdr failed: %E\n"
+msgstr ""
+
+#: ldlang.c:7080
+msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
+msgstr ""
+
+#: ldlang.c:7481
+msgid "%X%P: unknown language `%s' in version information\n"
+msgstr "%X%P: バージョン情報内に不明な言語 `%s' があります\n"
+
+#: ldlang.c:7626
+msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
+msgstr ""
+
+#: ldlang.c:7635
+msgid "%X%P: duplicate version tag `%s'\n"
+msgstr "%X%P: バージョンタグ `%s' が重複しています\n"
+
+#: ldlang.c:7656 ldlang.c:7665 ldlang.c:7683 ldlang.c:7693
+msgid "%X%P: duplicate expression `%s' in version information\n"
+msgstr ""
+
+#: ldlang.c:7733
+msgid "%X%P: unable to find version dependency `%s'\n"
+msgstr ""
+
+#: ldlang.c:7756
+msgid "%X%P: unable to read .exports section contents\n"
+msgstr "%X%P: .exports セクションの中身を読み込めません\n"
+
+#: ldmain.c:239
+msgid "%X%P: can't set BFD default target to `%s': %E\n"
+msgstr "%X%P: BFD デフォルトターゲットを `%s' に設定できません: %E\n"
+
+#: ldmain.c:307
+msgid "%P%F: -r and -shared may not be used together\n"
+msgstr "%P%F: -r および -shared は同時に使用できません\n"
+
+#: ldmain.c:350
+msgid "%P%F: -F may not be used without -shared\n"
+msgstr "%P%F: -F は -shared 無しでは使用できません\n"
+
+#: ldmain.c:352
+msgid "%P%F: -f may not be used without -shared\n"
+msgstr "%P%F: -f は -shared 無しでは使用できません\n"
+
+#: ldmain.c:400
+msgid "using external linker script:"
+msgstr "外部リンカスクリプトを使用しています:"
+
+#: ldmain.c:402
+msgid "using internal linker script:"
+msgstr "内部リンカスクリプトを使用しています:"
+
+#: ldmain.c:436
+msgid "%P%F: no input files\n"
+msgstr "%P%F: 入力ファイルがありません\n"
+
+#: ldmain.c:440
+msgid "%P: mode %s\n"
+msgstr "%P: モード %s\n"
+
+#: ldmain.c:456
+msgid "%P%F: cannot open map file %s: %E\n"
+msgstr "%P%F: マップファイル %s を開けません: %E\n"
+
+#: ldmain.c:485
+msgid "%P: %s: error in plugin cleanup (ignored)\n"
+msgstr ""
+
+#: ldmain.c:494
+msgid "%P: link errors found, deleting executable `%s'\n"
+msgstr "%P: リンクエラーが発生しました。実行ファイル `%s' を削除しています\n"
+
+#: ldmain.c:503
+msgid "%F%B: final close failed: %E\n"
+msgstr "%F%B: 最後のクローズに失敗しました: %E\n"
+
+#: ldmain.c:529
+msgid "%X%P: unable to open for source of copy `%s'\n"
+msgstr ""
+
+#: ldmain.c:532
+msgid "%X%P: unable to open for destination of copy `%s'\n"
+msgstr ""
+
+#: ldmain.c:539
+msgid "%P: Error writing file `%s'\n"
+msgstr "%P: ファイル `%s' を書き込み中にエラーが発生しました\n"
+
+#: ldmain.c:544 pe-dll.c:1729
+#, c-format
+msgid "%P: Error closing file `%s'\n"
+msgstr "%P: ファイル `%s' を閉じている途中でエラーが発生しました\n"
+
+#: ldmain.c:560
+#, c-format
+msgid "%s: total time in link: %ld.%06ld\n"
+msgstr "%s: リンクにかかった総時間: %ld.%06ld\n"
+
+#: ldmain.c:563
+#, c-format
+msgid "%s: data size %ld\n"
+msgstr "%s: データサイズ %ld\n"
+
+#: ldmain.c:646
+msgid "%P%F: missing argument to -m\n"
+msgstr "%P%F: -m に対する引数がありません\n"
+
+#: ldmain.c:694 ldmain.c:714 ldmain.c:746 plugin.c:772
+msgid "%P%F: bfd_hash_table_init failed: %E\n"
+msgstr "%P%F: bfd_hash_table_init に失敗しました: %E\n"
+
+#: ldmain.c:698 ldmain.c:718
+msgid "%P%F: bfd_hash_lookup failed: %E\n"
+msgstr "%P%F: bfd_hash_lookup に失敗しました: %E\n"
+
+#: ldmain.c:732
+msgid "%X%P: error: duplicate retain-symbols-file\n"
+msgstr ""
+
+#: ldmain.c:776
+msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
+msgstr ""
+
+#: ldmain.c:781
+msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
+msgstr "%P: `-retain-symbols-file' は `-s' および `-S' を上書きします\n"
+
+#: ldmain.c:895
+#, c-format
+msgid ""
+"Archive member included because of file (symbol)\n"
+"\n"
+msgstr ""
+
+#: ldmain.c:975
+msgid "%X%C: multiple definition of `%T'\n"
+msgstr "%X%C: `%T' が複数定義されています\n"
+
+#: ldmain.c:978
+msgid "%D: first defined here\n"
+msgstr "%D: ここで最初に定義されています\n"
+
+#: ldmain.c:982
+msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
+msgstr ""
+
+#: ldmain.c:1012
+msgid "%B: warning: definition of `%T' overriding common\n"
+msgstr ""
+
+#: ldmain.c:1015
+msgid "%B: warning: common is here\n"
+msgstr ""
+
+#: ldmain.c:1022
+msgid "%B: warning: common of `%T' overridden by definition\n"
+msgstr ""
+
+#: ldmain.c:1025
+msgid "%B: warning: defined here\n"
+msgstr ""
+
+#: ldmain.c:1032
+msgid "%B: warning: common of `%T' overridden by larger common\n"
+msgstr ""
+
+#: ldmain.c:1035
+msgid "%B: warning: larger common is here\n"
+msgstr ""
+
+#: ldmain.c:1039
+msgid "%B: warning: common of `%T' overriding smaller common\n"
+msgstr ""
+
+#: ldmain.c:1042
+msgid "%B: warning: smaller common is here\n"
+msgstr ""
+
+#: ldmain.c:1046
+msgid "%B: warning: multiple common of `%T'\n"
+msgstr ""
+
+#: ldmain.c:1048
+msgid "%B: warning: previous common is here\n"
+msgstr ""
+
+#: ldmain.c:1068 ldmain.c:1106
+msgid "%P: warning: global constructor %s used\n"
+msgstr ""
+
+#: ldmain.c:1116
+msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
+msgstr ""
+
+#. We found a reloc for the symbol we are looking for.
+#: ldmain.c:1170 ldmain.c:1172 ldmain.c:1174 ldmain.c:1192 ldmain.c:1237
+msgid "warning: "
+msgstr ""
+
+#: ldmain.c:1273
+msgid "%F%P: bfd_hash_table_init failed: %E\n"
+msgstr ""
+
+#: ldmain.c:1280
+msgid "%F%P: bfd_hash_lookup failed: %E\n"
+msgstr ""
+
+#: ldmain.c:1301
+msgid "%X%C: undefined reference to `%T'\n"
+msgstr ""
+
+#: ldmain.c:1304
+msgid "%C: warning: undefined reference to `%T'\n"
+msgstr ""
+
+#: ldmain.c:1310
+msgid "%X%D: more undefined references to `%T' follow\n"
+msgstr ""
+
+#: ldmain.c:1313
+msgid "%D: warning: more undefined references to `%T' follow\n"
+msgstr ""
+
+#: ldmain.c:1324
+msgid "%X%B: undefined reference to `%T'\n"
+msgstr ""
+
+#: ldmain.c:1327
+msgid "%B: warning: undefined reference to `%T'\n"
+msgstr ""
+
+#: ldmain.c:1333
+msgid "%X%B: more undefined references to `%T' follow\n"
+msgstr ""
+
+#: ldmain.c:1336
+msgid "%B: warning: more undefined references to `%T' follow\n"
+msgstr ""
+
+#: ldmain.c:1375
+msgid " additional relocation overflows omitted from the output\n"
+msgstr ""
+
+#: ldmain.c:1388
+msgid " relocation truncated to fit: %s against undefined symbol `%T'"
+msgstr ""
+
+#: ldmain.c:1393
+msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"
+msgstr ""
+
+#: ldmain.c:1405
+msgid " relocation truncated to fit: %s against `%T'"
+msgstr ""
+
+#: ldmain.c:1422
+#, c-format
+msgid "%X%C: dangerous relocation: %s\n"
+msgstr "%X%C: 危険な再配置です: %s\n"
+
+#: ldmain.c:1437
+msgid "%X%C: reloc refers to symbol `%T' which is not being output\n"
+msgstr ""
+
+#: ldmisc.c:149
+#, c-format
+msgid "no symbol"
+msgstr "シンボルがありません"
+
+#: ldmisc.c:246
+#, c-format
+msgid "built in linker script:%u"
+msgstr ""
+
+#: ldmisc.c:324
+msgid "%B: In function `%T':\n"
+msgstr "%B: 関数 `%T' 内:\n"
+
+#: ldmisc.c:451
+msgid "%F%P: internal error %s %d\n"
+msgstr "%F%P: 内部エラー %s %d\n"
+
+#: ldmisc.c:500
+msgid "%P: internal error: aborting at %s line %d in %s\n"
+msgstr ""
+
+#: ldmisc.c:503
+msgid "%P: internal error: aborting at %s line %d\n"
+msgstr ""
+
+#: ldmisc.c:505
+msgid "%P%F: please report this bug\n"
+msgstr "%P%F: このバグを報告してください\n"
+
+#. Output for noisy == 2 is intended to follow the GNU standards.
+#: ldver.c:39
+#, c-format
+msgid "GNU ld %s\n"
+msgstr ""
+
+#: ldver.c:43
+#, c-format
+msgid "Copyright 2010 Free Software Foundation, Inc.\n"
+msgstr ""
+
+#: ldver.c:44
+#, c-format
+msgid ""
+"This program is free software; you may redistribute it under the terms of\n"
+"the GNU General Public License version 3 or (at your option) a later version.\n"
+"This program has absolutely no warranty.\n"
+msgstr ""
+
+#: ldver.c:54
+#, c-format
+msgid "  Supported emulations:\n"
+msgstr ""
+
+#: ldwrite.c:62 ldwrite.c:207
+msgid "%P%F: bfd_new_link_order failed\n"
+msgstr ""
+
+#: ldwrite.c:365
+msgid "%F%P: cannot create split section name for %s\n"
+msgstr ""
+
+#: ldwrite.c:377
+msgid "%F%P: clone section failed: %E\n"
+msgstr ""
+
+#: ldwrite.c:418
+#, c-format
+msgid "%8x something else\n"
+msgstr ""
+
+#: ldwrite.c:588
+msgid "%F%P: final link failed: %E\n"
+msgstr ""
+
+#: lexsup.c:219 lexsup.c:368
+msgid "KEYWORD"
+msgstr ""
+
+#: lexsup.c:219
+msgid "Shared library control for HP/UX compatibility"
+msgstr ""
+
+#: lexsup.c:222
+msgid "ARCH"
+msgstr ""
+
+#: lexsup.c:222
+msgid "Set architecture"
+msgstr ""
+
+#: lexsup.c:224 lexsup.c:487
+msgid "TARGET"
+msgstr ""
+
+#: lexsup.c:224
+msgid "Specify target for following input files"
+msgstr ""
+
+#: lexsup.c:227 lexsup.c:278 lexsup.c:296 lexsup.c:309 lexsup.c:311
+#: lexsup.c:441 lexsup.c:501 lexsup.c:563 lexsup.c:576
+msgid "FILE"
+msgstr ""
+
+#: lexsup.c:227
+msgid "Read MRI format linker script"
+msgstr ""
+
+#: lexsup.c:229
+msgid "Force common symbols to be defined"
+msgstr ""
+
+#: lexsup.c:233 lexsup.c:545 lexsup.c:547 lexsup.c:549 lexsup.c:551
+msgid "ADDRESS"
+msgstr ""
+
+#: lexsup.c:233
+msgid "Set start address"
+msgstr ""
+
+#: lexsup.c:235
+msgid "Export all dynamic symbols"
+msgstr ""
+
+#: lexsup.c:237
+msgid "Undo the effect of --export-dynamic"
+msgstr ""
+
+#: lexsup.c:239
+msgid "Link big-endian objects"
+msgstr ""
+
+#: lexsup.c:241
+msgid "Link little-endian objects"
+msgstr ""
+
+#: lexsup.c:243 lexsup.c:246
+msgid "SHLIB"
+msgstr ""
+
+#: lexsup.c:243
+msgid "Auxiliary filter for shared object symbol table"
+msgstr ""
+
+#: lexsup.c:246
+msgid "Filter for shared object symbol table"
+msgstr ""
+
+#: lexsup.c:249
+msgid "Ignored"
+msgstr ""
+
+#: lexsup.c:251
+msgid "SIZE"
+msgstr ""
+
+#: lexsup.c:251
+msgid "Small data size (if no size, same as --shared)"
+msgstr ""
+
+#: lexsup.c:254
+msgid "FILENAME"
+msgstr ""
+
+#: lexsup.c:254
+msgid "Set internal name of shared library"
+msgstr ""
+
+#: lexsup.c:256
+msgid "PROGRAM"
+msgstr ""
+
+#: lexsup.c:256
+msgid "Set PROGRAM as the dynamic linker to use"
+msgstr ""
+
+#: lexsup.c:259
+msgid "LIBNAME"
+msgstr ""
+
+#: lexsup.c:259
+msgid "Search for library LIBNAME"
+msgstr ""
+
+#: lexsup.c:261
+msgid "DIRECTORY"
+msgstr ""
+
+#: lexsup.c:261
+msgid "Add DIRECTORY to library search path"
+msgstr ""
+
+#: lexsup.c:264
+msgid "Override the default sysroot location"
+msgstr ""
+
+#: lexsup.c:266
+msgid "EMULATION"
+msgstr ""
+
+#: lexsup.c:266
+msgid "Set emulation"
+msgstr ""
+
+#: lexsup.c:268
+msgid "Print map file on standard output"
+msgstr ""
+
+#: lexsup.c:270
+msgid "Do not page align data"
+msgstr ""
+
+#: lexsup.c:272
+msgid "Do not page align data, do not make text readonly"
+msgstr ""
+
+#: lexsup.c:275
+msgid "Page align data, make text readonly"
+msgstr ""
+
+#: lexsup.c:278
+msgid "Set output file name"
+msgstr ""
+
+#: lexsup.c:280
+msgid "Optimize output file"
+msgstr ""
+
+#: lexsup.c:283
+msgid "PLUGIN"
+msgstr ""
+
+#: lexsup.c:283
+msgid "Load named plugin"
+msgstr ""
+
+#: lexsup.c:285
+msgid "ARG"
+msgstr ""
+
+#: lexsup.c:285
+msgid "Send arg to last-loaded plugin"
+msgstr ""
+
+#: lexsup.c:288
+msgid "Ignored for SVR4 compatibility"
+msgstr ""
+
+#: lexsup.c:292
+msgid "Generate relocatable output"
+msgstr ""
+
+#: lexsup.c:296
+msgid "Just link symbols (if directory, same as --rpath)"
+msgstr ""
+
+#: lexsup.c:299
+msgid "Strip all symbols"
+msgstr ""
+
+#: lexsup.c:301
+msgid "Strip debugging symbols"
+msgstr ""
+
+#: lexsup.c:303
+msgid "Strip symbols in discarded sections"
+msgstr ""
+
+#: lexsup.c:305
+msgid "Do not strip symbols in discarded sections"
+msgstr ""
+
+#: lexsup.c:307
+msgid "Trace file opens"
+msgstr ""
+
+#: lexsup.c:309
+msgid "Read linker script"
+msgstr ""
+
+#: lexsup.c:311
+msgid "Read default linker script"
+msgstr ""
+
+#: lexsup.c:315 lexsup.c:333 lexsup.c:418 lexsup.c:439 lexsup.c:538
+#: lexsup.c:566 lexsup.c:605
+msgid "SYMBOL"
+msgstr ""
+
+#: lexsup.c:315
+msgid "Start with undefined reference to SYMBOL"
+msgstr ""
+
+#: lexsup.c:318
+msgid "[=SECTION]"
+msgstr ""
+
+#: lexsup.c:319
+msgid "Don't merge input [SECTION | orphan] sections"
+msgstr ""
+
+#: lexsup.c:321
+msgid "Build global constructor/destructor tables"
+msgstr ""
+
+#: lexsup.c:323
+msgid "Print version information"
+msgstr ""
+
+#: lexsup.c:325
+msgid "Print version and emulation information"
+msgstr ""
+
+#: lexsup.c:327
+msgid "Discard all local symbols"
+msgstr ""
+
+#: lexsup.c:329
+msgid "Discard temporary local symbols (default)"
+msgstr ""
+
+#: lexsup.c:331
+msgid "Don't discard any local symbols"
+msgstr ""
+
+#: lexsup.c:333
+msgid "Trace mentions of SYMBOL"
+msgstr ""
+
+#: lexsup.c:335 lexsup.c:503 lexsup.c:505
+msgid "PATH"
+msgstr ""
+
+#: lexsup.c:335
+msgid "Default search path for Solaris compatibility"
+msgstr ""
+
+#: lexsup.c:338
+msgid "Start a group"
+msgstr ""
+
+#: lexsup.c:340
+msgid "End a group"
+msgstr ""
+
+#: lexsup.c:344
+msgid "Accept input files whose architecture cannot be determined"
+msgstr ""
+
+#: lexsup.c:348
+msgid "Reject input files whose architecture is unknown"
+msgstr ""
+
+#: lexsup.c:361
+msgid "Only set DT_NEEDED for following dynamic libs if used"
+msgstr ""
+
+#: lexsup.c:364
+msgid ""
+"Always set DT_NEEDED for dynamic libraries mentioned on\n"
+"                                the command line"
+msgstr ""
+
+#: lexsup.c:368
+msgid "Ignored for SunOS compatibility"
+msgstr ""
+
+#: lexsup.c:370
+msgid "Link against shared libraries"
+msgstr ""
+
+#: lexsup.c:376
+msgid "Do not link against shared libraries"
+msgstr ""
+
+#: lexsup.c:384
+msgid "Bind global references locally"
+msgstr ""
+
+#: lexsup.c:386
+msgid "Bind global function references locally"
+msgstr ""
+
+#: lexsup.c:388
+msgid "Check section addresses for overlaps (default)"
+msgstr ""
+
+#: lexsup.c:391
+msgid "Do not check section addresses for overlaps"
+msgstr ""
+
+#: lexsup.c:395
+msgid "Copy DT_NEEDED links mentioned inside DSOs that follow"
+msgstr ""
+
+#: lexsup.c:399
+msgid "Do not copy DT_NEEDED links mentioned inside DSOs that follow"
+msgstr ""
+
+#: lexsup.c:403
+msgid "Output cross reference table"
+msgstr ""
+
+#: lexsup.c:405
+msgid "SYMBOL=EXPRESSION"
+msgstr ""
+
+#: lexsup.c:405
+msgid "Define a symbol"
+msgstr ""
+
+#: lexsup.c:407
+msgid "[=STYLE]"
+msgstr ""
+
+#: lexsup.c:407
+msgid "Demangle symbol names [using STYLE]"
+msgstr ""
+
+#: lexsup.c:410
+msgid "Generate embedded relocs"
+msgstr ""
+
+#: lexsup.c:412
+msgid "Treat warnings as errors"
+msgstr ""
+
+#: lexsup.c:415
+msgid "Do not treat warnings as errors (default)"
+msgstr ""
+
+#: lexsup.c:418
+msgid "Call SYMBOL at unload-time"
+msgstr ""
+
+#: lexsup.c:420
+msgid "Force generation of file with .exe suffix"
+msgstr ""
+
+#: lexsup.c:422
+msgid "Remove unused sections (on some targets)"
+msgstr ""
+
+#: lexsup.c:425
+msgid "Don't remove unused sections (default)"
+msgstr ""
+
+#: lexsup.c:428
+msgid "List removed unused sections on stderr"
+msgstr ""
+
+#: lexsup.c:431
+msgid "Do not list removed unused sections"
+msgstr ""
+
+#: lexsup.c:434
+msgid "Set default hash table size close to <NUMBER>"
+msgstr ""
+
+#: lexsup.c:437
+msgid "Print option help"
+msgstr ""
+
+#: lexsup.c:439
+msgid "Call SYMBOL at load-time"
+msgstr ""
+
+#: lexsup.c:441
+msgid "Write a map file"
+msgstr ""
+
+#: lexsup.c:443
+msgid "Do not define Common storage"
+msgstr ""
+
+#: lexsup.c:445
+msgid "Do not demangle symbol names"
+msgstr ""
+
+#: lexsup.c:447
+msgid "Use less memory and more disk I/O"
+msgstr ""
+
+#: lexsup.c:449
+msgid "Do not allow unresolved references in object files"
+msgstr ""
+
+#: lexsup.c:452
+msgid "Allow unresolved references in shared libaries"
+msgstr ""
+
+#: lexsup.c:456
+msgid "Do not allow unresolved references in shared libs"
+msgstr ""
+
+#: lexsup.c:460
+msgid "Allow multiple definitions"
+msgstr ""
+
+#: lexsup.c:462
+msgid "Disallow undefined version"
+msgstr ""
+
+#: lexsup.c:464
+msgid "Create default symbol version"
+msgstr ""
+
+#: lexsup.c:467
+msgid "Create default symbol version for imported symbols"
+msgstr ""
+
+#: lexsup.c:470
+msgid "Don't warn about mismatched input files"
+msgstr ""
+
+#: lexsup.c:473
+msgid "Don't warn on finding an incompatible library"
+msgstr ""
+
+#: lexsup.c:476
+msgid "Turn off --whole-archive"
+msgstr ""
+
+#: lexsup.c:478
+msgid "Create an output file even if errors occur"
+msgstr ""
+
+#: lexsup.c:483
+msgid ""
+"Only use library directories specified on\n"
+"                                the command line"
+msgstr ""
+
+#: lexsup.c:487
+msgid "Specify target of output file"
+msgstr ""
+
+#: lexsup.c:490
+msgid "Ignored for Linux compatibility"
+msgstr ""
+
+#: lexsup.c:493
+msgid "Reduce memory overheads, possibly taking much longer"
+msgstr ""
+
+#: lexsup.c:496
+msgid "Reduce code size by using target specific optimizations"
+msgstr ""
+
+#: lexsup.c:498
+msgid "Do not use relaxation techniques to reduce code size"
+msgstr ""
+
+#: lexsup.c:501
+msgid "Keep only symbols listed in FILE"
+msgstr ""
+
+#: lexsup.c:503
+msgid "Set runtime shared library search path"
+msgstr ""
+
+#: lexsup.c:505
+msgid "Set link time shared library search path"
+msgstr ""
+
+#: lexsup.c:508
+msgid "Create a shared library"
+msgstr ""
+
+#: lexsup.c:512
+msgid "Create a position independent executable"
+msgstr ""
+
+#: lexsup.c:516
+msgid "[=ascending|descending]"
+msgstr ""
+
+#: lexsup.c:517
+msgid "Sort common symbols by alignment [in specified order]"
+msgstr ""
+
+#: lexsup.c:522
+msgid "name|alignment"
+msgstr ""
+
+#: lexsup.c:523
+msgid "Sort sections by name or maximum alignment"
+msgstr ""
+
+#: lexsup.c:525
+msgid "COUNT"
+msgstr ""
+
+#: lexsup.c:525
+msgid "How many tags to reserve in .dynamic section"
+msgstr ""
+
+#: lexsup.c:528
+msgid "[=SIZE]"
+msgstr ""
+
+#: lexsup.c:528
+msgid "Split output sections every SIZE octets"
+msgstr ""
+
+#: lexsup.c:531
+msgid "[=COUNT]"
+msgstr ""
+
+#: lexsup.c:531
+msgid "Split output sections every COUNT relocs"
+msgstr ""
+
+#: lexsup.c:534
+msgid "Print memory usage statistics"
+msgstr ""
+
+#: lexsup.c:536
+msgid "Display target specific options"
+msgstr ""
+
+#: lexsup.c:538
+msgid "Do task level linking"
+msgstr ""
+
+#: lexsup.c:540
+msgid "Use same format as native linker"
+msgstr ""
+
+#: lexsup.c:542
+msgid "SECTION=ADDRESS"
+msgstr ""
+
+#: lexsup.c:542
+msgid "Set address of named section"
+msgstr "named セクションのアドレスを設定する"
+
+#: lexsup.c:545
+msgid "Set address of .bss section"
+msgstr ".bss セクションのアドレスを設定する"
+
+#: lexsup.c:547
+msgid "Set address of .data section"
+msgstr ".data セクションのアドレスを設定する"
+
+#: lexsup.c:549
+msgid "Set address of .text section"
+msgstr ".text セクションのアドレスを設定する"
+
+#: lexsup.c:551
+msgid "Set address of text segment"
+msgstr "text セグメントのアドレスを設定する"
+
+#: lexsup.c:554
+msgid ""
+"How to handle unresolved symbols.  <method> is:\n"
+"                                ignore-all, report-all, ignore-in-object-files,\n"
+"                                ignore-in-shared-libs"
+msgstr ""
+"解決されなかったシンボルをどのように扱うかを指定する。 <method> は以下の通り:\n"
+"                                ignore-all, report-all, ignore-in-object-files,\n"
+"                                ignore-in-shared-libs"
+
+#: lexsup.c:559
+msgid "Output lots of information during link"
+msgstr "リンク中に多数の情報を表示する"
+
+#: lexsup.c:563
+msgid "Read version information script"
+msgstr "バージョン情報スクリプトを読み込む"
+
+#: lexsup.c:566
+msgid ""
+"Take export symbols list from .exports, using\n"
+"                                SYMBOL as the version."
+msgstr ""
+
+#: lexsup.c:570
+msgid "Add data symbols to dynamic list"
+msgstr ""
+
+#: lexsup.c:572
+msgid "Use C++ operator new/delete dynamic list"
+msgstr ""
+
+#: lexsup.c:574
+msgid "Use C++ typeinfo dynamic list"
+msgstr ""
+
+#: lexsup.c:576
+msgid "Read dynamic list"
+msgstr "動的リストを読み込む"
+
+#: lexsup.c:578
+msgid "Warn about duplicate common symbols"
+msgstr ""
+
+#: lexsup.c:580
+msgid "Warn if global constructors/destructors are seen"
+msgstr "大域コンストラクタ/デストラクタが見つかったときに警告する"
+
+#: lexsup.c:583
+msgid "Warn if the multiple GP values are used"
+msgstr "複数の GP 値が使用されているときに警告する"
+
+#: lexsup.c:585
+msgid "Warn only once per undefined symbol"
+msgstr "定義されていないシンボルがあるごとに一回のみ警告する"
+
+#: lexsup.c:587
+msgid "Warn if start of section changes due to alignment"
+msgstr "整列によりセクションの開始が変更されたときに警告する"
+
+#: lexsup.c:590
+msgid "Warn if shared object has DT_TEXTREL"
+msgstr "共有オブジェクトに DT_TEXTREL が含まれるときに警告する"
+
+#: lexsup.c:593
+msgid "Warn if an object has alternate ELF machine code"
+msgstr ""
+
+#: lexsup.c:597
+msgid "Report unresolved symbols as warnings"
+msgstr "解決できないシンボルを警告として報告する"
+
+#: lexsup.c:600
+msgid "Report unresolved symbols as errors"
+msgstr "解決できないシンボルをエラーとして報告する"
+
+#: lexsup.c:602
+msgid "Include all objects from following archives"
+msgstr "これ以降の書庫からは全てのオブジェクトを含める"
+
+#: lexsup.c:605
+msgid "Use wrapper functions for SYMBOL"
+msgstr ""
+
+#: lexsup.c:754
+msgid "%P: unrecognized option '%s'\n"
+msgstr "%P: 認識できないオプション '%s' です\n"
+
+#: lexsup.c:758
+msgid "%P%F: use the --help option for usage information\n"
+msgstr "%P%F: 使用法に関する情報については --help オプションを使用してください\n"
+
+#: lexsup.c:776
+msgid "%P%F: unrecognized -a option `%s'\n"
+msgstr ""
+
+#: lexsup.c:789
+msgid "%P%F: unrecognized -assert option `%s'\n"
+msgstr ""
+
+#: lexsup.c:832
+msgid "%F%P: unknown demangling style `%s'"
+msgstr "%F%P: 不明な名前復元 (demangle) 形式 `%s' です"
+
+#: lexsup.c:898
+msgid "%P%F: invalid number `%s'\n"
+msgstr "%P%F: 無効な数値 `%s' です\n"
+
+#: lexsup.c:996
+msgid "%P%F: bad --unresolved-symbols option: %s\n"
+msgstr "%P%F: 誤った --unresolved-symbols オプションです: %s\n"
+
+#: lexsup.c:1059
+msgid "%P%F: bad -plugin option\n"
+msgstr "%P%F: 誤った -plugin オプションです\n"
+
+#: lexsup.c:1063
+msgid "%P%F: bad -plugin-opt option\n"
+msgstr "%P%F: 誤った -plugin-opt オプションです\n"
+
+#. This can happen if the user put "-rpath,a" on the command
+#. line.  (Or something similar.  The comma is important).
+#. Getopt becomes confused and thinks that this is a -r option
+#. but it cannot parse the text after the -r so it refuses to
+#. increment the optind counter.  Detect this case and issue
+#. an error message here.  We cannot just make this a warning,
+#. increment optind, and continue because getopt is too confused
+#. and will seg-fault the next time around.
+#: lexsup.c:1080
+msgid "%P%F: bad -rpath option\n"
+msgstr "%P%F: 誤った -rpath オプションです\n"
+
+#: lexsup.c:1194
+msgid "%P%F: -shared not supported\n"
+msgstr "%P%F: -shared はサポートされていません\n"
+
+#: lexsup.c:1203
+msgid "%P%F: -pie not supported\n"
+msgstr "%P%F: -pie はサポートされていません\n"
+
+#: lexsup.c:1211
+msgid "descending"
+msgstr "descending"
+
+#: lexsup.c:1213
+msgid "ascending"
+msgstr "ascending"
+
+#: lexsup.c:1216
+msgid "%P%F: invalid common section sorting option: %s\n"
+msgstr ""
+
+#: lexsup.c:1220
+msgid "name"
+msgstr ""
+
+#: lexsup.c:1222
+msgid "alignment"
+msgstr ""
+
+#: lexsup.c:1225
+msgid "%P%F: invalid section sorting option: %s\n"
+msgstr ""
+
+#: lexsup.c:1259
+msgid "%P%F: invalid argument to option \"--section-start\"\n"
+msgstr ""
+
+#: lexsup.c:1266
+msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
+msgstr ""
+
+#: lexsup.c:1490
+msgid "%P%F: group ended before it began (--help for usage)\n"
+msgstr ""
+
+#: lexsup.c:1518
+msgid "%P%X: --hash-size needs a numeric argument\n"
+msgstr ""
+
+#: lexsup.c:1547
+msgid "%P%F: %s: error loading plugin\n"
+msgstr "%P%F: %s: プラグインの読み込み中にエラーが発生しました\n"
+
+#: lexsup.c:1578 lexsup.c:1591
+msgid "%P%F: invalid hex number `%s'\n"
+msgstr "%P%F: 無効な十六進数 `%s' です\n"
+
+#: lexsup.c:1627
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "使用法: %s [options] file...\n"
+
+#: lexsup.c:1629
+#, c-format
+msgid "Options:\n"
+msgstr "オプション:\n"
+
+#: lexsup.c:1707
+#, c-format
+msgid "  @FILE"
+msgstr ""
+
+#: lexsup.c:1710
+#, c-format
+msgid "Read options from FILE\n"
+msgstr "オプションを FILE から読み込む\n"
+
+#. Note: Various tools (such as libtool) depend upon the
+#. format of the listings below - do not change them.
+#: lexsup.c:1715
+#, c-format
+msgid "%s: supported targets:"
+msgstr "%s: supported targets:"
+
+#: lexsup.c:1723
+#, c-format
+msgid "%s: supported emulations: "
+msgstr "%s: supported emulations: "
+
+#: lexsup.c:1728
+#, c-format
+msgid "%s: emulation specific options:\n"
+msgstr "%s: emulation specific options:\n"
+
+#: lexsup.c:1733
+#, c-format
+msgid "Report bugs to %s\n"
+msgstr ""
+"バグを発見したら <%s> に報告して下さい。\n"
+"翻訳に関するバグは<translation-team-ja@lists.sourceforge.net>に報告してください。\n"
+
+#: mri.c:292
+msgid "%P%F: unknown format type %s\n"
+msgstr ""
+
+#: pe-dll.c:430
+#, c-format
+msgid "%XUnsupported PEI architecture: %s\n"
+msgstr ""
+
+#: pe-dll.c:788
+#, c-format
+msgid "%XCannot export %s: invalid export name\n"
+msgstr ""
+
+#: pe-dll.c:844
+#, c-format
+msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
+msgstr ""
+
+#: pe-dll.c:851
+#, c-format
+msgid "Warning, duplicate EXPORT: %s\n"
+msgstr ""
+
+#: pe-dll.c:938
+#, c-format
+msgid "%XCannot export %s: symbol not defined\n"
+msgstr ""
+
+#: pe-dll.c:944
+#, c-format
+msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
+msgstr ""
+
+#: pe-dll.c:951
+#, c-format
+msgid "%XCannot export %s: symbol not found\n"
+msgstr ""
+
+#: pe-dll.c:1065
+#, c-format
+msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
+msgstr ""
+
+#: pe-dll.c:1446
+#, c-format
+msgid "%XError: %d-bit reloc in dll\n"
+msgstr ""
+
+#: pe-dll.c:1574
+#, c-format
+msgid "%s: Can't open output def file %s\n"
+msgstr ""
+
+#: pe-dll.c:1725
+#, c-format
+msgid "; no contents available\n"
+msgstr ""
+
+#: pe-dll.c:2652
+msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
+msgstr ""
+
+#: pe-dll.c:2682
+#, c-format
+msgid "%XCan't open .lib file: %s\n"
+msgstr ""
+
+#: pe-dll.c:2687
+#, c-format
+msgid "Creating library file: %s\n"
+msgstr ""
+
+#: pe-dll.c:2716
+#, c-format
+msgid "%Xbfd_openr %s: %E\n"
+msgstr ""
+
+#: pe-dll.c:2728
+#, c-format
+msgid "%X%s(%s): can't find member in non-archive file"
+msgstr ""
+
+#: pe-dll.c:2740
+#, c-format
+msgid "%X%s(%s): can't find member in archive"
+msgstr ""
+
+#: pe-dll.c:3177
+#, c-format
+msgid "%XError: can't use long section names on this arch\n"
+msgstr ""
+
+#: plugin.c:178 plugin.c:212
+msgid "<no plugin>"
+msgstr ""
+
+#: plugin.c:308
+msgid "%P%F: %s: non-ELF symbol in ELF BFD!"
+msgstr ""
+
+#: plugin.c:800
+msgid "%P%X: %s: hash table failure adding symbol %s"
+msgstr ""
+
+#: plugin.c:833
+msgid "%P%X: %s: can't find IR symbol '%s'"
+msgstr ""
+
+#: plugin.c:836
+msgid "%P%x: %s: bad IR symbol type %d"
+msgstr ""