static const char *mname = "ppc";
#endif
+#ifdef DLLTOOL_SH
+static const char *mname = "sh";
+#endif
+
+#ifdef DLLTOOL_MIPS
+static const char *mname = "mips";
+#endif
+
#ifdef DLLTOOL_MCORE
static const char * mname = "mcore-le";
#endif
static const unsigned char mcore_be_jtab[] =
{
- 0x70, 0x01, /* jmpi 1 */
- 0x12, 0x11, /* nop */
- 0x00, 0x00, 0x00, 0x00 /* <address> */
+ 0x71, 0x02, /* lrw r1,2 */
+ 0x81, 0x01, /* ld.w r1,(r1,0) */
+ 0x00, 0xC1, /* jmp r1 */
+ 0x12, 0x00, /* nop */
+ 0x00, 0x00, 0x00, 0x00 /* <address> */
};
static const unsigned char mcore_le_jtab[] =
{
- 0x01, 0x70, /* jmpi 1 */
- 0x11, 0x12, /* nop */
- 0x00, 0x00, 0x00, 0x00 /* <address> */
+ 0x02, 0x71, /* lrw r1,2 */
+ 0x01, 0x81, /* ld.w r1,(r1,0) */
+ 0xC1, 0x00, /* jmp r1 */
+ 0x00, 0x12, /* nop */
+ 0x00, 0x00, 0x00, 0x00 /* <address> */
};
/* This is the glue sequence for PowerPC PE. There is a */
{
#define MMCORE_BE 5
"mcore-be", ".byte", ".short", ".long", ".asciz", "//",
- "jmpi\t1\n\tnop\n\t.long",
+ "lrw r1,[1f]\n\tld.w r1,(r1,0)\n\tjmp r1\n\tnop\n1:.long",
".global", ".space", ".align\t2",".align\t4", "",
"pe-mcore-big", bfd_arch_mcore,
- mcore_be_jtab, sizeof (mcore_be_jtab), 4
+ mcore_be_jtab, sizeof (mcore_be_jtab), 8
}
,
{
#define MMCORE_LE 6
"mcore-le", ".byte", ".short", ".long", ".asciz", "//",
- "jmpi\t1\n\tnop\n\t.long",
+ "lrw r1,[1f]\n\tld.w r1,(r1,0)\n\tjmp r1\n\tnop\n1:.long",
".global", ".space", ".align\t2",".align\t4", "-EL",
"pe-mcore-little", bfd_arch_mcore,
- mcore_le_jtab, sizeof (mcore_le_jtab), 4
+ mcore_le_jtab, sizeof (mcore_le_jtab), 8
}
,
{
#define MMCORE_ELF 7
"mcore-elf-be", ".byte", ".short", ".long", ".asciz", "//",
- "jmpi\t1\n\tnop\n\t.long",
+ "lrw r1,[1f]\n\tld.w r1,(r1,0)\n\tjmp r1\n\tnop\n1:.long",
".global", ".space", ".align\t2",".align\t4", "",
"elf32-mcore-big", bfd_arch_mcore,
- mcore_be_jtab, sizeof (mcore_be_jtab), 4
+ mcore_be_jtab, sizeof (mcore_be_jtab), 8
}
,
{
#define MMCORE_ELF_LE 8
"mcore-elf-le", ".byte", ".short", ".long", ".asciz", "//",
- "jmpi\t1\n\tnop\n\t.long",
+ "lrw r1,[1f]\n\tld.w r1,(r1,0)\n\tjmp r1\n\tnop\n1:.long",
".global", ".space", ".align\t2",".align\t4", "-EL",
"elf32-mcore-little", bfd_arch_mcore,
- mcore_le_jtab, sizeof (mcore_le_jtab), 4
+ mcore_le_jtab, sizeof (mcore_le_jtab), 8
}
,
{
static int alphafunc PARAMS ((const void *, const void *));
static void mangle_defs PARAMS ((void));
static void usage PARAMS ((FILE *, int));
-static void display PARAMS ((const char *, va_list));
static void inform PARAMS ((const char *, ...));
-static void warn PARAMS ((const char *, ...));
-
-static void
-display (message, args)
- const char * message;
- va_list args;
-{
- if (program_name != NULL)
- fprintf (stderr, "%s: ", program_name);
-
- vfprintf (stderr, message, args);
-
- if (message [strlen (message) - 1] != '\n')
- fputc ('\n', stderr);
-}
static void
va_start (args);
#endif
- display (message, args);
+ report (message, args);
va_end (args);
}
-static void
-#ifdef __STDC__
-warn (const char * message, ...)
-#else
-warn (message, va_alist)
- const char * message;
- va_dcl
-#endif
-{
- va_list args;
-
-#ifdef __STDC__
- va_start (args, message);
-#else
- va_start (args);
-#endif
-
- display (message, args);
-
- va_end (args);
-}
-
static const char *
rvaafter (machine)
int machine;
break;
default:
/* xgettext:c-format */
- fatal (_("Internal error: Unknown machine type: %d\n"), machine);
+ fatal (_("Internal error: Unknown machine type: %d"), machine);
break;
}
return "";
return ".rva\t";
default:
/* xgettext:c-format */
- fatal (_("Internal error: Unknown machine type: %d\n"), machine);
+ fatal (_("Internal error: Unknown machine type: %d"), machine);
break;
}
return "";
return "_";
default:
/* xgettext:c-format */
- fatal (_("Internal error: Unknown machine type: %d\n"), machine);
+ fatal (_("Internal error: Unknown machine type: %d"), machine);
break;
}
return "";
const char * err ATTRIBUTE_UNUSED;
{
/* xgettext:c-format */
- warn (_("Syntax error in def file %s:%d\n"), def_file, linenumber);
+ non_fatal (_("Syntax error in def file %s:%d"), def_file, linenumber);
return 0;
}
inform (_("NAME: %s base: %x"), name, base);
if (d_is_dll)
- warn (_("Can't have LIBRARY and NAME\n"));
+ non_fatal (_("Can't have LIBRARY and NAME"));
d_name = name;
/* if --dllname not provided, use the one in the DEF file.
inform (_("LIBRARY: %s base: %x"), name, base);
if (d_is_exe)
- warn (_("%s: Can't have LIBRARY and NAME\n"), program_name);
+ non_fatal (_("Can't have LIBRARY and NAME"));
d_name = name;
/* if --dllname not provided, use the one in the DEF file. */
char *errmsg_fmt, *errmsg_arg;
char *temp_base = choose_temp_base ();
- inform ("run: %s %s\n", what, args);
+ inform ("run: %s %s", what, args);
/* Count the args */
i = 0;
{
if (WEXITSTATUS (wait_status) != 0)
/* xgettext:c-format */
- warn (_("%s exited with status %d\n"),
- what, WEXITSTATUS (wait_status));
+ non_fatal (_("%s exited with status %d"),
+ what, WEXITSTATUS (wait_status));
}
else
abort ();
bfd_get_section_contents (abfd, s, buf, 0, size);
/* xgettext:c-format */
- inform (_("Sucking in info from %s section in %s\n"),
+ inform (_("Sucking in info from %s section in %s"),
DRECTVE_SECTION_NAME, bfd_get_filename (abfd));
/* Search for -export: strings. The exported symbols can optionally
excludes = new_exclude;
/* xgettext:c-format */
- inform (_("Excluding symbol: %s\n"), exclude_string);
+ inform (_("Excluding symbol: %s"), exclude_string);
}
free (local_copy);
if (! (bfd_get_file_flags (abfd) & HAS_SYMS))
{
/* xgettext:c-format */
- warn (_("%s: no symbols\n"), bfd_get_filename (abfd));
+ non_fatal (_("%s: no symbols"), bfd_get_filename (abfd));
return;
}
if (symcount == 0)
{
/* xgettext:c-format */
- warn (_("%s: no symbols\n"), bfd_get_filename (abfd));
+ non_fatal (_("%s: no symbols"), bfd_get_filename (abfd));
return;
}
/* FIXME: we ought to read in and block out the base relocations */
/* xgettext:c-format */
- inform (_("Done reading %s\n"), bfd_get_filename (abfd));
+ inform (_("Done reading %s"), bfd_get_filename (abfd));
}
static void
dlist_type *dl;
/* xgettext:c-format */
- inform (_("Generating export file: %s\n"), exp_name);
+ inform (_("Generating export file: %s"), exp_name);
f = fopen (TMP_ASM, FOPEN_WT);
if (!f)
fatal (_("Can't open .lib file: %s"), imp_name);
/* xgettext:c-format */
- inform (_("Creating library file: %s\n"), imp_name);
+ inform (_("Creating library file: %s"), imp_name);
bfd_set_format (outarch, bfd_archive);
outarch->has_armap = 1;
sprintf (name, "%s%05d.o", TMP_STUB, i);
if (unlink (name) < 0)
/* xgettext:c-format */
- warn (_("cannot delete %s: %s\n"), name, strerror (errno));
+ non_fatal (_("cannot delete %s: %s"), name, strerror (errno));
}
}
more = 1;
/* xgettext:c-format */
- inform (_("Warning, ignoring duplicate EXPORT %s %d,%d\n"),
+ inform (_("Warning, ignoring duplicate EXPORT %s %d,%d"),
a->name, a->ordinal, b->ordinal);
if (a->ordinal != -1