aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
Diffstat (limited to 'binutils')
-rw-r--r--binutils/MAINTAINERS4
-rw-r--r--binutils/NEWS10
-rw-r--r--binutils/ar.c86
-rw-r--r--binutils/arsup.c14
-rw-r--r--binutils/configure.ac6
-rw-r--r--binutils/doc/binutils.texi12
-rw-r--r--binutils/dwarf.c17
-rw-r--r--binutils/nm.c27
-rw-r--r--binutils/objcopy.c236
-rw-r--r--binutils/readelf.c1092
-rw-r--r--binutils/resbin.c26
-rw-r--r--binutils/rescoff.c8
-rw-r--r--binutils/strings.c4
-rw-r--r--binutils/testsuite/binutils-all/aarch64/pei-aarch64-little.d2
-rw-r--r--binutils/testsuite/binutils-all/ar.exp4
-rw-r--r--binutils/testsuite/binutils-all/copy-7.d14
-rw-r--r--binutils/testsuite/binutils-all/copy-7.s7
-rw-r--r--binutils/testsuite/binutils-all/loongarch64/pei-loongarch64.d2
-rw-r--r--binutils/testsuite/binutils-all/nm.exp1
-rw-r--r--binutils/testsuite/binutils-all/objcopy.exp44
-rw-r--r--binutils/testsuite/binutils-all/readelf.exp5
-rw-r--r--binutils/testsuite/binutils-all/riscv/pei-riscv64.d2
-rw-r--r--binutils/testsuite/binutils-all/tek2.obj8
-rw-r--r--binutils/testsuite/binutils-all/testranges-ia64.d2
-rw-r--r--binutils/testsuite/binutils-all/windres/psql.rc822
-rw-r--r--binutils/testsuite/binutils-all/windres/windres.exp18
-rw-r--r--binutils/testsuite/binutils-all/x86-64/x86-64.exp2
-rw-r--r--binutils/testsuite/lib/binutils-common.exp1
28 files changed, 1982 insertions, 494 deletions
diff --git a/binutils/MAINTAINERS b/binutils/MAINTAINERS
index 14c24af..59f1603 100644
--- a/binutils/MAINTAINERS
+++ b/binutils/MAINTAINERS
@@ -87,10 +87,8 @@ responsibility among the other maintainers.
FRV Alexandre Oliva <aoliva@sourceware.org>
GOLD Ian Lance Taylor <iant@google.com>
GOLD Cary Coutant <ccoutant@gmail.com>
- gprofng Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
HPPA Dave Anglin <dave.anglin@bell.net>
HPPA elf64 Jeff Law <law@redhat.com> [Basic maintainance only]
- IA-64 Jim Wilson <wilson@tuliptree.org>
ix86 H.J. Lu <hjl.tools@gmail.com>
ix86 COFF DJ Delorie <dj@redhat.com>
ix86 PE/COFF Dave Korn <dave.korn.cygwin@gmail.com>
@@ -166,6 +164,8 @@ goes with them.
M R Swami Reddy
Martin Schwidefsky
Matt Thomas
+ Jim Wilson
+ Vladimir Mezentsev
--------- CGEN Maintainers -------------
diff --git a/binutils/NEWS b/binutils/NEWS
index 5038851..0a4ed3b 100644
--- a/binutils/NEWS
+++ b/binutils/NEWS
@@ -1,5 +1,15 @@
-*- text -*-
+* Add --got-contents option to readelf to display the contents of
+ Global Offset Table (GOT) sections.
+
+* Internal changes to plugin support, and stricter target checking may result
+ in some errors being exposed in user options passed to the various binutils.
+ For example objcopy --target=TARGET now will only work if the input file is
+ for TARGET whereas prior versions of objcopy accepted other target input
+ files and produced a TARGET output. If you do in fact want the old
+ behaviour the correct usage is objcopy --output-target=TARGET.
+
* NaCl target support is removed.
Changes in 2.45:
diff --git a/binutils/ar.c b/binutils/ar.c
index de41c9e..afe8633 100644
--- a/binutils/ar.c
+++ b/binutils/ar.c
@@ -32,9 +32,7 @@
#include "arsup.h"
#include "filenames.h"
#include "binemul.h"
-#include "plugin-api.h"
#include "plugin.h"
-#include "ansidecl.h"
#ifdef __GO32___
#define EXT_NAME_LEN 3 /* Bufflen of addition to name if it's MS-DOS. */
@@ -42,12 +40,9 @@
#define EXT_NAME_LEN 6 /* Ditto for *NIX. */
#endif
-/* Static declarations. */
+/* Forward declarations. */
-static void mri_emul (void);
static const char *normalize (const char *, bfd *);
-static void remove_output (void);
-static void map_over_members (bfd *, void (*)(bfd *), char **, int);
static void print_contents (bfd * member);
static void delete_members (bfd *, char **files_to_delete);
@@ -58,8 +53,7 @@ static void print_descr (bfd * abfd);
static void write_archive (bfd *);
static int ranlib_only (const char *archname);
static int ranlib_touch (const char *archname);
-static void usage (int);
-
+
/** Globals and flags. */
static int mri_mode;
@@ -148,12 +142,6 @@ static int show_version = 0;
static int show_help = 0;
-#if BFD_SUPPORTS_PLUGINS
-static const char *plugin_target = "plugin";
-#else
-static const char *plugin_target = NULL;
-#endif
-
static const char *target = NULL;
enum long_option_numbers
@@ -280,18 +268,18 @@ usage (int help)
{
FILE *s;
-#if BFD_SUPPORTS_PLUGINS
- /* xgettext:c-format */
- const char *command_line
- = _("Usage: %s [emulation options] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV]"
- " [--plugin <name>] [member-name] [count] archive-file file...\n");
+ const char *command_line;
+ if (bfd_plugin_enabled ())
+ /* xgettext:c-format */
+ command_line
+ = _("Usage: %s [emulation options] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV]"
+ " [--plugin <name>] [member-name] [count] archive-file file...\n");
+ else
+ /* xgettext:c-format */
+ command_line
+ = _("Usage: %s [emulation options] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV]"
+ " [member-name] [count] archive-file file...\n");
-#else
- /* xgettext:c-format */
- const char *command_line
- = _("Usage: %s [emulation options] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV]"
- " [member-name] [count] archive-file file...\n");
-#endif
s = help ? stdout : stderr;
fprintf (s, command_line, program_name);
@@ -343,10 +331,11 @@ usage (int help)
fprintf (s, _(" --output=DIRNAME - specify the output directory for extraction operations\n"));
fprintf (s, _(" --record-libdeps=<text> - specify the dependencies of this library\n"));
fprintf (s, _(" --thin - make a thin archive\n"));
-#if BFD_SUPPORTS_PLUGINS
- fprintf (s, _(" optional:\n"));
- fprintf (s, _(" --plugin <p> - load the specified plugin\n"));
-#endif
+ if (bfd_plugin_enabled ())
+ {
+ fprintf (s, _(" optional:\n"));
+ fprintf (s, _(" --plugin <p> - load the specified plugin\n"));
+ }
ar_emul_usage (s);
@@ -370,10 +359,9 @@ ranlib_usage (int help)
fprintf (s, _(" Generate an index to speed access to archives\n"));
fprintf (s, _(" The options are:\n\
@<file> Read options from <file>\n"));
-#if BFD_SUPPORTS_PLUGINS
- fprintf (s, _("\
+ if (bfd_plugin_enabled ())
+ fprintf (s, _("\
--plugin <name> Load the specified plugin\n"));
-#endif
if (DEFAULT_AR_DETERMINISTIC)
fprintf (s, _("\
-D Use zero for symbol map timestamp (default)\n\
@@ -600,12 +588,9 @@ decode_options (int argc, char **argv)
deterministic = false;
break;
case OPTION_PLUGIN:
-#if BFD_SUPPORTS_PLUGINS
+ if (!bfd_plugin_enabled ())
+ fatal (_("sorry - this program has been built without plugin support\n"));
bfd_plugin_set_plugin (optarg);
-#else
- fprintf (stderr, _("sorry - this program has been built without plugin support\n"));
- xexit (1);
-#endif
break;
case OPTION_TARGET:
target = optarg;
@@ -675,12 +660,9 @@ ranlib_main (int argc, char **argv)
/* PR binutils/13493: Support plugins. */
case OPTION_PLUGIN:
-#if BFD_SUPPORTS_PLUGINS
+ if (!bfd_plugin_enabled ())
+ fatal (_("sorry - this program has been built without plugin support\n"));
bfd_plugin_set_plugin (optarg);
-#else
- fprintf (stderr, _("sorry - this program has been built without plugin support\n"));
- xexit (1);
-#endif
break;
}
}
@@ -731,9 +713,7 @@ main (int argc, char **argv)
program_name = argv[0];
xmalloc_set_program_name (program_name);
bfd_set_error_program_name (program_name);
-#if BFD_SUPPORTS_PLUGINS
bfd_plugin_set_program_name (program_name);
-#endif
expandargv (&argc, &argv);
@@ -888,7 +868,7 @@ main (int argc, char **argv)
if (! bfd_make_readable (libdeps_bfd))
fatal (_("Cannot make libdeps object readable."));
- if (bfd_find_target (plugin_target, libdeps_bfd) == NULL)
+ if (bfd_find_target (target, libdeps_bfd) == NULL)
fatal (_("Cannot reset libdeps record type."));
/* Insert our libdeps record in 2nd slot of the list of files
@@ -977,12 +957,10 @@ open_inarch (const char *archive_filename, const char *file)
struct stat sbuf;
bfd *arch;
char **matching;
+ const char *arch_target = target;
bfd_set_error (bfd_error_no_error);
- if (target == NULL)
- target = plugin_target;
-
if (stat (archive_filename, &sbuf) != 0)
{
#if !defined(__GO32__) || defined(__DJGPP__)
@@ -1008,16 +986,16 @@ open_inarch (const char *archive_filename, const char *file)
/* If the target isn't set, try to figure out the target to use
for the archive from the first object on the list. */
- if (target == NULL && file != NULL)
+ if (arch_target == NULL && file != NULL)
{
bfd *obj;
- obj = bfd_openr (file, target);
+ obj = bfd_openr (file, arch_target);
if (obj != NULL)
{
if (bfd_check_format (obj, bfd_object)
&& bfd_target_supports_archives (obj))
- target = bfd_get_target (obj);
+ arch_target = bfd_get_target (obj);
(void) bfd_close (obj);
}
}
@@ -1026,7 +1004,7 @@ open_inarch (const char *archive_filename, const char *file)
output_filename = xstrdup (archive_filename);
/* Create an empty archive. */
- arch = bfd_openw (archive_filename, target);
+ arch = bfd_openw (archive_filename, arch_target);
if (arch == NULL
|| ! bfd_set_format (arch, bfd_archive)
|| ! bfd_close (arch))
@@ -1035,7 +1013,7 @@ open_inarch (const char *archive_filename, const char *file)
non_fatal (_("creating %s"), archive_filename);
}
- arch = bfd_openr (archive_filename, target);
+ arch = bfd_openr (archive_filename, arch_target);
if (arch == NULL)
{
bloser:
@@ -1069,8 +1047,8 @@ open_inarch (const char *archive_filename, const char *file)
}
}
+ /* Open all the archive contents. */
last_one = &(arch->archive_next);
- /* Read all the contents right away, regardless. */
for (next_one = bfd_openr_next_archived_file (arch, NULL);
next_one;
next_one = bfd_openr_next_archived_file (arch, next_one))
diff --git a/binutils/arsup.c b/binutils/arsup.c
index 67cbd5c..c7b6564 100644
--- a/binutils/arsup.c
+++ b/binutils/arsup.c
@@ -32,11 +32,6 @@
#include "bucomm.h"
#include "arsup.h"
-static void map_over_list
- (bfd *, void (*function) (bfd *, bfd *), struct list *);
-static void ar_directory_doer (bfd *, bfd *);
-static void ar_addlib_doer (bfd *, bfd *);
-
extern int verbose;
extern int deterministic;
@@ -180,11 +175,7 @@ ar_open (char *name, int t)
bfd *element;
bfd *ibfd;
-#if BFD_SUPPORTS_PLUGINS
- ibfd = bfd_openr (name, "plugin");
-#else
ibfd = bfd_openr (name, NULL);
-#endif
if (!ibfd)
{
@@ -266,11 +257,7 @@ ar_addmod (struct list *list)
{
bfd *abfd;
-#if BFD_SUPPORTS_PLUGINS
- abfd = bfd_openr (list->name, "plugin");
-#else
abfd = bfd_openr (list->name, NULL);
-#endif
if (!abfd)
{
fprintf (stderr, _("%s: can't open file %s\n"),
@@ -504,7 +491,6 @@ ar_extract (struct list *list)
if (!found)
{
- bfd_openr (list->name, NULL);
fprintf (stderr, _("%s: can't find module file %s\n"),
program_name, list->name);
}
diff --git a/binutils/configure.ac b/binutils/configure.ac
index a393036..93e8a4b 100644
--- a/binutils/configure.ac
+++ b/binutils/configure.ac
@@ -201,9 +201,9 @@ GCC_AC_FUNC_MMAP
AC_CHECK_FUNCS(fseeko fseeko64 getc_unlocked mkdtemp mkstemp utimensat utimes)
AC_MSG_CHECKING([for mbstate_t])
-AC_TRY_COMPILE([#include <wchar.h>],
-[mbstate_t teststate;],
-have_mbstate_t=yes, have_mbstate_t=no)
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <wchar.h>]],
+[[mbstate_t teststate;]])],
+[have_mbstate_t=yes],[have_mbstate_t=no])
AC_MSG_RESULT($have_mbstate_t)
if test x"$have_mbstate_t" = xyes; then
AC_DEFINE(HAVE_MBSTATE_T,1,[Define if mbstate_t exists in wchar.h.])
diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi
index 4543341..89425b8 100644
--- a/binutils/doc/binutils.texi
+++ b/binutils/doc/binutils.texi
@@ -5076,6 +5076,7 @@ readelf [@option{-a}|@option{--all}]
[@option{--ctf-strings=}@var{section}]
[@option{--sframe=}@var{section}]
[@option{-I}|@option{--histogram}]
+ [@option{--got-contents}]
[@option{-v}|@option{--version}]
[@option{-W}|@option{--wide}]
[@option{-T}|@option{--silent-truncation}]
@@ -5111,7 +5112,8 @@ given.
Equivalent to specifying @option{--file-header},
@option{--program-headers}, @option{--sections}, @option{--symbols},
@option{--relocs}, @option{--dynamic}, @option{--notes},
-@option{--version-info}, @option{--arch-specific}, @option{--unwind},
+@option{--got-contents}, @option{--version-info},
+@option{--arch-specific}, @option{--unwind},
@option{--section-groups} and @option{--histogram}.
Note - this option does not enable @option{--use-dynamic} itself, so
@@ -5387,6 +5389,14 @@ string table are used.
If either of @option{--ctf-symbols} or @option{--ctf-strings} is specified, the
other must be specified as well.
+@item --got-contents
+@cindex ELF section information
+@cindex ELF reloc information
+Displays the contents of the file's Global Offset Table (GOT) sections,
+if it has any. For MIPS, this option is similar to
+@option{--arch-specific}, but it only displays the GOT related contents
+and it is ignored when @option{--arch-specific} is used.
+
@item -I
@itemx --histogram
Display a histogram of bucket list lengths when displaying the contents
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index f4bcb67..bc5aa2b 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -8574,6 +8574,7 @@ typedef struct Frame_Chunk
uint64_t pc_range;
unsigned int cfa_reg;
uint64_t cfa_offset;
+ bool cfa_ofs_signed_p;
unsigned int ra;
unsigned char fde_encoding;
unsigned char cfa_exp;
@@ -9071,7 +9072,8 @@ frame_display_row (Frame_Chunk *fc, int *need_col_headers, unsigned int *max_reg
if (fc->cfa_exp)
strcpy (tmp, "exp");
else
- sprintf (tmp, "%s%+d", regname (fc->cfa_reg, 1), (int) fc->cfa_offset);
+ sprintf (tmp, (fc->cfa_ofs_signed_p ? "%s%+" PRId64 : "%s+%" PRIu64),
+ regname (fc->cfa_reg, 1), fc->cfa_offset);
printf ("%-8s ", tmp);
for (r = 0; r < fc->ncols; r++)
@@ -9794,6 +9796,7 @@ display_debug_frames (struct dwarf_section *section,
fc->data_factor = cie->data_factor;
fc->cfa_reg = cie->cfa_reg;
fc->cfa_offset = cie->cfa_offset;
+ fc->cfa_ofs_signed_p = cie->cfa_ofs_signed_p;
fc->ra = cie->ra;
if (frame_need_space (fc, max_regs > 0 ? max_regs - 1: 0) < 0)
{
@@ -10263,6 +10266,7 @@ display_debug_frames (struct dwarf_section *section,
printf (" DW_CFA_remember_state\n");
rs = (Frame_Chunk *) xmalloc (sizeof (Frame_Chunk));
rs->cfa_offset = fc->cfa_offset;
+ rs->cfa_ofs_signed_p = fc->cfa_ofs_signed_p;
rs->cfa_reg = fc->cfa_reg;
rs->ra = fc->ra;
rs->cfa_exp = fc->cfa_exp;
@@ -10285,6 +10289,7 @@ display_debug_frames (struct dwarf_section *section,
{
remembered_state = rs->next;
fc->cfa_offset = rs->cfa_offset;
+ fc->cfa_ofs_signed_p = rs->cfa_ofs_signed_p;
fc->cfa_reg = rs->cfa_reg;
fc->ra = rs->ra;
fc->cfa_exp = rs->cfa_exp;
@@ -10311,10 +10316,11 @@ display_debug_frames (struct dwarf_section *section,
case DW_CFA_def_cfa:
READ_ULEB (fc->cfa_reg, start, block_end);
READ_ULEB (fc->cfa_offset, start, block_end);
+ fc->cfa_ofs_signed_p = false;
fc->cfa_exp = 0;
if (! do_debug_frames_interp)
- printf (" DW_CFA_def_cfa: %s ofs %d\n",
- regname (fc->cfa_reg, 0), (int) fc->cfa_offset);
+ printf (" DW_CFA_def_cfa: %s ofs %" PRIu64 "\n",
+ regname (fc->cfa_reg, 0), fc->cfa_offset);
break;
case DW_CFA_def_cfa_register:
@@ -10327,8 +10333,9 @@ display_debug_frames (struct dwarf_section *section,
case DW_CFA_def_cfa_offset:
READ_ULEB (fc->cfa_offset, start, block_end);
+ fc->cfa_ofs_signed_p = false;
if (! do_debug_frames_interp)
- printf (" DW_CFA_def_cfa_offset: %d\n", (int) fc->cfa_offset);
+ printf (" DW_CFA_def_cfa_offset: %" PRIu64 "\n", fc->cfa_offset);
break;
case DW_CFA_nop:
@@ -10448,6 +10455,7 @@ display_debug_frames (struct dwarf_section *section,
ofs = sofs;
ofs *= fc->data_factor;
fc->cfa_offset = ofs;
+ fc->cfa_ofs_signed_p = true;
fc->cfa_exp = 0;
if (! do_debug_frames_interp)
printf (" DW_CFA_def_cfa_sf: %s ofs %" PRId64 "\n",
@@ -10459,6 +10467,7 @@ display_debug_frames (struct dwarf_section *section,
ofs = sofs;
ofs *= fc->data_factor;
fc->cfa_offset = ofs;
+ fc->cfa_ofs_signed_p = true;
if (! do_debug_frames_interp)
printf (" DW_CFA_def_cfa_offset_sf: %" PRId64 "\n", ofs);
break;
diff --git a/binutils/nm.c b/binutils/nm.c
index a5d5631..dce9207 100644
--- a/binutils/nm.c
+++ b/binutils/nm.c
@@ -36,9 +36,8 @@
#include "libcoff.h"
#include "bucomm.h"
#include "demanguse.h"
-#include "plugin-api.h"
-#include "plugin.h"
#include "safe-ctype.h"
+#include "plugin.h"
#ifndef streq
#define streq(a,b) (strcmp ((a),(b)) == 0)
@@ -221,11 +220,6 @@ static char other_format[] = "%02x";
static char desc_format[] = "%04x";
static char *target = NULL;
-#if BFD_SUPPORTS_PLUGINS
-static const char *plugin_target = "plugin";
-#else
-static const char *plugin_target = NULL;
-#endif
typedef enum unicode_display_type
{
@@ -343,10 +337,9 @@ usage (FILE *stream, int status)
-P, --portability Same as --format=posix\n"));
fprintf (stream, _("\
-r, --reverse-sort Reverse the sense of the sort\n"));
-#if BFD_SUPPORTS_PLUGINS
- fprintf (stream, _("\
+ if (bfd_plugin_enabled ())
+ fprintf (stream, _("\
--plugin NAME Load the specified plugin\n"));
-#endif
fprintf (stream, _("\
-S, --print-size Print size of defined symbols\n"));
fprintf (stream, _("\
@@ -802,6 +795,7 @@ filter_symbols (bfd *abfd, bool is_dynamic, void *minisyms,
continue;
if (bfd_lto_slim_symbol_p (abfd, sym->name)
+ && !bfd_plugin_target_p (abfd->xvec)
&& report_plugin_err)
{
report_plugin_err = false;
@@ -1484,7 +1478,8 @@ display_rel_file (bfd *abfd, bfd *archive_bfd)
/* lto_type is set to lto_non_ir_object when a bfd is loaded with a
compiler LTO plugin. */
- if (bfd_get_lto_type (abfd) == lto_slim_ir_object)
+ if (bfd_get_lto_type (abfd) == lto_slim_ir_object
+ && !bfd_plugin_target_p (abfd->xvec))
{
report_plugin_err = false;
non_fatal (_("%s: plugin needed to handle lto object"),
@@ -1642,7 +1637,7 @@ display_file (char *filename)
if (get_file_size (filename) < 1)
return false;
- file = bfd_openr (filename, target ? target : plugin_target);
+ file = bfd_openr (filename, target);
if (file == NULL)
{
bfd_nonfatal (filename);
@@ -1985,9 +1980,7 @@ main (int argc, char **argv)
program_name = *argv;
xmalloc_set_program_name (program_name);
bfd_set_error_program_name (program_name);
-#if BFD_SUPPORTS_PLUGINS
bfd_plugin_set_program_name (program_name);
-#endif
expandargv (&argc, &argv);
@@ -2134,11 +2127,9 @@ main (int argc, char **argv)
break;
case OPTION_PLUGIN: /* --plugin */
-#if BFD_SUPPORTS_PLUGINS
+ if (!bfd_plugin_enabled ())
+ fatal (_("sorry - this program has been built without plugin support\n"));
bfd_plugin_set_plugin (optarg);
-#else
- fatal (_("sorry - this program has been built without plugin support\n"));
-#endif
break;
case OPTION_IFUNC_CHARS:
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index 5774711..a3259f9 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -30,7 +30,6 @@
#include "coff/internal.h"
#include "libcoff.h"
#include "safe-ctype.h"
-#include "plugin-api.h"
#include "plugin.h"
/* FIXME: See bfd/peXXigen.c for why we include an architecture specific
@@ -167,11 +166,6 @@ static struct section_list *change_sections;
/* TRUE if some sections are to be removed. */
static bool sections_removed;
-#if BFD_SUPPORTS_PLUGINS
-/* TRUE if all GCC LTO sections are to be removed. */
-static bool lto_sections_removed;
-#endif
-
/* TRUE if only some sections are to be copied. */
static bool sections_copied;
@@ -767,10 +761,9 @@ strip_usage (FILE *stream, int exit_status)
--info List object formats & architectures supported\n\
-o <file> Place stripped output into <file>\n\
"));
-#if BFD_SUPPORTS_PLUGINS
- fprintf (stream, _("\
+ if (bfd_plugin_enabled ())
+ fprintf (stream, _("\
--plugin NAME Load the specified plugin\n"));
-#endif
list_supported_targets (program_name, stream);
if (REPORT_BUGS_TO[0] && exit_status == 0)
@@ -2661,8 +2654,7 @@ set_long_section_mode (bfd *output_bfd, bfd *input_bfd, enum long_section_name_h
Returns TRUE upon success, FALSE otherwise. */
static bool
-copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch,
- bool target_defaulted)
+copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
{
bfd_vma start;
long symcount;
@@ -2812,17 +2804,20 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch,
iarch = bed->arch;
imach = 0;
}
+ if (iarch == bfd_arch_unknown
+ && bfd_get_flavour (ibfd) == bfd_target_elf_flavour
+ && ibfd->target_defaulted)
+ {
+ non_fatal (_("Unable to recognise the architecture of the input file `%s'"),
+ bfd_get_archive_filename (ibfd));
+ return false;
+ }
if (!bfd_set_arch_mach (obfd, iarch, imach)
- && (target_defaulted
- || bfd_get_arch (ibfd) != bfd_get_arch (obfd)))
+ && iarch != bfd_arch_unknown)
{
- if (bfd_get_arch (ibfd) == bfd_arch_unknown)
- non_fatal (_("Unable to recognise the format of the input file `%s'"),
- bfd_get_archive_filename (ibfd));
- else
- non_fatal (_("Output file cannot represent architecture `%s'"),
- bfd_printable_arch_mach (bfd_get_arch (ibfd),
- bfd_get_mach (ibfd)));
+ non_fatal (_("Output file cannot represent architecture `%s'"),
+ bfd_printable_arch_mach (bfd_get_arch (ibfd),
+ bfd_get_mach (ibfd)));
return false;
}
@@ -3616,8 +3611,7 @@ fail:
static bool
copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
bool force_output_target,
- const bfd_arch_info_type *input_arch,
- bool target_defaulted)
+ const bfd_arch_info_type *input_arch)
{
struct name_list
{
@@ -3743,13 +3737,8 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
l->obfd = NULL;
list = l;
-#if BFD_SUPPORTS_PLUGINS
- /* Ignore plugin target if all LTO sections should be removed. */
- ok_object = bfd_check_format_lto (this_element, bfd_object,
- lto_sections_removed);
-#else
+ this_element->plugin_format = bfd_plugin_no;
ok_object = bfd_check_format (this_element, bfd_object);
-#endif
/* PR binutils/3110: Cope with archives
containing multiple target types. */
@@ -3766,16 +3755,12 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
goto cleanup_and_exit;
}
-#if BFD_SUPPORTS_PLUGINS
- /* Copy LTO IR file as unknown object. */
- if (bfd_plugin_target_p (this_element->xvec))
+ /* Copy slim LTO IR file as unknown object. */
+ if (this_element->lto_type == lto_slim_ir_object)
ok_object = false;
- else
-#endif
if (ok_object)
{
- ok = copy_object (this_element, output_element, input_arch,
- target_defaulted);
+ ok = copy_object (this_element, output_element, input_arch);
if (!ok && bfd_get_arch (this_element) == bfd_arch_unknown)
/* Try again as an unknown object file. */
@@ -3806,7 +3791,8 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
set_times (output_name, &buf);
/* Open the newly created output file and attach to our list. */
- output_element = bfd_openr (output_name, output_target);
+ const char *targ = force_output_target ? output_target : NULL;
+ output_element = bfd_openr (output_name, targ);
list->obfd = output_element;
@@ -3875,8 +3861,6 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
char **core_matching;
off_t size = get_file_size (input_filename);
const char *target = input_target;
- bool target_defaulted = (!input_target
- || strcmp (input_target, "default") == 0);
if (size < 1)
{
@@ -3887,12 +3871,6 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
return;
}
-#if BFD_SUPPORTS_PLUGINS
- /* Enable LTO plugin in strip. */
- if (is_strip && !target)
- target = "plugin";
-#endif
-
/* To allow us to do "strip *" without dying on the first
non-object file, failures are nonfatal. */
ibfd = bfd_openr (input_filename, target);
@@ -3946,6 +3924,8 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
break;
}
+ ibfd->plugin_format = bfd_plugin_no;
+
if (bfd_check_format (ibfd, bfd_archive))
{
bool force_output_target;
@@ -3985,32 +3965,66 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
}
if (!copy_archive (ibfd, obfd, output_target, force_output_target,
- input_arch, target_defaulted))
+ input_arch))
status = 1;
+ return;
}
- else if (
-#if BFD_SUPPORTS_PLUGINS
- /* Ignore plugin target first if all LTO sections should be
- removed. Try with plugin target next if ignoring plugin
- target fails to match the format. */
- bfd_check_format_matches_lto (ibfd, bfd_object, &obj_matching,
- lto_sections_removed)
- || (lto_sections_removed
- && bfd_check_format_matches_lto (ibfd, bfd_object,
- &obj_matching, false))
-#else
- bfd_check_format_matches_lto (ibfd, bfd_object, &obj_matching,
- false)
-#endif
- )
+
+ bool ok_plugin = false;
+ bool ok_object = bfd_check_format_matches (ibfd, bfd_object, &obj_matching);
+ bfd_error_type obj_error = bfd_get_error ();
+ bfd_error_type core_error = bfd_error_no_error;
+ if (!ok_object)
+ {
+ ok_object = bfd_check_format_matches (ibfd, bfd_core, &core_matching);
+ core_error = bfd_get_error ();
+ if (ok_object)
+ {
+ if (obj_error == bfd_error_file_ambiguously_recognized)
+ free (obj_matching);
+ obj_error = bfd_error_no_error;
+ }
+ else if (bfd_plugin_enabled ())
+ {
+ /* This is for LLVM bytecode files, which are not ELF objects.
+ Since objcopy/strip does nothing with these files except
+ copy them whole perhaps we ought to just reject them? */
+ bfd_find_target ("plugin", ibfd);
+ ibfd->plugin_format = bfd_plugin_unknown;
+ ok_plugin = bfd_check_format (ibfd, bfd_object);
+ }
+ }
+
+ if (obj_error == bfd_error_file_ambiguously_recognized)
+ {
+ if (core_error == bfd_error_file_ambiguously_recognized)
+ free (core_matching);
+ bfd_set_error (obj_error);
+ status = 1;
+ bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
+ list_matching_formats (obj_matching);
+ }
+ else if (core_error == bfd_error_file_ambiguously_recognized)
+ {
+ status = 1;
+ bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
+ list_matching_formats (core_matching);
+ }
+ else if (!ok_object && !ok_plugin)
+ {
+ status = 1;
+ bfd_set_error (obj_error);
+ bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
+ }
+ else
{
bfd *obfd;
- do_copy:
/* bfd_get_target does not return the correct value until
bfd_check_format succeeds. */
- if (output_target == NULL
- || strcmp (output_target, "default") == 0)
+ if (ok_object
+ && (output_target == NULL
+ || strcmp (output_target, "default") == 0))
output_target = bfd_get_target (ibfd);
if (ofd >= 0)
@@ -4028,66 +4042,30 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
return;
}
-#if BFD_SUPPORTS_PLUGINS
- if (bfd_plugin_target_p (ibfd->xvec))
- {
- /* Copy LTO IR file as unknown file. */
- if (!copy_unknown_file (ibfd, obfd, in_stat->st_size,
- in_stat->st_mode))
- status = 1;
- else if (!bfd_close_all_done (obfd))
- status = 1;
- }
- else
-#endif
- {
- if (! copy_object (ibfd, obfd, input_arch, target_defaulted))
- status = 1;
-
- /* PR 17512: file: 0f15796a.
- If the file could not be copied it may not be in a writeable
- state. So use bfd_close_all_done to avoid the possibility of
- writing uninitialised data into the file. */
- if (! (status ? bfd_close_all_done (obfd) : bfd_close (obfd)))
- {
- status = 1;
- bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
- }
- }
+ /* Copy slim LTO IR file as unknown file. */
+ if (ibfd->lto_type == lto_slim_ir_object)
+ ok_object = false;
+ if (ok_object
+ ? !copy_object (ibfd, obfd, input_arch)
+ : !copy_unknown_file (ibfd, obfd,
+ in_stat->st_size, in_stat->st_mode))
+ status = 1;
- if (!bfd_close (ibfd))
+ /* PR 17512: file: 0f15796a.
+ If the file could not be copied it may not be in a writeable
+ state. So use bfd_close_all_done to avoid the possibility of
+ writing uninitialised data into the file. */
+ if (!(ok_object && !status ? bfd_close : bfd_close_all_done) (obfd))
{
status = 1;
- bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
+ bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
}
}
- else
- {
- bfd_error_type obj_error = bfd_get_error ();
- bfd_error_type core_error;
-
- if (bfd_check_format_matches (ibfd, bfd_core, &core_matching))
- {
- /* This probably can't happen.. */
- if (obj_error == bfd_error_file_ambiguously_recognized)
- free (obj_matching);
- goto do_copy;
- }
-
- core_error = bfd_get_error ();
- /* Report the object error in preference to the core error. */
- if (obj_error != core_error)
- bfd_set_error (obj_error);
-
- bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
-
- if (obj_error == bfd_error_file_ambiguously_recognized)
- list_matching_formats (obj_matching);
- if (core_error == bfd_error_file_ambiguously_recognized)
- list_matching_formats (core_matching);
- bfd_close (ibfd);
+ if (!bfd_close (ibfd))
+ {
status = 1;
+ bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
}
}
@@ -4911,9 +4889,7 @@ strip_main (int argc, char *argv[])
char *output_file = NULL;
bool merge_notes_set = false;
-#if BFD_SUPPORTS_PLUGINS
bfd_plugin_set_program_name (argv[0]);
-#endif
while ((c = getopt_long (argc, argv, "I:O:F:K:MN:R:o:sSpdgxXHhVvwDU",
strip_options, (int *) 0)) != EOF)
@@ -5006,11 +4982,9 @@ strip_main (int argc, char *argv[])
keep_section_symbols = true;
break;
case OPTION_PLUGIN: /* --plugin */
-#if BFD_SUPPORTS_PLUGINS
+ if (!bfd_plugin_enabled ())
+ fatal (_("sorry - this program has been built without plugin support\n"));
bfd_plugin_set_plugin (optarg);
-#else
- fatal (_("sorry - this program has been built without plugin support\n"));
-#endif
break;
case 0:
/* We've been given a long option. */
@@ -5056,17 +5030,15 @@ strip_main (int argc, char *argv[])
if (output_target == NULL)
output_target = input_target;
-#if BFD_SUPPORTS_PLUGINS
/* Check if all GCC LTO sections should be removed, assuming all LTO
- sections will be removed with -R .gnu.lto_.*. * Remove .gnu.lto_.*
- sections will also remove .gnu.debuglto_. sections. LLVM IR
- bitcode is stored in .llvm.lto section which will be removed with
- -R .llvm.lto. */
- lto_sections_removed = (!!find_section_list (".gnu.lto_.*", false,
- SECTION_CONTEXT_REMOVE)
- || !!find_section_list (".llvm.lto", false,
- SECTION_CONTEXT_REMOVE));
-#endif
+ sections will be removed with -R .gnu.lto_.*. Remove .gnu.lto_.*
+ sections will also remove .gnu.debuglto_.* sections.
+
+ NB: Must keep .gnu.debuglto_* sections unless all GCC LTO sections
+ will be removed to avoid undefined references to symbols in GCC LTO
+ debug sections. */
+ if (!find_section_list (".gnu.lto_.*", false, SECTION_CONTEXT_REMOVE))
+ find_section_list (".gnu.debuglto_*", true, SECTION_CONTEXT_KEEP);
i = optind;
if (i == argc
diff --git a/binutils/readelf.c b/binutils/readelf.c
index bb81c82..705b776 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -229,6 +229,7 @@ static bool do_dyn_syms = false;
static bool do_lto_syms = false;
static bool do_reloc = false;
static bool do_sections = false;
+static bool do_got_section_contents = false;
static bool do_section_groups = false;
static bool do_section_details = false;
static bool do_segments = false;
@@ -372,6 +373,21 @@ enum versioned_symbol_info
symbol_public
};
+/* Relocation entries */
+
+typedef struct elf_relocation
+{
+ bfd_vma r_offset; /* Location at which to apply the action */
+ bfd_vma r_addend; /* Constant addend used to compute value */
+ const char *r_name; /* Relocation name. */
+ char *r_symbol; /* Relocation symbol. */
+ relocation_type r_type; /* Relocation type. */
+} elf_relocation;
+
+static elf_relocation *all_relocations_root;
+static elf_relocation *all_relocations;
+static size_t all_relocations_count;
+
static int
fseek64 (FILE *stream, int64_t offset, int whence)
{
@@ -1767,9 +1783,36 @@ symcmp (const void *p, const void *q)
return sp->st_value > sq->st_value ? 1 : (sp->st_value < sq->st_value ? -1 : 0);
}
+static void
+update_all_relocations (size_t nentries)
+{
+ size_t sz;
+
+ if (!do_got_section_contents)
+ return;
+
+ if (!all_relocations_root)
+ {
+ sz = nentries * sizeof (elf_relocation);
+ all_relocations_root = (elf_relocation *) xmalloc (sz);
+ all_relocations = all_relocations_root;
+ all_relocations_count = nentries;
+ }
+ else
+ {
+ size_t orig_count = all_relocations_count;
+ sz = (orig_count + nentries) * sizeof (elf_relocation);
+ all_relocations_root = (elf_relocation *)
+ xrealloc (all_relocations_root, sz);
+ all_relocations = all_relocations_root + orig_count;
+ all_relocations_count += nentries;
+ }
+}
+
static uint64_t
count_relr_relocations (Filedata * filedata,
- Elf_Internal_Shdr * section)
+ Elf_Internal_Shdr * section,
+ uint64_t ** relrs_p)
{
uint64_t * relrs;
uint64_t nentries;
@@ -1794,9 +1837,6 @@ count_relr_relocations (Filedata * filedata,
if (nentries == 0)
return 0;
- /* FIXME: This call to get_data duplicates one that follows in
- dump_relr_relocations(). They could be combined into just
- one call. */
relrs = get_data (NULL, filedata, section->sh_offset, 1,
section->sh_size, _("RELR relocation data"));
if (relrs == NULL)
@@ -1826,23 +1866,27 @@ count_relr_relocations (Filedata * filedata,
}
}
- free (relrs);
+ *relrs_p = relrs;
+
return count;
}
+/* If DUMP_RELOC is false, don't display RELR relocations, just collect
+ RELR relocations for displaying GOT section contents later. */
+
static bool
dump_relr_relocations (Filedata * filedata,
- Elf_Internal_Shdr * section,
- Elf_Internal_Sym * symtab,
+ uint64_t relr_size,
+ int relr_entsize,
+ uint64_t relr_offset,
+ uint64_t * relrs,
+ const Elf_Internal_Sym * symtab_p,
uint64_t nsyms,
char * strtab,
- uint64_t strtablen)
+ uint64_t strtablen,
+ bool dump_reloc)
{
- uint64_t * relrs;
uint64_t nentries, i;
- uint64_t relr_size = section->sh_size;
- int relr_entsize = section->sh_entsize;
- uint64_t relr_offset = section->sh_offset;
uint64_t where = 0;
int num_bits_in_entry;
@@ -1861,35 +1905,201 @@ dump_relr_relocations (Filedata * filedata,
num_bits_in_entry = 63;
else
{
- warn (_("Unexpected entsize for RELR section\n"));
+ if (dump_reloc)
+ warn (_("Unexpected entsize for RELR section\n"));
return false;
}
- relrs = get_data (NULL, filedata, relr_offset, 1, relr_size, _("RELR relocation data"));
if (relrs == NULL)
- return false;
+ {
+ relrs = get_data (NULL, filedata, relr_offset, 1, relr_size,
+ _("RELR relocation data"));
+ if (relrs == NULL)
+ return false;
+ }
/* Paranoia. */
if (strtab == NULL)
strtablen = 0;
- if (symtab == NULL)
+ if (symtab_p == NULL)
nsyms = 0;
- if (symtab != NULL)
+ const char *rtype = NULL;
+ if (do_got_section_contents)
+ switch (filedata->file_header.e_machine)
+ {
+ default:
+ abort ();
+
+ case EM_386:
+ case EM_IAMCU:
+ rtype = "R_386_RELATIVE";
+ break;
+
+ case EM_68K:
+ rtype = "R_68K_RELATIVE";
+ break;
+
+ case EM_860:
+ rtype = "R_860_RELATIVE";
+ break;
+
+ case EM_AARCH64:
+ rtype = "R_AARCH64_RELATIVE";
+ break;
+
+ case EM_AMDGPU:
+ rtype = "R_AMDGPU_RELATIVE64";
+ break;
+
+ case EM_ALPHA:
+ rtype = "R_ALPHA_RELATIVE";
+ break;
+
+ case EM_ALTERA_NIOS2:
+ rtype = "R_NIOS2_RELATIVE";
+ break;
+
+ case EM_ARM:
+ rtype = "R_ARM_RELATIVE";
+ break;
+
+ case EM_ARC:
+ case EM_ARC_COMPACT:
+ case EM_ARC_COMPACT2:
+ case EM_ARC_COMPACT3:
+ case EM_ARC_COMPACT3_64:
+ rtype = "R_ARC_RELATIVE";
+ break;
+
+ case EM_CRIS:
+ rtype = "R_CRIS_RELATIVE";
+ break;
+
+ case EM_CSKY:
+ rtype = "R_CKCORE_RELATIVE";
+ break;
+
+ case EM_KVX:
+ rtype = "R_KVX_RELATIVE";
+ break;
+
+ case EM_LATTICEMICO32:
+ rtype = "R_LM32_RELATIVE";
+ break;
+
+ case EM_LOONGARCH:
+ rtype = "R_LARCH_RELATIVE";
+ break;
+
+ case EM_M32R:
+ case EM_CYGNUS_M32R:
+ rtype = "R_M32R_RELATIVE";
+ break;
+
+ case EM_MCORE:
+ rtype = "R_MCORE_RELATIVE";
+ break;
+
+ case EM_METAG:
+ rtype = "R_METAG_RELATIVE";
+ break;
+
+ case EM_MN10300:
+ case EM_CYGNUS_MN10300:
+ rtype = "R_MN10300_RELATIVE";
+ break;
+
+ case EM_NDS32:
+ rtype = "R_NDS32_RELATIVE";
+ break;
+
+ case EM_OR1K:
+ rtype = "R_OR1K_RELATIVE";
+ break;
+
+ case EM_PPC:
+ rtype = "R_PPC_RELATIVE";
+ break;
+
+ case EM_PPC64:
+ rtype = "R_PPC64_RELATIVE";
+ break;
+
+ case EM_RISCV:
+ rtype = "R_RISCV_RELATIVE";
+ break;
+
+ case EM_S370:
+ rtype = "R_I370_RELATIVE";
+ break;
+
+ case EM_S390_OLD:
+ case EM_S390:
+ rtype = "R_390_RELATIVE";
+ break;
+
+ case EM_SH:
+ rtype = "R_SH_RELATIVE";
+ break;
+
+ case EM_OLD_SPARCV9:
+ case EM_SPARC32PLUS:
+ case EM_SPARCV9:
+ case EM_SPARC:
+ rtype = "R_SPARC_RELATIVE";
+ break;
+
+ case EM_TILEGX:
+ rtype = "R_TILEGX_RELATIVE";
+ break;
+
+ case EM_TILEPRO:
+ rtype = "R_TILEPRO_RELATIVE";
+ break;
+
+ case EM_V850:
+ case EM_CYGNUS_V850:
+ rtype = "R_V850_RELATIVE";
+ break;
+
+ case EM_VAX:
+ rtype = "R_VAX_RELATIVE";
+ break;
+
+ case EM_X86_64:
+ case EM_L1OM:
+ case EM_K1OM:
+ rtype = "R_X86_64_RELATIVE";
+ break;
+
+ case EM_XTENSA_OLD:
+ case EM_XTENSA:
+ rtype = "R_XTENSA_RELATIVE";
+ break;
+ }
+
+ Elf_Internal_Sym *symtab = NULL;
+ if (symtab_p != NULL)
{
/* Symbol tables are not sorted on address, but we want a quick lookup
for the symbol associated with each address computed below, so sort
- the table then filter out unwanted entries. FIXME: This assumes that
- the symbol table will not be used later on for some other purpose. */
+ the table then filter out unwanted entries. */
+ size_t sz = nsyms * sizeof (*symtab);
+ symtab = xmemdup (symtab_p, sz, sz);
qsort (symtab, nsyms, sizeof (Elf_Internal_Sym), symcmp);
nsyms = filter_display_syms (filedata, symtab, nsyms, strtab, strtablen);
}
- if (relr_entsize == sizeof (Elf32_External_Relr))
- printf (_ ("Index: Entry Address Symbolic Address\n"));
- else
- printf (_ ("Index: Entry Address Symbolic Address\n"));
+ if (dump_reloc)
+ {
+ if (relr_entsize == sizeof (Elf32_External_Relr))
+ printf (_ ("Index: Entry Address Symbolic Address\n"));
+ else
+ printf (_ ("Index: Entry Address Symbolic Address\n"));
+ }
+ uint64_t r = 0;
for (i = 0; i < nentries; i++)
{
uint64_t entry;
@@ -1899,16 +2109,34 @@ dump_relr_relocations (Filedata * filedata,
else
entry = BYTE_GET (((Elf64_External_Relr *)relrs)[i].r_data);
- /* We assume that there will never be more than 9999 entries. */
- printf (_("%04u: "), (unsigned int) i);
- print_vma (entry, ZERO_HEX);
- printf (" ");
+ if (dump_reloc)
+ {
+ /* We assume that there will never be more than 9999
+ entries. */
+ printf (_("%04u: "), (unsigned int) i);
+ print_vma (entry, ZERO_HEX);
+ printf (" ");
+ }
if ((entry & 1) == 0)
{
where = entry;
- print_relr_addr_and_sym (filedata, symtab, nsyms, strtab, where);
- printf ("\n");
+ if (dump_reloc)
+ {
+ print_relr_addr_and_sym (filedata, symtab, nsyms, strtab,
+ where);
+ printf ("\n");
+ }
+
+ if (do_got_section_contents)
+ {
+ all_relocations[r].r_offset = where;
+ all_relocations[r].r_name = rtype;
+ all_relocations[r].r_symbol = NULL;
+ all_relocations[r].r_type = reltype_relr;
+ r++;
+ }
+
where += relr_entsize;
}
else
@@ -1921,7 +2149,7 @@ dump_relr_relocations (Filedata * filedata,
/* This can actually happen when the linker is allowed to shrink
RELR sections. For more details see: https://reviews.llvm.org/D67164. */
continue;
- else if (i == 0)
+ else if (dump_reloc && i == 0)
warn (_("Unusual RELR bitmap - no previous entry to set the base address\n"));
for (j = 0; entry >>= 1; j++)
@@ -1929,29 +2157,47 @@ dump_relr_relocations (Filedata * filedata,
{
uint64_t addr = where + (j * relr_entsize);
- if (first)
+ if (dump_reloc)
{
- print_relr_addr_and_sym (filedata, symtab, nsyms, strtab, addr);
- first = false;
+ if (first)
+ {
+ print_relr_addr_and_sym (filedata, symtab, nsyms,
+ strtab, addr);
+ first = false;
+ }
+ else
+ {
+ printf (_("\n%*s "),
+ relr_entsize == 4 ? 15 : 23, " ");
+ print_relr_addr_and_sym (filedata, symtab, nsyms,
+ strtab, addr);
+ }
}
- else
+
+ if (do_got_section_contents)
{
- printf (_("\n%*s "), relr_entsize == 4 ? 15 : 23, " ");
- print_relr_addr_and_sym (filedata, symtab, nsyms, strtab, addr);
+ all_relocations[r].r_offset = addr;
+ all_relocations[r].r_name = rtype;
+ all_relocations[r].r_symbol = NULL;
+ all_relocations[r].r_type = reltype_relr;
+ r++;
}
}
- printf ("\n");
+ if (dump_reloc)
+ printf ("\n");
where += num_bits_in_entry * relr_entsize;
}
}
+ free (symtab);
free (relrs);
return true;
}
/* Display the contents of the relocation data found at the specified
- offset. */
+ offset. If DUMP_RELOC is false, don't display relocations, just
+ collect relocations for displaying GOT section contents later. */
static bool
dump_relocations (Filedata * filedata,
@@ -1962,7 +2208,8 @@ dump_relocations (Filedata * filedata,
char * strtab,
uint64_t strtablen,
relocation_type rel_type,
- bool is_dynsym)
+ bool is_dynsym,
+ bool dump_reloc)
{
size_t i;
Elf_Internal_Rela * rels;
@@ -1987,26 +2234,26 @@ dump_relocations (Filedata * filedata,
return false;
}
- if (is_32bit_elf)
+ if (dump_reloc)
{
- if (rel_type == reltype_rela)
- {
- if (do_wide)
- printf (_(" Offset Info Type Sym. Value Symbol's Name + Addend\n"));
- else
- printf (_(" Offset Info Type Sym.Value Sym. Name + Addend\n"));
- }
- else
+ if (is_32bit_elf)
{
- if (do_wide)
- printf (_(" Offset Info Type Sym. Value Symbol's Name\n"));
+ if (rel_type == reltype_rela)
+ {
+ if (do_wide)
+ printf (_(" Offset Info Type Sym. Value Symbol's Name + Addend\n"));
+ else
+ printf (_(" Offset Info Type Sym.Value Sym. Name + Addend\n"));
+ }
else
- printf (_(" Offset Info Type Sym.Value Sym. Name\n"));
+ {
+ if (do_wide)
+ printf (_(" Offset Info Type Sym. Value Symbol's Name\n"));
+ else
+ printf (_(" Offset Info Type Sym.Value Sym. Name\n"));
+ }
}
- }
- else
- {
- if (rel_type == reltype_rela)
+ else if (rel_type == reltype_rela)
{
if (do_wide)
printf (_(" Offset Info Type Symbol's Value Symbol's Name + Addend\n"));
@@ -2036,18 +2283,16 @@ dump_relocations (Filedata * filedata,
type = get_reloc_type (filedata, inf);
symtab_index = get_reloc_symindex (inf);
- if (is_32bit_elf)
- {
- printf ("%8.8lx %8.8lx ",
- (unsigned long) offset & 0xffffffff,
- (unsigned long) inf & 0xffffffff);
- }
- else
+ if (dump_reloc)
{
- printf (do_wide
- ? "%16.16" PRIx64 " %16.16" PRIx64 " "
- : "%12.12" PRIx64 " %12.12" PRIx64 " ",
- offset, inf);
+ if (is_32bit_elf)
+ printf ("%8.8" PRIx32 " %8.8" PRIx32 " ",
+ (uint32_t) offset, (uint32_t) inf);
+ else
+ printf (do_wide
+ ? "%16.16" PRIx64 " %16.16" PRIx64 " "
+ : "%12.12" PRIx64 " %12.12" PRIx64 " ",
+ offset, inf);
}
switch (filedata->file_header.e_machine)
@@ -2397,10 +2642,15 @@ dump_relocations (Filedata * filedata,
break;
}
- if (rtype == NULL)
- printf (_("unrecognized: %-7lx"), (unsigned long) type & 0xffffffff);
- else
- printf (do_wide ? "%-22s" : "%-17.17s", rtype);
+ char *symbol_name = NULL;
+ if (dump_reloc)
+ {
+ if (rtype == NULL)
+ printf (_("unrecognized: %-7lx"),
+ (unsigned long) type & 0xffffffff);
+ else
+ printf (do_wide ? "%-22s" : "%-17.17s", rtype);
+ }
if (filedata->file_header.e_machine == EM_ALPHA
&& rtype != NULL
@@ -2419,23 +2669,29 @@ dump_relocations (Filedata * filedata,
default: rtype = NULL;
}
- if (rtype)
- printf (" (%s)", rtype);
- else
+ if (dump_reloc)
{
- putchar (' ');
- printf (_("<unknown addend: %" PRIx64 ">"),
- rels[i].r_addend);
- res = false;
+ if (rtype)
+ printf (" (%s)", rtype);
+ else
+ {
+ putchar (' ');
+ printf (_("<unknown addend: %" PRIx64 ">"),
+ rels[i].r_addend);
+ res = false;
+ }
}
}
else if (symtab_index)
{
if (symtab == NULL || symtab_index >= nsyms)
{
- error (_(" bad symbol index: %08lx in reloc\n"),
- (unsigned long) symtab_index);
- res = false;
+ if (dump_reloc)
+ {
+ error (_(" bad symbol index: %08lx in reloc\n"),
+ (unsigned long) symtab_index);
+ res = false;
+ }
}
else
{
@@ -2454,7 +2710,8 @@ dump_relocations (Filedata * filedata,
&sym_info,
&vna_other);
- printf (" ");
+ if (dump_reloc)
+ printf (" ");
if (ELF_ST_TYPE (psym->st_info) == STT_GNU_IFUNC)
{
@@ -2479,13 +2736,30 @@ dump_relocations (Filedata * filedata,
else
name = strtab + psym->st_name;
- len = print_symbol_name (width, name);
- if (version_string)
- printf (sym_info == symbol_public ? "@@%s" : "@%s",
- version_string);
- printf ("()%-*s", len <= width ? (width + 1) - len : 1, " ");
+ if (do_got_section_contents)
+ {
+ if (version_string)
+ symbol_name = concat (name,
+ sym_info == symbol_public
+ ? "@@" : "@",
+ version_string, NULL);
+ else
+ symbol_name = xstrdup (name);
+ }
+
+ if (dump_reloc)
+ {
+ len = print_symbol_name (width, name);
+ if (version_string)
+ printf (sym_info == symbol_public
+ ? "@@%s" : "@%s",
+ version_string);
+ printf ("()%-*s",
+ len <= width ? (width + 1) - len : 1,
+ " ");
+ }
}
- else
+ else if (dump_reloc)
{
print_vma (psym->st_value, LONG_HEX);
@@ -2500,25 +2774,49 @@ dump_relocations (Filedata * filedata,
sec_name = printable_section_name_from_index
(filedata, psym->st_shndx, NULL);
- print_symbol_name (22, sec_name);
+ if (do_got_section_contents)
+ symbol_name = xstrdup (sec_name);
+ if (dump_reloc)
+ print_symbol_name (22, sec_name);
}
else if (strtab == NULL)
- printf (_("<string table index: %3ld>"), psym->st_name);
+ {
+ if (dump_reloc)
+ printf (_("<string table index: %3ld>"),
+ psym->st_name);
+ }
else if (psym->st_name >= strtablen)
{
- error (_("<corrupt string table index: %3ld>\n"),
- psym->st_name);
- res = false;
+ if (dump_reloc)
+ {
+ error (_("<corrupt string table index: %3ld>\n"),
+ psym->st_name);
+ res = false;
+ }
}
else
{
- print_symbol_name (22, strtab + psym->st_name);
- if (version_string)
- printf (sym_info == symbol_public ? "@@%s" : "@%s",
- version_string);
+ if (dump_reloc)
+ {
+ print_symbol_name (22, strtab + psym->st_name);
+ if (version_string)
+ printf (sym_info == symbol_public
+ ? "@@%s" : "@%s",
+ version_string);
+ }
+ if (do_got_section_contents)
+ {
+ if (version_string)
+ symbol_name = concat (strtab + psym->st_name,
+ sym_info == symbol_public
+ ? "@@" : "@",
+ version_string, NULL);
+ else
+ symbol_name = xstrdup (strtab + psym->st_name);
+ }
}
- if (rel_type == reltype_rela)
+ if (dump_reloc && rel_type == reltype_rela)
{
uint64_t off = rels[i].r_addend;
@@ -2529,7 +2827,7 @@ dump_relocations (Filedata * filedata,
}
}
}
- else if (rel_type == reltype_rela)
+ else if (dump_reloc && rel_type == reltype_rela)
{
uint64_t off = rels[i].r_addend;
@@ -2540,37 +2838,50 @@ dump_relocations (Filedata * filedata,
printf ("%" PRIx64, off);
}
- if (filedata->file_header.e_machine == EM_SPARCV9
- && rtype != NULL
- && streq (rtype, "R_SPARC_OLO10"))
- printf (" + %" PRIx64, ELF64_R_TYPE_DATA (inf));
-
- putchar ('\n');
+ if (do_got_section_contents)
+ {
+ all_relocations[i].r_offset = offset;
+ all_relocations[i].r_name = rtype;
+ all_relocations[i].r_symbol = symbol_name;
+ all_relocations[i].r_addend = rels[i].r_addend;
+ all_relocations[i].r_type = rel_type;
+ }
- if (! is_32bit_elf && filedata->file_header.e_machine == EM_MIPS)
+ if (dump_reloc)
{
- uint64_t type2 = ELF64_MIPS_R_TYPE2 (inf);
- uint64_t type3 = ELF64_MIPS_R_TYPE3 (inf);
- const char * rtype2 = elf_mips_reloc_type (type2);
- const char * rtype3 = elf_mips_reloc_type (type3);
+ if (filedata->file_header.e_machine == EM_SPARCV9
+ && rtype != NULL
+ && streq (rtype, "R_SPARC_OLO10"))
+ printf (" + %" PRIx64, ELF64_R_TYPE_DATA (inf));
- printf (" Type2: ");
+ putchar ('\n');
- if (rtype2 == NULL)
- printf (_("unrecognized: %-7lx"),
- (unsigned long) type2 & 0xffffffff);
- else
- printf ("%-17.17s", rtype2);
+ if (! is_32bit_elf
+ && filedata->file_header.e_machine == EM_MIPS)
+ {
+ uint64_t type2 = ELF64_MIPS_R_TYPE2 (inf);
+ uint64_t type3 = ELF64_MIPS_R_TYPE3 (inf);
+ const char * rtype2 = elf_mips_reloc_type (type2);
+ const char * rtype3 = elf_mips_reloc_type (type3);
- printf ("\n Type3: ");
+ printf (" Type2: ");
- if (rtype3 == NULL)
- printf (_("unrecognized: %-7lx"),
- (unsigned long) type3 & 0xffffffff);
- else
- printf ("%-17.17s", rtype3);
+ if (rtype2 == NULL)
+ printf (_("unrecognized: %-7lx"),
+ (unsigned long) type2 & 0xffffffff);
+ else
+ printf ("%-17.17s", rtype2);
- putchar ('\n');
+ printf ("\n Type3: ");
+
+ if (rtype3 == NULL)
+ printf (_("unrecognized: %-7lx"),
+ (unsigned long) type3 & 0xffffffff);
+ else
+ printf ("%-17.17s", rtype3);
+
+ putchar ('\n');
+ }
}
}
@@ -6098,7 +6409,8 @@ enum long_option_values
OPTION_NO_RECURSE_LIMIT,
OPTION_NO_DEMANGLING,
OPTION_NO_EXTRA_SYM_INFO,
- OPTION_SYM_BASE
+ OPTION_SYM_BASE,
+ OPTION_GOT_CONTENTS
};
static struct option options[] =
@@ -6161,6 +6473,7 @@ static struct option options[] =
#endif
{"sframe", optional_argument, 0, OPTION_SFRAME_DUMP},
{"sym-base", optional_argument, 0, OPTION_SYM_BASE},
+ {"got-contents", no_argument, 0, OPTION_GOT_CONTENTS},
{0, no_argument, 0, 0}
};
@@ -6172,7 +6485,7 @@ usage (FILE * stream)
fprintf (stream, _(" Display information about the contents of ELF format files\n"));
fprintf (stream, _(" Options are:\n"));
fprintf (stream, _("\
- -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"));
+ -a --all Equivalent to: -h -l -S -s -r -d -V -A -I --got-contents\n"));
fprintf (stream, _("\
-h --file-header Display the ELF file header\n"));
fprintf (stream, _("\
@@ -6318,6 +6631,8 @@ usage (FILE * stream)
fprintf (stream, _("\
-I --histogram Display histogram of bucket list lengths\n"));
fprintf (stream, _("\
+ --got-contents Display GOT section contents\n"));
+ fprintf (stream, _("\
-W --wide Allow output width to exceed 80 characters\n"));
fprintf (stream, _("\
-T --silent-truncation If a symbol name is truncated, do not add [...] suffix\n"));
@@ -6442,6 +6757,7 @@ parse_args (struct dump_data *dumpdata, int argc, char ** argv)
do_histogram = true;
do_arch = true;
do_notes = true;
+ do_got_section_contents = true;
break;
case 'g':
@@ -6701,6 +7017,11 @@ parse_args (struct dump_data *dumpdata, int argc, char ** argv)
}
break;
+ case OPTION_GOT_CONTENTS:
+ do_got_section_contents = true;
+ do_dump = true;
+ break;
+
default:
/* xgettext:c-format */
error (_("Invalid option '-%c'\n"), c);
@@ -9438,7 +9759,8 @@ rel_type_from_sh_type (unsigned int sh_type)
static bool
display_relocations (Elf_Internal_Shdr * section,
- Filedata * filedata)
+ Filedata * filedata,
+ bool dump_reloc)
{
relocation_type rel_type = rel_type_from_sh_type (section->sh_type);
@@ -9450,19 +9772,24 @@ display_relocations (Elf_Internal_Shdr * section,
if (rel_size == 0)
return false;
- if (filedata->is_separate)
- printf (_("\nIn linked file '%s' relocation section "),
- printable_string (filedata->file_name, 0));
- else
- printf (_("\nRelocation section "));
+ if (dump_reloc)
+ {
+ if (filedata->is_separate)
+ printf (_("\nIn linked file '%s' relocation section "),
+ printable_string (filedata->file_name, 0));
+ else
+ printf (_("\nRelocation section "));
- if (filedata->string_table == NULL)
- printf ("%d", section->sh_name);
- else
- printf ("'%s'", printable_section_name (filedata, section));
+ if (filedata->string_table == NULL)
+ printf ("%d", section->sh_name);
+ else
+ printf ("'%s'", printable_section_name (filedata, section));
+ }
- uint64_t num_rela = rel_size / section->sh_entsize;
uint64_t rel_offset = section->sh_offset;
+ uint64_t num_rela = rel_size / section->sh_entsize;
+ uint64_t num_reloc;
+ uint64_t *relrs = NULL;
if (rel_type == reltype_relr)
{
@@ -9471,26 +9798,33 @@ display_relocations (Elf_Internal_Shdr * section,
the number of words in the compressed RELR format. So also provide
the number of locations affected. */
- uint64_t num_reloc = count_relr_relocations (filedata, section);
+ num_reloc = count_relr_relocations (filedata, section, &relrs);
- printf (_(" at offset %#" PRIx64), rel_offset);
- printf (ngettext (" contains %" PRIu64 " entry which relocates",
- " contains %" PRIu64 " entries which relocate",
- num_rela), num_rela);
- printf (ngettext (" %" PRIu64 " location:\n",
- " %" PRIu64 " locations:\n",
- num_reloc), num_reloc);
+ if (dump_reloc)
+ {
+ printf (_(" at offset %#" PRIx64), rel_offset);
+ printf (ngettext (" contains %" PRIu64 " entry which relocates",
+ " contains %" PRIu64 " entries which relocate",
+ num_rela), num_rela);
+ printf (ngettext (" %" PRIu64 " location:\n",
+ " %" PRIu64 " locations:\n",
+ num_reloc), num_reloc);
+ }
}
else
{
- printf (ngettext (" at offset %#" PRIx64
- " contains %" PRIu64 " entry:\n",
- " at offset %#" PRIx64
- " contains %" PRIu64 " entries:\n",
- num_rela),
- rel_offset, num_rela);
+ num_reloc = num_rela;
+ if (dump_reloc)
+ printf (ngettext (" at offset %#" PRIx64
+ " contains %" PRIu64 " entry:\n",
+ " at offset %#" PRIx64
+ " contains %" PRIu64 " entries:\n",
+ num_rela),
+ rel_offset, num_rela);
}
+ update_all_relocations (num_reloc);
+
Elf_Internal_Shdr * symsec;
Elf_Internal_Sym * symtab = NULL;
uint64_t nsyms = 0;
@@ -9522,12 +9856,23 @@ display_relocations (Elf_Internal_Shdr * section,
bool res;
if (rel_type == reltype_relr)
- res = dump_relr_relocations (filedata, section, symtab, nsyms, strtab, strtablen);
+ {
+ res = dump_relr_relocations (filedata, section->sh_size,
+ section->sh_entsize,
+ section->sh_offset,
+ relrs,
+ symtab, nsyms, strtab, strtablen,
+ dump_reloc);
+ /* RELRS has been freed by dump_relr_relocations. */
+ relrs = NULL;
+ }
else
res = dump_relocations (filedata, rel_offset, rel_size,
symtab, nsyms, strtab, strtablen,
rel_type,
- symsec == NULL ? false : symsec->sh_type == SHT_DYNSYM);
+ symsec == NULL
+ ? false : symsec->sh_type == SHT_DYNSYM,
+ dump_reloc);
free (strtab);
free (symtab);
@@ -9541,14 +9886,16 @@ process_relocs (Filedata * filedata)
{
uint64_t rel_size;
uint64_t rel_offset;
+ unsigned int rel_entsz;
- if (!do_reloc)
+ if (!do_reloc && !do_got_section_contents)
return true;
if (do_using_dynamic)
{
relocation_type rel_type;
const char * name;
+ const char * entsz_name;
bool has_dynamic_reloc;
unsigned int i;
@@ -9556,57 +9903,104 @@ process_relocs (Filedata * filedata)
for (i = 0; i < ARRAY_SIZE (dynamic_relocations); i++)
{
+ rel_size = filedata->dynamic_info[dynamic_relocations [i].size];
+
+ if (!rel_size)
+ continue;
+
+ has_dynamic_reloc = true;
+
rel_type = dynamic_relocations [i].rel_type;
name = dynamic_relocations [i].name;
- rel_size = filedata->dynamic_info[dynamic_relocations [i].size];
rel_offset = filedata->dynamic_info[dynamic_relocations [i].reloc];
- if (rel_size)
- has_dynamic_reloc = true;
-
if (rel_type == reltype_unknown)
{
- if (dynamic_relocations [i].reloc == DT_JMPREL)
- switch (filedata->dynamic_info[DT_PLTREL])
- {
- case DT_REL:
- rel_type = reltype_rel;
- break;
- case DT_RELA:
- rel_type = reltype_rela;
- break;
- }
+ if (dynamic_relocations [i].reloc != DT_JMPREL)
+ abort ();
+ switch (filedata->dynamic_info[DT_PLTREL])
+ {
+ case DT_REL:
+ rel_type = reltype_rel;
+ break;
+ case DT_RELA:
+ rel_type = reltype_rela;
+ break;
+ }
+ }
+
+ switch (rel_type)
+ {
+ default:
+ abort ();
+ case reltype_rel:
+ rel_entsz = filedata->dynamic_info[DT_RELENT];
+ entsz_name = "DT_RELENT";
+ break;
+ case reltype_rela:
+ rel_entsz = filedata->dynamic_info[DT_RELAENT];
+ entsz_name = "DT_RELAENT";
+ break;
+ case reltype_relr:
+ rel_entsz = filedata->dynamic_info[DT_RELRENT];
+ entsz_name = "DT_RELRENT";
+ break;
}
- if (rel_size)
+ if (do_reloc)
{
if (filedata->is_separate)
printf
- (_("\nIn linked file '%s' section '%s' at offset %#" PRIx64
- " contains %" PRId64 " bytes:\n"),
+ (_("\nIn linked file '%s' section '%s' at offset"
+ "%#" PRIx64 " contains %" PRId64 " bytes:\n"),
filedata->file_name, name, rel_offset, rel_size);
else
printf
(_("\n'%s' relocation section at offset %#" PRIx64
" contains %" PRId64 " bytes:\n"),
name, rel_offset, rel_size);
+ }
+
+ if (rel_type == reltype_relr)
+ dump_relr_relocations (filedata,
+ filedata->dynamic_info[DT_RELRSZ],
+ filedata->dynamic_info[DT_RELRENT],
+ filedata->dynamic_info[DT_RELR],
+ NULL,
+ filedata->dynamic_symbols,
+ filedata->num_dynamic_syms,
+ filedata->dynamic_strings,
+ filedata->dynamic_strings_length,
+ do_reloc);
+ else
+ {
+ if (rel_entsz == 0)
+ {
+ printf (_("<missing or corrupt dynamic tag: %s>\n"),
+ entsz_name);
+ continue;
+ }
+
+ update_all_relocations (rel_size / rel_entsz);
dump_relocations (filedata,
- offset_from_vma (filedata, rel_offset, rel_size),
+ offset_from_vma (filedata, rel_offset,
+ rel_size),
rel_size,
filedata->dynamic_symbols,
filedata->num_dynamic_syms,
filedata->dynamic_strings,
filedata->dynamic_strings_length,
- rel_type, true /* is_dynamic */);
+ rel_type, true /* is_dynamic */,
+ do_reloc);
}
}
- if (is_ia64_vms (filedata))
- if (process_ia64_vms_dynamic_relocs (filedata))
- has_dynamic_reloc = true;
+ if (is_ia64_vms (filedata)
+ && process_ia64_vms_dynamic_relocs (filedata))
+ has_dynamic_reloc = true;
- if (! has_dynamic_reloc)
+ if (do_reloc && ! has_dynamic_reloc)
{
if (filedata->is_separate)
printf (_("\nThere are no dynamic relocations in linked file '%s'.\n"),
@@ -9625,11 +10019,11 @@ process_relocs (Filedata * filedata)
i < filedata->file_header.e_shnum;
i++, section++)
{
- if (display_relocations (section, filedata))
+ if (display_relocations (section, filedata, do_reloc))
found = true;
}
- if (! found)
+ if (do_reloc && ! found)
{
/* Users sometimes forget the -D option, so try to be helpful. */
for (i = 0; i < ARRAY_SIZE (dynamic_relocations); i++)
@@ -17613,7 +18007,7 @@ process_section_contents (Filedata * filedata)
case SHT_RELA:
case SHT_REL:
case SHT_RELR:
- res &= display_relocations (section, filedata);
+ res &= display_relocations (section, filedata, true);
break;
case SHT_NOTE:
@@ -19630,8 +20024,11 @@ get_mips_reg_size (int reg_size)
: -1;
}
+/* If DUMP_GOT is true, display only the GOT related contents.
+ Otherwise, display all MIPS specific information. */
+
static bool
-process_mips_specific (Filedata * filedata)
+process_mips_specific (Filedata * filedata, bool dump_got)
{
Elf_Internal_Dyn * entry;
Elf_Internal_Shdr *sect = NULL;
@@ -19650,60 +20047,63 @@ process_mips_specific (Filedata * filedata)
uint64_t symtabno = 0;
bool res = true;
- if (! process_attributes (filedata, NULL, SHT_GNU_ATTRIBUTES, NULL,
- display_mips_gnu_attribute))
- res = false;
-
- sect = find_section (filedata, ".MIPS.abiflags");
-
- if (sect != NULL)
+ if (!dump_got)
{
- Elf_External_ABIFlags_v0 *abiflags_ext;
- Elf_Internal_ABIFlags_v0 abiflags_in;
+ if (! process_attributes (filedata, NULL, SHT_GNU_ATTRIBUTES, NULL,
+ display_mips_gnu_attribute))
+ res = false;
- if (sizeof (Elf_External_ABIFlags_v0) != sect->sh_size)
- {
- error (_("Corrupt MIPS ABI Flags section.\n"));
- res = false;
- }
- else
+ sect = find_section (filedata, ".MIPS.abiflags");
+
+ if (sect != NULL)
{
- abiflags_ext = get_data (NULL, filedata, sect->sh_offset, 1,
- sect->sh_size, _("MIPS ABI Flags section"));
- if (abiflags_ext)
+ Elf_External_ABIFlags_v0 *abiflags_ext;
+ Elf_Internal_ABIFlags_v0 abiflags_in;
+
+ if (sizeof (Elf_External_ABIFlags_v0) != sect->sh_size)
{
- abiflags_in.version = BYTE_GET (abiflags_ext->version);
- abiflags_in.isa_level = BYTE_GET (abiflags_ext->isa_level);
- abiflags_in.isa_rev = BYTE_GET (abiflags_ext->isa_rev);
- abiflags_in.gpr_size = BYTE_GET (abiflags_ext->gpr_size);
- abiflags_in.cpr1_size = BYTE_GET (abiflags_ext->cpr1_size);
- abiflags_in.cpr2_size = BYTE_GET (abiflags_ext->cpr2_size);
- abiflags_in.fp_abi = BYTE_GET (abiflags_ext->fp_abi);
- abiflags_in.isa_ext = BYTE_GET (abiflags_ext->isa_ext);
- abiflags_in.ases = BYTE_GET (abiflags_ext->ases);
- abiflags_in.flags1 = BYTE_GET (abiflags_ext->flags1);
- abiflags_in.flags2 = BYTE_GET (abiflags_ext->flags2);
-
- printf ("\nMIPS ABI Flags Version: %d\n", abiflags_in.version);
- printf ("\nISA: MIPS%d", abiflags_in.isa_level);
- if (abiflags_in.isa_rev > 1)
- printf ("r%d", abiflags_in.isa_rev);
- printf ("\nGPR size: %d",
- get_mips_reg_size (abiflags_in.gpr_size));
- printf ("\nCPR1 size: %d",
- get_mips_reg_size (abiflags_in.cpr1_size));
- printf ("\nCPR2 size: %d",
- get_mips_reg_size (abiflags_in.cpr2_size));
- fputs ("\nFP ABI: ", stdout);
- print_mips_fp_abi_value (abiflags_in.fp_abi);
- fputs ("ISA Extension: ", stdout);
- print_mips_isa_ext (abiflags_in.isa_ext);
- fputs ("\nASEs:", stdout);
- print_mips_ases (abiflags_in.ases);
- printf ("\nFLAGS 1: %8.8lx", abiflags_in.flags1);
- printf ("\nFLAGS 2: %8.8lx", abiflags_in.flags2);
- fputc ('\n', stdout);
- free (abiflags_ext);
+ error (_("Corrupt MIPS ABI Flags section.\n"));
+ res = false;
+ }
+ else
+ {
+ abiflags_ext = get_data (NULL, filedata, sect->sh_offset, 1,
+ sect->sh_size, _("MIPS ABI Flags section"));
+ if (abiflags_ext)
+ {
+ abiflags_in.version = BYTE_GET (abiflags_ext->version);
+ abiflags_in.isa_level = BYTE_GET (abiflags_ext->isa_level);
+ abiflags_in.isa_rev = BYTE_GET (abiflags_ext->isa_rev);
+ abiflags_in.gpr_size = BYTE_GET (abiflags_ext->gpr_size);
+ abiflags_in.cpr1_size = BYTE_GET (abiflags_ext->cpr1_size);
+ abiflags_in.cpr2_size = BYTE_GET (abiflags_ext->cpr2_size);
+ abiflags_in.fp_abi = BYTE_GET (abiflags_ext->fp_abi);
+ abiflags_in.isa_ext = BYTE_GET (abiflags_ext->isa_ext);
+ abiflags_in.ases = BYTE_GET (abiflags_ext->ases);
+ abiflags_in.flags1 = BYTE_GET (abiflags_ext->flags1);
+ abiflags_in.flags2 = BYTE_GET (abiflags_ext->flags2);
+
+ printf ("\nMIPS ABI Flags Version: %d\n", abiflags_in.version);
+ printf ("\nISA: MIPS%d", abiflags_in.isa_level);
+ if (abiflags_in.isa_rev > 1)
+ printf ("r%d", abiflags_in.isa_rev);
+ printf ("\nGPR size: %d",
+ get_mips_reg_size (abiflags_in.gpr_size));
+ printf ("\nCPR1 size: %d",
+ get_mips_reg_size (abiflags_in.cpr1_size));
+ printf ("\nCPR2 size: %d",
+ get_mips_reg_size (abiflags_in.cpr2_size));
+ fputs ("\nFP ABI: ", stdout);
+ print_mips_fp_abi_value (abiflags_in.fp_abi);
+ fputs ("ISA Extension: ", stdout);
+ print_mips_isa_ext (abiflags_in.isa_ext);
+ fputs ("\nASEs:", stdout);
+ print_mips_ases (abiflags_in.ases);
+ printf ("\nFLAGS 1: %8.8lx", abiflags_in.flags1);
+ printf ("\nFLAGS 2: %8.8lx", abiflags_in.flags2);
+ fputc ('\n', stdout);
+ free (abiflags_ext);
+ }
}
}
}
@@ -19851,7 +20251,7 @@ process_mips_specific (Filedata * filedata)
break;
}
- if (liblist_offset != 0 && liblistno != 0 && do_dynamic)
+ if (!dump_got && liblist_offset != 0 && liblistno != 0 && do_dynamic)
{
Elf32_External_Lib * elib;
size_t cnt;
@@ -19936,7 +20336,7 @@ process_mips_specific (Filedata * filedata)
res = false;
}
- if (options_offset != 0)
+ if (!dump_got && options_offset != 0)
{
Elf_External_Options * eopt;
size_t offset;
@@ -20185,7 +20585,7 @@ process_mips_specific (Filedata * filedata)
res = false;
}
- if (conflicts_offset != 0 && conflictsno != 0)
+ if (!dump_got && conflicts_offset != 0 && conflictsno != 0)
{
Elf32_Conflict * iconf;
size_t cnt;
@@ -20544,6 +20944,229 @@ process_nds32_specific (Filedata * filedata)
return true;
}
+static int
+elf_relocation_cmp (const void *p, const void *q)
+{
+ const elf_relocation *rp = (const elf_relocation *) p;
+ const elf_relocation *rq = (const elf_relocation *) q;
+
+ return (rp->r_offset > rq->r_offset
+ ? 1
+ : (rp->r_offset < rq->r_offset ? -1 : 0));
+}
+
+static void
+display_elf_relocation_at (uint64_t offset, uint64_t g)
+{
+ bool matched = false;
+
+ for (size_t i = 0; i < all_relocations_count; i++)
+ if (all_relocations_root[i].r_offset == offset)
+ {
+ if (do_wide)
+ printf (" %-22s", all_relocations_root[i].r_name);
+ else
+ printf (" %-17.17s", all_relocations_root[i].r_name);
+
+ uint64_t off;
+ switch (all_relocations_root[i].r_type)
+ {
+ default:
+ abort ();
+ case reltype_rel:
+ case reltype_relr:
+ off = g;
+ break;
+ case reltype_rela:
+ off = all_relocations_root[i].r_addend;
+ break;
+ }
+
+ if (all_relocations_root[i].r_symbol)
+ {
+ printf (" %s", all_relocations_root[i].r_symbol);
+ if ((int64_t) off < 0)
+ printf (" - %" PRIx64, -off);
+ else
+ printf (" + %" PRIx64, off);
+ }
+ else
+ {
+ if ((int64_t) off < 0)
+ printf (" -%" PRIx64, -off);
+ else
+ printf (" %" PRIx64, off);
+ }
+
+ matched = true;
+ break;
+ }
+ else if (all_relocations_root[i].r_offset > offset)
+ break;
+
+ if (!matched)
+ {
+ if (do_wide)
+ printf ("%*c", 24, ' ');
+ else
+ printf ("%*c", 19, ' ');
+ printf ("%" PRIx64, g);
+ }
+}
+
+static bool
+process_got_section_contents (Filedata * filedata)
+{
+ Elf_Internal_Shdr * section;
+ unsigned int i;
+ uint64_t entries;
+ unsigned char *data;
+ bool res = true;
+ bool found = false;
+
+ if (!do_got_section_contents)
+ return res;
+
+ switch (filedata->file_header.e_type)
+ {
+ case ET_DYN:
+ case ET_EXEC:
+ break;
+ default:
+ goto out;
+ }
+
+ switch (filedata->file_header.e_machine)
+ {
+ case EM_MIPS:
+ case EM_MIPS_RS3_LE:
+ /* process_mips_specific also displays GOT related contents. */
+ if (!do_arch)
+ res = process_mips_specific (filedata, true);
+ found = true;
+ goto out;
+ }
+
+ if (all_relocations_count > 1)
+ qsort (all_relocations_root, all_relocations_count,
+ sizeof (elf_relocation), elf_relocation_cmp);
+
+ initialise_dumps_byname (filedata);
+
+ for (i = 0, section = filedata->section_headers;
+ i < filedata->file_header.e_shnum;
+ i++, section++)
+ if (section->sh_type == SHT_PROGBITS
+ && section->sh_size != 0)
+ {
+ const char *name = printable_section_name (filedata, section);
+
+ if (!startswith (name, ".got"))
+ continue;
+
+ found = true;
+
+ data = (unsigned char *) get_section_contents (section,
+ filedata);
+ if (data == NULL)
+ {
+ res = false;
+ goto out;
+ }
+
+ uint32_t entsz = section->sh_entsize;
+ entries = section->sh_size / entsz;
+ if (entries == 1)
+ printf (_("\nGlobal Offset Table '%s' contains 1 entry:\n"),
+ name);
+ else
+ printf (_("\nGlobal Offset Table '%s' contains %" PRIu64
+ " entries:\n"), name, entries);
+
+ uint64_t g;
+
+ if (is_32bit_elf)
+ {
+ uint32_t j, n = entries;
+ uint32_t addr;
+ struct got32
+ {
+ unsigned char bytes[4];
+ } *got;
+
+ if (do_wide)
+ printf (_(" Index: Address Reloc Sym. Name + Addend/Value\n"));
+ /* |---9---| |---8--| |---------22---------| |........... */
+ else
+ printf (_(" Index: Address Reloc Sym. Name + Addend/Value\n"));
+ /* |--7--| |---8--| |-------17------| |........... */
+
+ addr = section->sh_addr;
+ got = (struct got32 *) data;
+ for (j = 0; j < n; j++)
+ {
+ g = BYTE_GET (got[j].bytes);
+ if (do_wide)
+ printf ("%8" PRIu32 ": %8.8" PRIx32, j, addr);
+ else
+ printf ("%6" PRIu32 ": %8.8" PRIx32, j, addr);
+ display_elf_relocation_at (addr, g);
+ putchar ('\n');
+ addr += entsz;
+ }
+ }
+ else
+ {
+ uint64_t j, addr;
+ struct got64
+ {
+ unsigned char bytes[4];
+ } *got;
+
+ if (do_wide)
+ printf (_(" Index: Address Reloc Sym. Name + Addend/Value\n"));
+ /* |---9---| |------16------| |---------22---------| |........... */
+ else
+ printf (_(" Index: Address Reloc Sym. Name + Addend/Value\n"));
+ /* |--7--| |----12----| |------17-------| |........... */
+
+ addr = section->sh_addr;
+ got = (struct got64 *) data;
+ for (j = 0; j < entries; j++)
+ {
+ g = BYTE_GET (got[j].bytes);
+ if (do_wide)
+ printf ("%8" PRIu64 ": %16.16" PRIx64, j, addr);
+ else
+ printf ("%6" PRIu64 ": %12.12" PRIx64, j, addr);
+ display_elf_relocation_at (addr, g);
+ putchar ('\n');
+ addr += entsz;
+ }
+ }
+
+ free (data);
+ }
+
+ out:
+ if (! found)
+ {
+ if (filedata->is_separate)
+ printf (_("\nThere is no GOT section in linked file '%s'.\n"),
+ filedata->file_name);
+ else
+ printf (_("\nThere is no GOT section in this file.\n"));
+ }
+
+ for (size_t j = 0; j < all_relocations_count; j++)
+ free (all_relocations_root[j].r_symbol);
+ free (all_relocations_root);
+ all_relocations_root = NULL;
+ all_relocations = NULL;
+ all_relocations_count = 0;
+ return res;
+}
+
static bool
process_gnu_liblist (Filedata * filedata)
{
@@ -23455,7 +24078,7 @@ process_arch_specific (Filedata * filedata)
case EM_MIPS:
case EM_MIPS_RS3_LE:
- return process_mips_specific (filedata);
+ return process_mips_specific (filedata, false);
case EM_MSP430:
return process_attributes (filedata, "mspabi", SHT_MSP430_ATTRIBUTES,
@@ -23819,6 +24442,9 @@ process_object (Filedata * filedata)
if (! process_section_contents (filedata))
res = false;
+ if (! process_got_section_contents (filedata))
+ res = false;
+
if (have_separate_files)
{
separate_info * d;
diff --git a/binutils/resbin.c b/binutils/resbin.c
index fa77cd4..02905b9 100644
--- a/binutils/resbin.c
+++ b/binutils/resbin.c
@@ -1060,8 +1060,14 @@ get_version_header (windres_bfd *wrbfd, const bfd_byte *data,
*vallen = windres_get_16 (wrbfd, data + 2);
*type = windres_get_16 (wrbfd, data + 4);
- *off = 6;
+ if (*len > length)
+ {
+ non_fatal (_("version length %lu greater than resource length %lu"),
+ (unsigned long) *len, (unsigned long) length);
+ return false;
+ }
+ *off = 6;
length -= 6;
data += 6;
@@ -1101,6 +1107,14 @@ get_version_header (windres_bfd *wrbfd, const bfd_byte *data,
}
*off = (*off + 3) &~ 3;
+
+ if (*len < *off)
+ {
+ non_fatal (_("version length %lu does not cover header length %lu"),
+ (unsigned long) *len, (unsigned long) *off);
+ return false;
+ }
+
return true;
}
@@ -1120,14 +1134,6 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data,
(unichar **) NULL, &verlen, &vallen, &type, &off))
return NULL;
- /* PR 17512: The verlen field does not include padding length. */
- if (verlen > length)
- {
- non_fatal (_("version length %lu greater than resource length %lu"),
- (unsigned long) verlen, (unsigned long) length);
- return NULL;
- }
-
if (type != 0)
{
non_fatal (_("unexpected version type %d"), (int) type);
@@ -1311,7 +1317,7 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data,
if (stverlen < sverlen)
{
non_fatal (_("unexpected version string length %ld < %ld"),
- (long) verlen, (long) sverlen);
+ (long) stverlen, (long) sverlen);
return NULL;
}
stverlen -= sverlen;
diff --git a/binutils/rescoff.c b/binutils/rescoff.c
index 14546a4..efcdba4 100644
--- a/binutils/rescoff.c
+++ b/binutils/rescoff.c
@@ -308,6 +308,8 @@ read_coff_res_dir (windres_bfd *wrbfd, const bfd_byte *data,
re->subdir = 1;
re->u.dir = read_coff_res_dir (wrbfd, flaginfo->data + rva, flaginfo,
type, level + 1);
+ if (re->u.dir == NULL)
+ return NULL;
}
else
{
@@ -319,6 +321,8 @@ read_coff_res_dir (windres_bfd *wrbfd, const bfd_byte *data,
re->subdir = 0;
re->u.res = read_coff_data_entry (wrbfd, flaginfo->data + rva,
flaginfo, type);
+ if (re->u.res == NULL)
+ return NULL;
}
*pp = re;
@@ -359,6 +363,8 @@ read_coff_res_dir (windres_bfd *wrbfd, const bfd_byte *data,
re->subdir = 1;
re->u.dir = read_coff_res_dir (wrbfd, flaginfo->data + rva, flaginfo,
type, level + 1);
+ if (re->u.dir == NULL)
+ return NULL;
}
else
{
@@ -370,6 +376,8 @@ read_coff_res_dir (windres_bfd *wrbfd, const bfd_byte *data,
re->subdir = 0;
re->u.res = read_coff_data_entry (wrbfd, flaginfo->data + rva,
flaginfo, type);
+ if (re->u.res == NULL)
+ return NULL;
}
*pp = re;
diff --git a/binutils/strings.c b/binutils/strings.c
index f5c022b..38da638 100644
--- a/binutils/strings.c
+++ b/binutils/strings.c
@@ -757,8 +757,8 @@ display_utf8_char (const unsigned char * buffer)
case 4:
printf ("\\u%02x%02x%02x",
- ((buffer[0] & 0x07) << 6) | ((buffer[1] & 0x3c) >> 2),
- ((buffer[1] & 0x03) << 6) | ((buffer[2] & 0x3c) >> 2),
+ ((buffer[0] & 0x07) << 2) | ((buffer[1] & 0x30) >> 4),
+ ((buffer[1] & 0x0f) << 4) | ((buffer[2] & 0x3c) >> 2),
((buffer[2] & 0x03) << 6) | ((buffer[3] & 0x3f)));
break;
default:
diff --git a/binutils/testsuite/binutils-all/aarch64/pei-aarch64-little.d b/binutils/testsuite/binutils-all/aarch64/pei-aarch64-little.d
index 27cb6e1..22f6649 100644
--- a/binutils/testsuite/binutils-all/aarch64/pei-aarch64-little.d
+++ b/binutils/testsuite/binutils-all/aarch64/pei-aarch64-little.d
@@ -1,7 +1,7 @@
#skip: aarch64_be-*-*
#ld: -e0
#PROG: objcopy
-#objcopy: -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* -j .reloc --target=efi-app-aarch64
+#objcopy: -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* -j .reloc --output-target=efi-app-aarch64
#objdump: -h -f
#name: Check if efi app format is recognized
diff --git a/binutils/testsuite/binutils-all/ar.exp b/binutils/testsuite/binutils-all/ar.exp
index d06fe90..f38dce5 100644
--- a/binutils/testsuite/binutils-all/ar.exp
+++ b/binutils/testsuite/binutils-all/ar.exp
@@ -1013,8 +1013,8 @@ tek1.obj:
*: no symbols
tek2.obj:
-00000001 D _binary_x_end
-00000001 A _binary_x_size
+00000003 D _binary_x_end
+00000003 A _binary_x_size
00000000 D _binary_x_start
} $got] {
fail $testname
diff --git a/binutils/testsuite/binutils-all/copy-7.d b/binutils/testsuite/binutils-all/copy-7.d
new file mode 100644
index 0000000..ac8e756
--- /dev/null
+++ b/binutils/testsuite/binutils-all/copy-7.d
@@ -0,0 +1,14 @@
+#PROG: objcopy
+#readelf: -tW
+#name: copy with unknown section flag
+#warning: .*/copy-7[.].*:[.]special: warning: retaining .* 0x10000
+
+There are .* section headers, starting at offset .*
+
+Section Headers:
+ \[Nr\].*
+#...
+ \[ [1-9]\] .special
+ PROGBITS .*
+ \[0+10000\]: UNKNOWN \(0+10000\)
+#...
diff --git a/binutils/testsuite/binutils-all/copy-7.s b/binutils/testsuite/binutils-all/copy-7.s
new file mode 100644
index 0000000..0861c3c
--- /dev/null
+++ b/binutils/testsuite/binutils-all/copy-7.s
@@ -0,0 +1,7 @@
+ .globl text_symbol
+ .text
+text_symbol:
+ .nop
+
+ .section .special,"0x10000", %progbits
+ .long -1
diff --git a/binutils/testsuite/binutils-all/loongarch64/pei-loongarch64.d b/binutils/testsuite/binutils-all/loongarch64/pei-loongarch64.d
index 574b3e5..61b026d 100644
--- a/binutils/testsuite/binutils-all/loongarch64/pei-loongarch64.d
+++ b/binutils/testsuite/binutils-all/loongarch64/pei-loongarch64.d
@@ -1,6 +1,6 @@
#ld: -e0
#PROG: objcopy
-#objcopy: -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* -j .reloc --target=pei-loongarch64
+#objcopy: -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* -j .reloc --output-target=pei-loongarch64
#objdump: -h -f
#name: Check if efi app format is recognized
diff --git a/binutils/testsuite/binutils-all/nm.exp b/binutils/testsuite/binutils-all/nm.exp
index c571520..fea68bf 100644
--- a/binutils/testsuite/binutils-all/nm.exp
+++ b/binutils/testsuite/binutils-all/nm.exp
@@ -304,7 +304,6 @@ if [is_elf_format] {
setup_xfail "msp430*-*-*"
setup_xfail "kvx*-*-*"
setup_xfail "visium*-*-*"
- setup_xfail "x86_64-*-cloudabi*"
set testname "nm --ifunc-chars"
if {![binutils_assemble $srcdir/$subdir/ifunc.s tmpdir/ifunc.o]} then {
diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp
index 89370bc..c5ff1e3 100644
--- a/binutils/testsuite/binutils-all/objcopy.exp
+++ b/binutils/testsuite/binutils-all/objcopy.exp
@@ -1313,6 +1313,7 @@ if [is_elf_format] {
run_dump_test "group-7b"
run_dump_test "group-7c"
run_dump_test "copy-1"
+ run_dump_test "copy-7"
run_dump_test "note-1"
# Use copytest.o from the note-1 test to determine ELF32 or ELF64
if [is_elf64 tmpdir/copytest.o] {
@@ -1462,18 +1463,23 @@ proc objcopy_test_without_global_symbol { } {
global OBJDUMPFLAGS
global srcdir
global subdir
+ global CFLAGS_FOR_TARGET
set test "strip without global symbol "
- if { [target_compile $srcdir/$subdir/pr19547.c tmpdir/pr19547.o object debug] != "" } {
+ set opts "debug"
+ if [string match "*-fsanitize=*" $CFLAGS_FOR_TARGET] {
+ append opts " additional_flags=-fno-sanitize=all"
+ }
+
+ set objfile tmpdir/pr19547.o
+ if { [target_compile $srcdir/$subdir/pr19547.c $objfile object $opts] != "" } {
untested $test
return
}
if [is_remote host] {
- set objfile [remote_download host tmpdir/pr19547.o]
- } else {
- set objfile tmpdir/pr19547.o
+ set objfile [remote_download host $objfile]
}
set exec_output [binutils_run $OBJCOPY "$OBJCOPYFLAGS --strip-unneeded $objfile"]
@@ -1566,3 +1572,33 @@ if { ![is_xcoff_format] } {
}
run_dump_test "rename-section-01"
+
+proc objcopy_tek2bin {} {
+ global OBJCOPY
+ global OBJDUMP
+ global srcdir
+ global subdir
+
+ set tek $srcdir/$subdir/tek2.obj
+ set out tmpdir/tek2bin
+ if [isremote host] {
+ set tek [remote_download host $tek]
+ set out tek2bin
+ }
+
+ set got [binutils_run $OBJCOPY "-O binary $tek $out"]
+ if ![string equal "" $got] then {
+ send_log "$got\n"
+ fail "objcopy tek2bin"
+ } else {
+ set got [binutils_run $OBJDUMP "-s -b binary $out"]
+ if {![regexp ".* 0000 000031 .*" $got]} {
+ fail "objcopy tek2bin (objdump)"
+ } else {
+ pass "objcopy tek2bin"
+ }
+ }
+ remote_file host delete $out
+}
+
+objcopy_tek2bin
diff --git a/binutils/testsuite/binutils-all/readelf.exp b/binutils/testsuite/binutils-all/readelf.exp
index 571bb99..22f2a35 100644
--- a/binutils/testsuite/binutils-all/readelf.exp
+++ b/binutils/testsuite/binutils-all/readelf.exp
@@ -317,22 +317,21 @@ proc readelf_thin_archive_test {} {
if ![is_remote host] {
set tempfile tmpdir/bintest.o
- set templib tmpdir/bintest.thin.a
set libname tmpdir/bintest.thin.a
} else {
set tempfile [remote_download host tmpdir/bintest.o]
- set templib [remote_download host tmpdir/bintest.thin.a]
set libname bintest.thin.a
}
set testname "readelf -h bintest.thin"
+ file_on_host delete $libname
set got [binutils_run $AR "rcT $libname ${tempfile}"]
if ![string match "" $got] {
fail $testname
return
}
- readelf_test -h $templib readelf.h.thin
+ readelf_test -h $libname readelf.h.thin
pass $testname
}
diff --git a/binutils/testsuite/binutils-all/riscv/pei-riscv64.d b/binutils/testsuite/binutils-all/riscv/pei-riscv64.d
index 189b016..4316414 100644
--- a/binutils/testsuite/binutils-all/riscv/pei-riscv64.d
+++ b/binutils/testsuite/binutils-all/riscv/pei-riscv64.d
@@ -1,7 +1,7 @@
#as: -march=rv64gc -mabi=lp64d
#ld: -m elf64lriscv -e0
#PROG: objcopy
-#objcopy: -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* -j .reloc --target=pei-riscv64-little
+#objcopy: -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* -j .reloc --output-target=pei-riscv64-little
#objdump: -h -f
#name: Check if efi app format is recognized
diff --git a/binutils/testsuite/binutils-all/tek2.obj b/binutils/testsuite/binutils-all/tek2.obj
index da696d1..a4e29af 100644
--- a/binutils/testsuite/binutils-all/tek2.obj
+++ b/binutils/testsuite/binutils-all/tek2.obj
@@ -1,6 +1,6 @@
-%47615103000000000000000000000000000000000000000000000000000000000000000
-%103E95.data11011
+%47616100000310000000000000000000000000000000000000000000000000000000000
+%103EB5.data11013
%1E3FB5.data4F_binary_x_start10
-%1C3735.data4D_binary_x_end11
-%1D3135*ABS*2E_binary_x_size11
+%1C3755.data4D_binary_x_end13
+%1D3155*ABS*2E_binary_x_size13
%0781010
diff --git a/binutils/testsuite/binutils-all/testranges-ia64.d b/binutils/testsuite/binutils-all/testranges-ia64.d
index e1e29e7..26963c9 100644
--- a/binutils/testsuite/binutils-all/testranges-ia64.d
+++ b/binutils/testsuite/binutils-all/testranges-ia64.d
@@ -1,7 +1,7 @@
#PROG: objcopy
#source: testranges-ia64.s
#readelf: -wR --wide
-#name: unordered .debug_info references to .debug_ranges
+#name: unordered .debug_info references to .debug_ranges (ia64)
#target: ia64-*-*
Contents of the .debug_ranges section:
diff --git a/binutils/testsuite/binutils-all/windres/psql.rc b/binutils/testsuite/binutils-all/windres/psql.rc
new file mode 100644
index 0000000..724d1f5
--- /dev/null
+++ b/binutils/testsuite/binutils-all/windres/psql.rc
@@ -0,0 +1,822 @@
+
+/* Type: icon
+
+ Name: 1. */
+LANGUAGE 0, 0
+
+1 3 /* RT_ICON */
+BEGIN
+ 0x28L , 0x10L , 0x20L , 0x80001L , 0x0L , 0x100L , 0x0L , 0x0L ,
+ 0x100L , 0x100L , 0x0L , 0x45697fL , 0x2e6188L , 0x2f628eL , 0x2f678bL , 0x2f668eL ,
+ 0x2e688bL , 0x2f6591L , 0x326183L , 0x356185L , 0x346483L , 0x366786L , 0x326288L , 0x32628dL ,
+ 0x32648aL , 0x31648eL , 0x356289L , 0x35638cL , 0x36648eL , 0x386181L , 0x396284L , 0x396485L ,
+ 0x39638aL , 0x39658aL , 0x3f6987L , 0x386889L , 0x3a688fL , 0x3d6889L , 0x326290L , 0x316591L ,
+ 0x306594L , 0x346391L , 0x3f6890L , 0x416589L , 0x466d89L , 0x486b8aL , 0x4b708aL , 0x48718dL ,
+ 0x4a7299L , 0x577688L , 0x567698L , 0x597c96L , 0x587d98L , 0x5d7d9eL , 0x5d809cL , 0x5e81a3L ,
+ 0x608592L , 0x61839cL , 0x6184a2L , 0x6188a6L , 0x6b8ea1L , 0x6e8ea0L , 0x6e96aaL , 0x7590a1L ,
+ 0x7794a5L , 0x7597abL , 0x7596adL , 0x7d9db2L , 0x7ca1b4L , 0x8495a3L , 0x8aa1aeL , 0x8ba5adL ,
+ 0x8fa3acL , 0x86a9baL , 0x85a9bdL , 0x8ba4b6L , 0x8da6b8L , 0x8faab4L , 0x8ca9bdL , 0x93a5b4L ,
+ 0x91abb7L , 0x91aab8L , 0x91acbbL , 0x95afbeL , 0x9aadbdL , 0x92b0bfL , 0x95b0b8L , 0x95b2bcL ,
+ 0x8cacc0L , 0x90afc1L , 0x91b1c4L , 0x93b5c4L , 0x95b4c0L , 0x94b7c5L , 0x97b4c8L , 0x98b5c2L ,
+ 0x9bb8c4L , 0xa0b7c5L , 0xa7bfc7L , 0xa8bac7L , 0xa9bec7L , 0xafbfc8L , 0xb4c0c9L , 0xb6c5c9L ,
+ 0xbac5cbL , 0xbcc9cfL , 0xbbc9d3L , 0xbbccd4L , 0xc1c6caL , 0xc2cfd3L , 0xc0cfd5L , 0xc3d4dcL ,
+ 0xc7d1d9L , 0xd4dcdfL , 0xced9e1L , 0xd7dee1L , 0xd5dfe5L , 0xd7e1e6L , 0xd9e1e3L , 0xe6ebeeL ,
+ 0xeceeeeL , 0xe7edf1L , 0xe9eef1L , 0xeaf0f3L , 0xeef2f4L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x6b292364L, 0x0L , 0x0L , 0x0L ,
+ 0x2f1d0f36L, 0x0L , 0x0L , 0x0L , 0x26040f30L, 0x0L , 0x0L , 0x0L ,
+ 0x20041e2dL, 0x0L , 0x66000000L, 0x5d3e6900L, 0x16061d2bL, 0x6fL , 0xf410000L , 0x3e6c005fL,
+ 0xf041d28L , 0x623b59L , 0xf156700L , 0x4c415f22L, 0xf1d0f0fL , 0x6e43L , 0xf1d4200L , 0x52092244L,
+ 0x201d0f0fL, 0x5e59L , 0xf1e2c00L , 0x390f0952L, 0x341d1d16L, 0x694627L , 0x1d0f0f71L, 0x370f164eL,
+ 0x52151d21L, 0x333a25L , 0xf1d0f64L , 0x4d370152L, 0x4d16120fL, 0xf402eL , 0x1d1d0f4aL, 0x3956524eL,
+ 0x440f1d0fL, 0x660f5659L, 0xf0f1d46L , 0xf022b38L , 0xf1d0f16L , 0x561d3035L, 0xf1d1369L , 0xf095201L ,
+ 0x250f0f0fL, 0x5f150f46L, 0x9164600L , 0x15434509L, 0x53331509L, 0x4a1509L , 0x72720000L, 0x72000000L,
+ 0x5d00006dL, 0x725bL , 0xfffL , 0xfffL , 0xfffL , 0xfffL , 0x7e8L , 0x1c4L ,
+ 0x380L , 0x380L , 0x180L , 0x100L , 0x100L , 0x0L , 0x0L , 0x0L ,
+ 0x180L , 0x63ceL
+END
+
+/* Name: 2. */
+
+2 3 /* RT_ICON */
+BEGIN
+ 0x28L , 0x20L , 0x40L , 0x80001L , 0x0L , 0x400L , 0x0L , 0x0L ,
+ 0x100L , 0x100L , 0x0L , 0x375974L , 0x325a7eL , 0x325f7aL , 0x305f7eL , 0x345b7dL ,
+ 0x355d7dL , 0x3a5d74L , 0x3a5f7aL , 0x33617dL , 0x3c6277L , 0x3b637cL , 0x405f77L , 0x47636bL ,
+ 0x466274L , 0x41657dL , 0x4c6672L , 0x4e6478L , 0x4b6b7dL , 0x526d7cL , 0x52707eL , 0x2f5e83L ,
+ 0x315f83L , 0x315f86L , 0x355b81L , 0x365d81L , 0x355c86L , 0x335e8cL , 0x365f8bL , 0x375f8fL ,
+ 0x3a5e85L , 0x3b5e8fL , 0x345e90L , 0x2d6183L , 0x2b648fL , 0x2f6088L , 0x2c638dL , 0x2e6589L ,
+ 0x2e668dL , 0x2e6889L , 0x2d688cL , 0x2e6391L , 0x2f6395L , 0x2e6591L , 0x2e6696L , 0x2f6499L ,
+ 0x2e6890L , 0x2f6894L , 0x326181L , 0x316185L , 0x326484L , 0x366182L , 0x356185L , 0x376586L ,
+ 0x316289L , 0x31628dL , 0x32648aL , 0x31658dL , 0x356189L , 0x35618dL , 0x346489L , 0x34648dL ,
+ 0x396382L , 0x396284L , 0x396583L , 0x3b6484L , 0x3e6584L , 0x38628aL , 0x3f6886L , 0x3b688bL ,
+ 0x326291L , 0x326394L , 0x316591L , 0x306594L , 0x356292L , 0x356295L , 0x346490L , 0x366595L ,
+ 0x316398L , 0x326896L , 0x386290L , 0x436483L , 0x466b84L , 0x436b88L , 0x4c6b84L , 0x496c89L ,
+ 0x41718eL , 0x4c738dL , 0x497690L , 0x4f7393L , 0x4e7493L , 0x4f7a9cL , 0x506f81L , 0x53768bL ,
+ 0x547189L , 0x57718cL , 0x58748fL , 0x5e7d83L , 0x5b7b8aL , 0x557b94L , 0x557e9aL , 0x597694L ,
+ 0x5b7e99L , 0x5c7fa1L , 0x607586L , 0x62758aL , 0x607b8eL , 0x697b8fL , 0x607f9eL , 0x5a8196L ,
+ 0x5b829cL , 0x5680a1L , 0x5984a5L , 0x648293L , 0x638599L , 0x6c8697L , 0x6a8299L , 0x69819cL ,
+ 0x6a859aL , 0x69859dL , 0x73868aL , 0x708992L , 0x708b9cL , 0x758a98L , 0x798b99L , 0x77939eL ,
+ 0x7d9098L , 0x6587a1L , 0x6789a5L , 0x638ca8L , 0x6b8ca4L , 0x6e91abL , 0x738ea2L , 0x788ea5L ,
+ 0x7392a0L , 0x7494aaL , 0x7198abL , 0x7c92a3L , 0x7d97aaL , 0x7c99acL , 0x7ea4b6L , 0x869299L ,
+ 0x8396a5L , 0x879ea2L , 0x839baaL , 0x8a99a5L , 0x829cb2L , 0x83a4aeL , 0x8ea0acL , 0x86a5b6L ,
+ 0x86a3b8L , 0x85a8b8L , 0x8ca3b3L , 0x88a6bbL , 0x8fa8b4L , 0x8ba8b8L , 0x88aebfL , 0x8daabcL ,
+ 0x8fb3beL , 0x91a1afL , 0x93a6b0L , 0x93acb5L , 0x92acbbL , 0x94aabbL , 0x94afbcL , 0x9cafbeL ,
+ 0x96b3baL , 0x98b3b8L , 0xabafb3L , 0xa2b4bbL , 0x8bafc3L , 0x95b4c4L , 0x95bac7L , 0x9cb7c1L ,
+ 0x9bbbceL , 0xa1b6c5L , 0xa1b7c8L , 0xa0bdc5L , 0xacc3c7L , 0xaec0caL , 0xa4c3d1L , 0xabc6d5L ,
+ 0xabc9d3L , 0xadced9L , 0xacd0d7L , 0xadd2dbL , 0xb1c2ccL , 0xbcc5cbL , 0xb5c9d0L , 0xb2cbdaL ,
+ 0xb9c9d1L , 0xb9cdd4L , 0xbcc8d1L , 0xbccad5L , 0xbfced6L , 0xbbccd8L , 0xb2d1daL , 0xbcd3dcL ,
+ 0xbfdcdfL , 0xb4d5e2L , 0xb2d8e1L , 0xbcd5e1L , 0xbfdce5L , 0xbfe0e6L , 0xc5cecdL , 0xc2d1d4L ,
+ 0xc3d4dbL , 0xc7d3d9L , 0xc5d3dfL , 0xc7d7ddL , 0xcbd2d4L , 0xcbd3daL , 0xc9dadcL , 0xd1dadfL ,
+ 0xd9dddfL , 0xc3d7e2L , 0xc3d9e3L , 0xc0dae8L , 0xccdce4L , 0xd1dee1L , 0xd2dfe4L , 0xd6dee2L ,
+ 0xd1dce8L , 0xdbdfe0L , 0xc2e0e7L , 0xc2e0ebL , 0xcbe1e4L , 0xcbe4ecL , 0xd3e0e4L , 0xd3e4eaL ,
+ 0xdee3e4L , 0xdbe5ebL , 0xdae9efL , 0xdfe8ebL , 0xdfe9edL , 0xdfecf2L , 0xe0dfdfL , 0xe0e4e7L ,
+ 0xe6e8e9L , 0xe5eaecL , 0xe4eceeL , 0xe9ebebL , 0xe8ebedL , 0xeaedeeL , 0xe1eaf0L , 0xe0eff0L ,
+ 0xe4eff1L , 0xeaedf1L , 0xeaf1f5L , 0xecf3f2L , 0xebf4faL , 0xf2f3f5L , 0xf1f6f8L , 0xf2f8fbL ,
+ 0xf4f8f9L , 0xf4fcfcL , 0x0L , 0x0L , 0x0L , 0x0L , 0x5e74d1f3L, 0xf4a374L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x17027adcL, 0xe9843317L,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x39480fbfL, 0xa5414848L,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x39480fadL, 0x8a172f39L,
+ 0xf3L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x3939419dL, 0x80392739L,
+ 0xefL , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x48251c99L, 0x67202739L,
+ 0xf9L , 0x0L , 0x0L , 0x0L , 0x0L , 0xdf000000L, 0x48393996L, 0x59482727L,
+ 0xfdL , 0x0L , 0x0L , 0x0L , 0xf3000000L, 0xd200efe6L, 0x2d481f95L, 0x55202748L,
+ 0xe7L , 0x0L , 0x0L , 0xfb0000L , 0xbb000000L, 0xccd5bfa9L, 0x2d482092L, 0x53482626L,
+ 0xd5L , 0x0L , 0x0L , 0x9574de00L, 0xbbef0000L, 0xe2791391L, 0x48481e92L, 0x1e392626L,
+ 0xfafafedcL, 0x0L , 0x0L , 0x411772e7L, 0xf30000b3L, 0x900dbfd5L, 0x27481e95L, 0x17392627L,
+ 0x68119fbfL, 0xa88dL , 0xf3000000L, 0x392441b0L, 0xc254L , 0xc3b2e600L, 0x39481e6cL, 0x19392f27L,
+ 0xd194bcafL, 0xe6e6L , 0xdcfb0000L, 0x48483953L, 0xe7da1217L, 0x7de2bfd2L, 0x50505039L, 0x39484848L,
+ 0xbc13L , 0x0L , 0xa9d60000L, 0x2f394106L, 0x7ad88217L, 0x14d8630eL, 0x50484850L, 0x392f2d50L,
+ 0xd6dfe572L, 0x0L , 0x74d00000L, 0x39482b39L, 0x197dc357L, 0x93bd4141L, 0x50392d25L, 0x50484848L,
+ 0xd2d2c3bcL, 0x0L , 0x55c9d600L, 0x392b2b48L, 0x1751d87fL, 0xb6921e27L, 0x39392d04L, 0x5a392d48L,
+ 0x91d478d8L, 0xfdL , 0x41abf300L, 0x392b2b48L, 0x3933c583L, 0xc55e4139L, 0x48484817L, 0x9d41482dL,
+ 0x69e2108bL, 0xc2L , 0x4180f900L, 0x392b2b2bL, 0x170bc982L, 0xb4543939L, 0x48485051L, 0xb95e5048L,
+ 0x5fe05c51L, 0xfd85L , 0x3755e500L, 0x392f2b2bL, 0x3944d966L, 0xb4515048L, 0x2b481f54L, 0xb4970a50L,
+ 0x55c86d02L, 0xd254L , 0x4818bf00L, 0x392b2b48L, 0x3953d963L, 0xb5553939L, 0x39395053L, 0x88c50b45L,
+ 0x45c57225L, 0x8617L , 0x241f9f00L, 0x392b4839L, 0x20fd86eL , 0xb76a6e53L, 0x48503950L, 0x62e15417L,
+ 0x56c86233L, 0xef5127L , 0x393989edL, 0x392b4848L, 0xa71e36eL , 0xb8a7d886L, 0x48503917L, 0x7eca5339L,
+ 0x5be3619eL, 0xc3192bL , 0x245074dbL, 0x392b4848L, 0xb6cae36eL, 0x8cd8a9a6L, 0x48484817L, 0xcdac1748L,
+ 0x70e58fb1L, 0x9d1c48L , 0x2f4865dbL, 0x392b4839L, 0x8873d963L, 0x5387aeaeL, 0x39394839L, 0x97563939L,
+ 0x70e9c3c5L, 0xfd82392bL, 0x2f5065e3L, 0x39394839L, 0x672d053L , 0x1f391917L, 0x17393939L, 0x252b4f39L,
+ 0x45b78e07L, 0xef5b3939L, 0x2d3972daL, 0x17393939L, 0x41aaac27L, 0x39392424L, 0x27503939L, 0x39482d48L,
+ 0x3981c362L, 0xe7633948L, 0x390695e9L, 0x48395050L, 0x5ee06250L, 0x39394817L, 0x48395039L, 0xb41502dL ,
+ 0x3917a6c3L, 0xe76a5048L, 0x410cc200L, 0x39504839L, 0xa6b60a50L, 0x50391707L, 0x48391739L, 0x9206412fL,
+ 0x174154b6L, 0xfe9f0150L, 0xb9ff700L , 0x39393939L, 0xd06a4139L, 0x35170f86L, 0x41391739L, 0xc5ac5c06L,
+ 0x41351745L, 0xfe9251L , 0xb1db0000L, 0x3033357L , 0xbf6b510bL, 0x1752a6efL, 0x51333333L, 0x6eb4c58bL,
+ 0x5c043204L, 0xf7adL , 0x0L , 0xc0c2d4f4L, 0xefd3L , 0xbfe90000L, 0xf5dab2b2L, 0x797ae2feL,
+ 0xf4bc9a86L, 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0xdcfb0000L,
+ 0xefd3L , 0x0L , 0xff01ffffL, 0xff00ffffL, 0xff00ffffL, 0x7f00ffffL, 0x7f00ffffL, 0x7f00ffffL,
+ 0x7f00feffL, 0x7f00e2ffL, 0x7f00e0fdL, 0xf00c0f8L , 0x30060f0L , 0x30038e0L , 0x3f0000c0L, 0xf0000c0L ,
+ 0xf0000c0L , 0x7000080L , 0x7000080L , 0x3000080L , 0x3000080L , 0x3000080L , 0x1000080L , 0x1000000L ,
+ 0x1000000L , 0x0L , 0x0L , 0x0L , 0x0L , 0x80L , 0x1000080L , 0x30000c0L ,
+ 0xf003cf0L , 0x3ffcffffL
+END
+
+/* Name: 3. */
+
+3 3 /* RT_ICON */
+BEGIN
+ 0x28L , 0x30L , 0x60L , 0x80001L , 0x0L , 0x900L , 0x0L , 0x0L ,
+ 0x100L , 0x100L , 0x0L , 0x384d5eL , 0x355359L , 0x2c5b79L , 0x335367L , 0x33536dL ,
+ 0x36596cL , 0x385764L , 0x3a556bL , 0x3d5a66L , 0x395b6eL , 0x325673L , 0x34567dL , 0x345b74L ,
+ 0x335b7aL , 0x3b5674L , 0x39567bL , 0x3b5d74L , 0x3a5c7bL , 0x2c627dL , 0x34636eL , 0x366376L ,
+ 0x33607cL , 0x3d6175L , 0x3b627bL , 0x3b687fL , 0x415869L , 0x425b77L , 0x47606bL , 0x416174L ,
+ 0x43637cL , 0x43697eL , 0x496377L , 0x4b6b7cL , 0x4e717cL , 0x546a6eL , 0x556b7cL , 0x59717aL ,
+ 0x64767cL , 0x2c5d84L , 0x325c80L , 0x335b89L , 0x395680L , 0x3a5c83L , 0x3a5f8dL , 0x365f94L ,
+ 0x2e6283L , 0x2d628cL , 0x2d6986L , 0x2d698bL , 0x2d6592L , 0x2e639aL , 0x2e6894L , 0x346284L ,
+ 0x33648bL , 0x316884L , 0x31688bL , 0x3a6383L , 0x39638bL , 0x3d698cL , 0x326492L , 0x316499L ,
+ 0x326893L , 0x336999L , 0x396193L , 0x396298L , 0x396a92L , 0x386a99L , 0x466a84L , 0x46708bL ,
+ 0x487081L , 0x4c708cL , 0x526781L , 0x536c82L , 0x506f8cL , 0x547184L , 0x52738bL , 0x557c8cL ,
+ 0x5d758cL , 0x5b7c89L , 0x547b92L , 0x517e9cL , 0x5a7c93L , 0x5a7e99L , 0x647687L , 0x627c93L ,
+ 0x5e818fL , 0x5d8294L , 0x5e839bL , 0x5d85a2L , 0x65818aL , 0x658292L , 0x63829dL , 0x678a9eL ,
+ 0x6f8093L , 0x6a829bL , 0x6a8a93L , 0x6c899dL , 0x6b929dL , 0x798688L , 0x728493L , 0x738b94L ,
+ 0x748c9bL , 0x7c8990L , 0x7b8d9fL , 0x799298L , 0x648ba1L , 0x6d8aa2L , 0x6e8fa9L , 0x6d93aaL ,
+ 0x748da3L , 0x7394a9L , 0x719babL , 0x7a94a3L , 0x7a94aaL , 0x7c9aa6L , 0x7c9aabL , 0x7196b0L ,
+ 0x7b9cb4L , 0x7ba0acL , 0x7da5b0L , 0x86888bL , 0x818f98L , 0x86949aL , 0x8199a5L , 0x899fb7L ,
+ 0x929ca9L , 0x89a1aeL , 0x86a3b2L , 0x83a4bfL , 0x8da6b5L , 0x88a4b8L , 0x8aa8b5L , 0x8ba8baL ,
+ 0x96a2afL , 0x93aab3L , 0x93abbcL , 0x9faeb7L , 0x9aafbeL , 0x91b0bdL , 0x9db3b3L , 0x9cb1bcL ,
+ 0x9db8beL , 0xa1a6a8L , 0xa5adb2L , 0xa3b3b6L , 0xa0b5bdL , 0xaab3b2L , 0xafbab7L , 0xb1b4b6L ,
+ 0xb2b4b9L , 0xb7bbbeL , 0x89abc2L , 0x97afc1L , 0x91b2c4L , 0x91b3c9L , 0x9cb3c3L , 0x9cb6ceL ,
+ 0x9db8c2L , 0x9cbacaL , 0x9ebcd1L , 0xa5bbc8L , 0xa6bdd0L , 0xbdbfc1L , 0xbbbccbL , 0x9cc2ceL ,
+ 0x9fc4d2L , 0xa8c3ccL , 0xa5c2d6L , 0xa9c5d3L , 0xaac6d9L , 0xadc8d3L , 0xacccdbL , 0xb3c9ccL ,
+ 0xbcc2c4L , 0xb9c8cdL , 0xb2c3d3L , 0xb1c6daL , 0xb2cbd4L , 0xb2ccdaL , 0xbfc7d6L , 0xbbccd3L ,
+ 0xbbcddcL , 0xb7d1d3L , 0xb5d2dcL , 0xbbd1d0L , 0xbed1dbL , 0xbdd9dbL , 0xb2cee2L , 0xb5d3e0L ,
+ 0xb4dae4L , 0xb7dae8L , 0xbbd5e2L , 0xbbd9e2L , 0xbce1eaL , 0xc5c2c6L , 0xc3c6ceL , 0xc4caccL ,
+ 0xcacfceL , 0xc5cbd1L , 0xcbced4L , 0xc3d3dcL , 0xccd1d4L , 0xcad5dbL , 0xcbd9daL , 0xd3d4d5L ,
+ 0xd0d4d9L , 0xd2daddL , 0xd8d7d5L , 0xdbdcdeL , 0xc1d6e0L , 0xc2dae4L , 0xc1dbebL , 0xc8d7e3L ,
+ 0xcbdae2L , 0xc9dcebL , 0xccdff3L , 0xd3dde2L , 0xdce3deL , 0xc4e3ebL , 0xcae3e9L , 0xcfe8efL ,
+ 0xcae8f3L , 0xd4e4e4L , 0xd2e4ebL , 0xd3e9edL , 0xdbe3e4L , 0xdbe5ebL , 0xddebe9L , 0xd0e6f4L ,
+ 0xd4ebf4L , 0xd3eef8L , 0xdcecf3L , 0xdeedf9L , 0xd5f0ecL , 0xdaf7fcL , 0xe3e4e6L , 0xe2e6eaL ,
+ 0xe6edecL , 0xe9eaebL , 0xe1ecf2L , 0xebeef1L , 0xeeeff9L , 0xe3f1ecL , 0xe4f2f5L , 0xe3f4faL ,
+ 0xe3fafdL , 0xebf2f4L , 0xeaf5faL , 0xe8f8f3L , 0xebfdfdL , 0xf2f3f4L , 0xf2f5f9L , 0xf2f9f6L ,
+ 0xf4fbfdL , 0xfafcfdL , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x88f8cf00L, 0x8a715555L, 0xf8e0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x566f5c7L , 0xb0e0e10L , 0xf8821eL , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x28118ef7L, 0x36363636L, 0xf7880d28L, 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x360d5bf8L, 0x3c3c363dL, 0xd649353cL, 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x3c0e4bdcL, 0x3e363632L, 0xb01e363eL, 0xecL , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x361e21d2L, 0x3e3a2b3dL, 0x880b3634L, 0xc7L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x36361eb8L, 0x38363631L, 0x83283c34L, 0xcbL , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x38283ab3L, 0x303c3d30L, 0x76293c30L, 0xccL ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0xe2000000L,
+ 0x363c2babL, 0x30313d30L, 0x6c293d38L, 0xe4L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0xae000000L, 0x31402babL, 0x303c3d31L, 0x58293c38L, 0xf8L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x93000000L,
+ 0x3c3c2ba9L, 0x303c333cL, 0x52293d38L, 0xf7f8L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0xaec6c5f1L, 0x93ff00ceL, 0x3c412babL, 0x30343d34L, 0x4a293c38L, 0xa4e8L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0xec0000L , 0xe1cbe3edL, 0x9496fcfaL,
+ 0x3d3c2ba7L, 0x30363d3eL, 0x44403c31L, 0xc4e0L , 0x0L , 0x0L , 0x0L , 0xef000000L,
+ 0xef96cef2L, 0xd10000L , 0x1c232690L, 0xfcfd8d5bL, 0x3d2d3a8eL, 0x3034333eL, 0x1e403c36L, 0xefcbL ,
+ 0x0L , 0x0L , 0x0L , 0xf7000000L, 0x6f1045a8L, 0xe3ef00fcL, 0x66b5e2f1L, 0xf6690708L,
+ 0x402c1ba2L, 0x3030383eL, 0x3a3a3134L, 0xd8f400b0L, 0xfaf8e5L , 0x0L , 0x0L , 0xd6f10000L,
+ 0x18312844L, 0xa1L , 0xf8cbaeefL, 0xa702097fL, 0x363a1bb1L, 0x3430383cL, 0x183a3132L, 0x4964f0a2L,
+ 0x907a5449L, 0xcaL , 0x0L , 0x61fcc400L, 0x2836290eL, 0xb248L , 0xaeef0000L, 0xb20269f7L,
+ 0x3c2b189dL, 0x3038383eL, 0x35282f34L, 0x125f09cL , 0x63675e24L, 0xa379L , 0x0L , 0x18acf700L,
+ 0x3e32313aL, 0xd24a18L , 0xca000000L, 0xe7bbe8eeL, 0x403a2a5cL, 0x3c36363cL, 0x28363e34L, 0xa1d2f86eL,
+ 0xffd6L , 0x0L , 0x0L , 0x1058f4c6L, 0x3c32323cL, 0xcc481e35L, 0xd90000e0L, 0x74b7f9f4L,
+ 0x3c3c4028L, 0x3e384038L, 0x35383c3cL, 0xe0691eL , 0xecL , 0x0L , 0xf7000000L, 0x360e92f7L,
+ 0x3e343c36L, 0xd3210e31L, 0x1c269cf9L, 0x84ff998L , 0x403c3c3aL, 0x3c3c3a3aL, 0x363c3e3dL, 0xf7e8600dL,
+ 0xef00L , 0x0L , 0x96000000L, 0x3a0b5afcL, 0x3c363635L, 0xf6a13a31L, 0xb1d1a72L , 0xa8ceb51L ,
+ 0x3e3c3d42L, 0x3c404036L, 0x363e3f3dL, 0xc7fcd245L, 0xd0d0L , 0x0L , 0xc7fd0000L, 0x36361bd8L,
+ 0x363c3e38L, 0x9feb6b0eL, 0x1e3a1817L, 0x46e1bc3bL, 0x36333335L, 0x3d423a3aL, 0x283c3f34L, 0xdfe1f981L,
+ 0xfd8fL , 0x0L , 0xe8c60000L, 0x343c188bL, 0x36323432L, 0x52f89f0eL, 0x3636360eL, 0x77f96c10L,
+ 0x3c333403L, 0x343c3637L, 0x45363334L, 0xf967d2d8L, 0xf7c47bL , 0x0L , 0xf8970000L, 0x32360e5cL,
+ 0x36363434L, 0x17bad444L, 0x3a363635L, 0xa7d8440eL, 0x3c3d3c13L, 0x3d3c3c35L, 0x6a283e3dL, 0xf9236ef9L,
+ 0xf8548dL , 0x0L , 0xd8cb0000L, 0x3c3c3a44L, 0x36323434L, 0x11a7d845L, 0x3636363aL, 0xc2a50f2bL,
+ 0x3e3d3619L, 0x3f3d3d35L, 0xa60e353cL, 0xea231dbcL, 0xfcb41aa1L, 0x0L , 0xa1e30000L, 0x32383a18L,
+ 0x363c3432L, 0x11b3d839L, 0x40313635L, 0xdb720f3aL, 0x3d3d2946L, 0x3c3d3d38L, 0xde520e3aL, 0xf9250f6bL,
+ 0xe95e0f9dL, 0x0L , 0x72e90000L, 0x323c360eL, 0x363c3232L, 0x1ed2c03aL, 0x363c3235L, 0xdb5c183aL,
+ 0x3c402c21L, 0x403c3d3cL, 0xc2a50d3aL, 0xf64d0d44L, 0xb31b0f98L, 0x0L , 0x50e8ed00L, 0x32323c28L,
+ 0x353c3432L, 0x44dea81eL, 0x3c3e3f2eL, 0xdc551036L, 0x3d412b4bL, 0x3a363234L, 0xa5e7211dL, 0xeb620e0eL,
+ 0x721b2b6dL, 0xfcL , 0x18b6ed00L, 0x323e3236L, 0x363e3432L, 0x47e79f0eL, 0x3c3d3236L, 0xd85c2a3aL,
+ 0x3c402b25L, 0x1e373e3cL, 0x59f6980aL, 0xeb702828L, 0x463a2b59L, 0xb9L , 0x1082fd00L, 0x3c3c323cL,
+ 0x3631343cL, 0x45e5a00eL, 0x3636362bL, 0xdb710b2fL, 0x3a3a3645L, 0x35423e3aL, 0x19bfc11eL, 0xf6742838L,
+ 0x32e1357L , 0xfc7cL , 0x2a66ee00L, 0x3c3c313cL, 0x3632333cL, 0x44e5a816L, 0x35282818L, 0xc284043aL,
+ 0x403a3642L, 0xe383e3aL , 0xaa5e747L , 0xf6712816L, 0x28302e6aL, 0xf04bL , 0x284edf00L, 0x3c3c3640L,
+ 0x3531343eL, 0x1de5a635L, 0x8b441e17L, 0xc1a75ac0L, 0x403c3635L, 0x3a3c3240L, 0x98df657L , 0xf95a144dL,
+ 0x31322e76L, 0xeeb518L , 0x2c44d6daL, 0x3e40303cL, 0x3632323cL, 0x85f9b33aL, 0xbb4d0421L, 0xa5dc87e1L,
+ 0x3d3c3c28L, 0x353c3241L, 0x67a7d845L, 0xf92378deL, 0x3c322fa6L, 0xf88810L , 0x2d20d2e2L, 0x3c3c303cL,
+ 0x35323434L, 0xf6f9ac16L, 0x69628dc2L, 0x70f6ad7bL, 0x3c3c3c27L, 0x353e3c3dL, 0x92f98b16L, 0xf525628eL,
+ 0x3d3d2fabL, 0xf86b2aL , 0x2d10a1f7L, 0x3c3c303eL, 0x3632343cL, 0x80e79f28L, 0xf6f6e7bdL, 0x3598f6f9L,
+ 0x3c3c3c31L, 0x3c31363cL, 0xf9ac4536L, 0xfcdfdbdbL, 0x3d3c3cabL, 0xdd453cL , 0x402a8df7L, 0x3e3e343eL,
+ 0x36343432L, 0x4bf88b16L, 0x81755017L, 0x280e5176L, 0x3838363cL, 0x363c3635L, 0x70372e34L, 0xffd2ada6L,
+ 0x3632319fL, 0xbb3629L , 0x412a8afaL, 0x3c38313eL, 0x3638343eL, 0x72f87428L, 0x2828350bL, 0x3a2c2828L,
+ 0x38363e3cL, 0x3e363637L, 0x16363234L, 0xf87e0818L, 0x3632286bL, 0xffa62831L, 0x3b169ff4L, 0x38383333L,
+ 0x37363536L, 0x9be7582eL, 0x32303503L, 0x3c403e2fL, 0x383c3642L, 0x3d363a3cL, 0x3c32333dL, 0xbfdc480dL,
+ 0x4036363aL, 0xf7a12836L, 0x351eb8e3L, 0x3a3e333cL, 0x36383636L, 0xdbb73a31L, 0x31313544L, 0x3a383232L,
+ 0x3c363c3cL, 0x3d3c3e3aL, 0x37403c3dL, 0x59e7ad1dL, 0x3e3c3c29L, 0xfc8b1636L, 0xe4be5cfL , 0x3c3c363cL,
+ 0x3c363c36L, 0xf674113cL, 0x3c350576L, 0x36363c33L, 0x3c364236L, 0x3c333436L, 0xd3a3a3cL , 0xe83fa84L ,
+ 0x3c3c3636L, 0xfda11136L, 0xb71fa00L , 0x3c3c363aL, 0x3c3c3c40L, 0xde220e40L, 0x3a0e17beL, 0x3c363c31L,
+ 0x36363636L, 0x3e3f323cL, 0x520a3a3aL, 0x1811b3f9L, 0x293c3e36L, 0xfdd2093aL, 0x20d5d900L, 0x3c363a1dL,
+ 0x403c4036L, 0x7414353eL, 0xe0882faL , 0x3b36363aL, 0x36363636L, 0x3a3c4336L, 0xd346041eL, 0x351e49bfL,
+ 0x3a36353aL, 0xf87b08L , 0x88fcec00L, 0x36361404L, 0x36383836L, 0x1e183a38L, 0x565e8baL , 0x3638351eL,
+ 0x36353638L, 0x163a3a36L, 0xdec15914L, 0x3b132852L, 0xf183b35L , 0xf56eL , 0xf8c60000L, 0x38271e78L,
+ 0x38363638L, 0x83a3636L , 0x60dce454L, 0x38361314L, 0x2e2e3636L, 0x460f1836L, 0x6debde74L, 0x2e3c3027L,
+ 0x7d1e0e36L, 0xe8L , 0xceff0000L, 0x446aabfaL, 0xd140d0dL , 0x5e481b14L, 0xf900d982L, 0x1635578eL,
+ 0x1616030eL, 0xd3804d35L, 0x144dbef6L, 0x13281335L, 0xf8b05b1eL, 0x0L , 0x0L , 0xdcebfd00L,
+ 0x87879ca7L, 0xf8d1b5a1L, 0xf1ffL , 0x98b8f8fcL, 0x9f807c7cL, 0xfaf9e4b3L, 0x171c488eL, 0x7c4f451eL,
+ 0xfff7b2L , 0x0L , 0x0L , 0xcefd0000L, 0xfffffff1L, 0xfcL , 0x0L , 0xfce2d100L,
+ 0xfffffffcL, 0x0L , 0xd2d2cbf0L, 0xfcfae8dcL, 0xf7L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0xcb000000L, 0xf1c3c6L ,
+ 0x0L , 0x0L , 0x80ffffffL, 0xff3fL , 0xffffffL , 0xff1fL , 0xffffffL , 0xff0fL ,
+ 0xffffffL , 0xff0fL , 0xffffffL , 0xff07L , 0xffffffL , 0xff07L , 0xffffffL , 0xff07L ,
+ 0xffffffL , 0xff07L , 0xfeffffL , 0xff07L , 0xfeffffL , 0xff07L , 0xfeffffL , 0xff03L ,
+ 0x4ffffL , 0xff03L , 0xfdffL , 0xff03L , 0xdfeL , 0xff03L , 0x4feL , 0x1f04L ,
+ 0x7fcL , 0x700L , 0xc003f8L , 0x300L , 0xe001f8L , 0x3f00L , 0x6000f0L , 0x7f01L ,
+ 0xe0L , 0xbf00L , 0xe0L , 0x3f00L , 0xc0L , 0x3f00L , 0xc0L , 0x1f00L ,
+ 0xc0L , 0x1f00L , 0xc0L , 0xf00L , 0xc0L , 0xf00L , 0xc0L , 0xf00L ,
+ 0x80L , 0x700L , 0x80L , 0x700L , 0x80L , 0x300L , 0x80L , 0x300L ,
+ 0x80L , 0x100L , 0x0L , 0x100L , 0x0L , 0x100L , 0x0L , 0x100L ,
+ 0x0L , 0x100L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x80L , 0x0L , 0x80L , 0x100L , 0x80L , 0x300L ,
+ 0xc0L , 0x700L , 0x2000c0L , 0xf00L , 0x3000f8L , 0x1f00L , 0xff807fcL , 0x7f00L ,
+ 0xffffffffL, 0xffe1L
+END
+
+/* Name: 4. */
+
+4 3 /* RT_ICON */
+BEGIN
+ 0x28L , 0x10L , 0x20L , 0x200001L , 0x0L , 0x440L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0xe2b8c9d0L, 0xff486b8aL, 0xff597c96L, 0xadc5d3dbL, 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x6fefefeL , 0xf87492a3L, 0xff32638eL, 0xff316690L, 0xff61839cL, 0x42f4f5f6L, 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x2ff6f8f8L, 0xff6184a2L, 0xff30658dL, 0xff2f678bL, 0xff4a7299L, 0x58edf2f3L, 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x32f5f6f6L,
+ 0x67eceeefL, 0x6ee4e7e7L, 0xff5e81a3L, 0xff2f6693L, 0xff2f678bL, 0xff3f6890L, 0x7eeaeff4L, 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x5beaeef3L, 0xb3b0becaL, 0x4eedeeefL, 0xccced6daL,
+ 0xf88ca1aaL, 0xf8b4c4c8L, 0xff5d7d9eL, 0xff316694L, 0xff2e688bL, 0xff39638aL, 0xaadce5eaL, 0x51f0f7fcL,
+ 0x22fbfdfdL, 0x0L , 0x0L , 0x48f2f4f5L, 0xef849eb2L, 0xff326288L, 0xc0a5b8c5L, 0x3feef1f2L,
+ 0xd9d3dcdfL, 0xff8ba5adL, 0xff567698L, 0xff33668fL, 0xff2f678eL, 0xff336288L, 0xffa8bac7L, 0xf27e909fL,
+ 0xc6b0b6bbL, 0x4be9eceeL, 0xcffffffL , 0xcccad4d8L, 0xff396486L, 0xff306690L, 0xff476e8aL, 0xecb6c8d1L,
+ 0xef839ba9L, 0xff95b0b8L, 0xff356390L, 0xff36648eL, 0xff326493L, 0xff32658fL, 0xff8faab5L, 0x97e0e3e3L,
+ 0x0L , 0x0L , 0x58efeff0L, 0xff8da6b8L, 0xff306590L, 0xff31658eL, 0xff8ca9bdL, 0xff466d89L,
+ 0xff376286L, 0xff98b5c2L, 0xff2f628eL, 0xff33648bL, 0xff306595L, 0xff3a688fL, 0xffa9bec7L, 0xf8b9c4caL,
+ 0x32f4f6f8L, 0x0L , 0x61eff3f5L, 0xff5d809cL, 0xff2f6591L, 0xff30658fL, 0xff93b0c4L, 0xff366284L,
+ 0xff34638bL, 0xff7e9db1L, 0xff3a648bL, 0xff316493L, 0xff346391L, 0xff6e96aaL, 0xff577688L, 0xff91aab8L,
+ 0xaac1cfd9L, 0x0L , 0x9adde6ebL, 0xff366389L, 0xff2f6591L, 0xff30658fL, 0xff8cacc0L, 0xff39668aL,
+ 0xff32638eL, 0xff7795acL, 0xff416589L, 0xff316590L, 0xff396382L, 0xff93b5c4L, 0xff48718dL, 0xff7ca1b4L,
+ 0xf5698a9dL, 0x1cfdfefeL, 0xcfb5c4caL, 0xff33628cL, 0xff326592L, 0xff2f658eL, 0xff90b2c4L, 0xff45697fL,
+ 0xff7597abL, 0xff94b3bdL, 0xff34638cL, 0xff346393L, 0xff3d6889L, 0xff97b2bcL, 0xff608592L, 0xff85a9bdL,
+ 0xff356288L, 0x7ee0e9ecL, 0xff9aadbdL, 0xff316690L, 0xff326592L, 0xff30668fL, 0xff90afc1L, 0xff92b0bfL,
+ 0xff9bb8c4L, 0xff7d9eb3L, 0xff30648eL, 0xff32648fL, 0xff32648bL, 0xff86a9baL, 0xffa7bfc7L, 0xff97b4c8L,
+ 0xff316290L, 0xbdafc5d1L, 0xff95afbeL, 0xff326493L, 0xff33658cL, 0xff32658aL, 0xff7497aeL, 0xff587d98L,
+ 0xff2e6188L, 0xff36638dL, 0xff33658fL, 0xff33658bL, 0xff316494L, 0xff31648dL, 0xff7590a1L, 0xff6188a6L,
+ 0xff33648dL, 0xe294aebeL, 0xc9c2d0d9L, 0xff386080L, 0xff336390L, 0xff336390L, 0xff3f6987L, 0xff95b4c0L,
+ 0xff356085L, 0xff33648dL, 0xff33648cL, 0xff326590L, 0xff33658fL, 0xff4b708aL, 0xff91acbbL, 0xff356286L,
+ 0xff356189L, 0xcfadbdc5L, 0x58f1f2f4L, 0xf88ea9b5L, 0xff386889L, 0xff336283L, 0xff396284L, 0xfb92a4b3L,
+ 0xec87a4aeL, 0xff366786L, 0xff316183L, 0xff386485L, 0xff6b8ea1L, 0xff94b7c5L, 0xff346483L, 0xff3a6685L,
+ 0xe991a6b8L, 0x32f8fbfbL, 0x0L , 0x16fafafaL, 0x90e1eaeeL, 0x8dd9e1e6L, 0x71e5ebeeL, 0x35f6f9fbL,
+ 0x1cf6f7f8L, 0x94dce6ebL, 0x8dd2dce2L, 0x74e4eff1L, 0x65e9f1f4L, 0xd9a7b6c0L, 0xe9a8b9c3L, 0x81dee6eaL,
+ 0x13fefefeL, 0x0L , 0xfffL , 0x7feL , 0x7feL , 0x7f8L , 0x1c0L , 0x80L ,
+ 0x300L , 0x100L , 0x100L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x180L
+END
+
+/* Name: 5. */
+
+5 3 /* RT_ICON */
+BEGIN
+ 0x28L , 0x20L , 0x40L , 0x200001L , 0x0L , 0x1080L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0xb3e0e6e8L, 0xffc7d7ddL, 0xff6a8299L, 0xff547189L, 0xff6a859aL, 0xff94aabbL,
+ 0xbdd7e4ebL, 0x3ff6fafbL, 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0xd9cadadfL, 0xff708b9cL, 0xff325a7eL, 0xff315f86L, 0xff326084L, 0xff365f80L,
+ 0xfb718da1L, 0xbdd5e0e5L, 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0xe6b1c8d0L, 0xff42667eL, 0xff326591L, 0xff30648fL, 0xff316691L, 0xff316691L,
+ 0xff3b6484L, 0xff9cafbeL, 0x58f5f5f6L, 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x19fbfdfeL, 0xff9cb7c1L, 0xff40647cL, 0xff326490L, 0xff346188L, 0xff34658cL, 0xff2f6894L,
+ 0xff326084L, 0xff7d97aaL, 0xaadde1e4L, 0x6ffffffL , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x3ff1f4f5L, 0xff8daabcL, 0xff396185L, 0xff31668aL, 0xff31638dL, 0xff32668bL, 0xff2f688cL,
+ 0xff32608dL, 0xff6789a5L, 0xb3d9e3e4L, 0x9fdfdfdL , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x7ee9eeefL, 0xff88a6bbL, 0xff365f8bL, 0xff2f6789L, 0xff2f6693L, 0xff2f678dL, 0xff2f6889L,
+ 0xff336090L, 0xff5c7fa1L, 0xa0e1ecebL, 0x3fefefeL , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0xcffffffL , 0x1cffffffL, 0x9ffffffL ,
+ 0x9ffffffL , 0xb3cdd2d3L, 0xff86a3b8L, 0xff37608eL, 0xff2e658dL, 0xff306695L, 0xff2f678dL, 0xff2f698aL,
+ 0xff336091L, 0xff4f7393L, 0x8de8f3f8L, 0xffcfcfdL , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x1ff8f9f9L, 0x9ddfe1e3L, 0xc6d7dbddL, 0xb3dcdfe0L,
+ 0x29ffffffL, 0xd3c6cccbL, 0xff86a4b7L, 0xff375f8fL, 0xff306792L, 0xff2f6596L, 0xff2f678dL, 0xff2e6889L,
+ 0xff325f90L, 0xff486c8cL, 0xecd6e1ecL, 0x6eededf1L, 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0xffafafbL , 0x3cf6f6faL,
+ 0x81e5e8ecL, 0x5bedeff0L, 0x6f9fafaL , 0x77e3e2e4L, 0x6ee4e8ebL, 0xf8bbc4ccL, 0xffa2b3b9L, 0xe6b3cad1L,
+ 0xe6cdd7dcL, 0xffc5cecdL, 0xff809fb2L, 0xff375e90L, 0xff306696L, 0xff306597L, 0xff2f678dL, 0xff2e6889L,
+ 0xff366393L, 0xff426687L, 0xf5ced8dfL, 0x58eeeff1L, 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x48edeff1L, 0xd9c9d7e5L,
+ 0xff6b869dL, 0xf2859caeL, 0x45f1f5f7L, 0x77e7e7e8L, 0xccdee5e8L, 0xffbcc6caL, 0xff889aa4L, 0xff526d7cL,
+ 0xff708992L, 0xffcee1e4L, 0xff829bb1L, 0xff3b5d86L, 0xff336594L, 0xff306790L, 0xff2e688bL, 0xff2e688cL,
+ 0xff31628bL, 0xff3b6384L, 0xd6cbd9e1L, 0x84eaf3f6L, 0xaadeecf6L, 0x9de5f3fbL, 0x5ef4fbfdL, 0x2cf9fbfbL,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x9ffffffL , 0x5beeeff1L, 0xccd2dde5L, 0xff658298L,
+ 0xff306085L, 0xff376183L, 0xdfa5b8c3L, 0x48eef5f8L, 0x1ff7f7f7L, 0x90d9dcddL, 0xecd4dddfL, 0xffb9cad2L,
+ 0xff47636bL, 0xff859fa9L, 0xff869eb7L, 0xff3b5e82L, 0xff346591L, 0xff30678cL, 0xff2e688bL, 0xff2e6890L,
+ 0xff306289L, 0xff366184L, 0xffb8cad9L, 0xff91a1afL, 0xff4e6478L, 0xff607586L, 0xff869299L, 0xffabafb3L,
+ 0x74ececefL, 0xff7f8faL , 0x0L , 0x0L , 0x16fbfbfbL, 0xa7e1e6e8L, 0xf29cb4c6L, 0xff3e6584L,
+ 0xff2c638dL, 0xff32658dL, 0xff4f6e87L, 0xd9b1c6d2L, 0x3ff0f7f9L, 0xcf9f9f9L , 0x7ae4e6e6L, 0xffdde4e5L,
+ 0xffacc3c7L, 0xffb5d0d8L, 0xff607f9eL, 0xff385f87L, 0xff346591L, 0xff32668cL, 0xff30668dL, 0xff2e6791L,
+ 0xff32658eL, 0xff335f83L, 0xffa0b7c5L, 0xffb6c8d0L, 0xff8ea0acL, 0xccbac8d0L, 0x8dc8cfd4L, 0x8dc6c9ceL,
+ 0x7bdde1e3L, 0x2fe6e9edL, 0x0L , 0x6ffffffL , 0x87eaecedL, 0xeccfdddfL, 0xff456c8aL, 0xff346489L,
+ 0xff2d6692L, 0xff2f6792L, 0xff356284L, 0xff49687cL, 0xf8c9dce5L, 0xbad4dfe3L, 0xc0b6c2c8L, 0xffbbccd4L,
+ 0xffcce2e4L, 0xff7794a1L, 0xff376088L, 0xff366391L, 0xff34648fL, 0xff36648dL, 0xff336590L, 0xff306594L,
+ 0xff306591L, 0xff336389L, 0xff506f81L, 0xffb5cad1L, 0x5eedf1f2L, 0x58e6e9e9L, 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x2cffffffL, 0xd3d0d5d9L, 0xec9eb0baL, 0xff345d7dL, 0xff356488L,
+ 0xff31648eL, 0xff316790L, 0xff316288L, 0xff6b8ca1L, 0xffc4dbe4L, 0xff758a98L, 0xff466274L, 0xff577c95L,
+ 0xffbfdcdfL, 0xff52707eL, 0xff366592L, 0xff316495L, 0xff34648fL, 0xff38628eL, 0xff356393L, 0xff306496L,
+ 0xff326896L, 0xff30648bL, 0xff638799L, 0xffd3e6e9L, 0xd6d2d9daL, 0xcfd9d8d8L, 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x6ffffffL , 0x7eececedL, 0xffc5d3dfL, 0xff67849bL, 0xff32648bL, 0xff30658fL,
+ 0xff316792L, 0xff33648bL, 0xff4a718eL, 0xffbdd5e0L, 0xff6e8ea3L, 0xff375f7eL, 0xff386385L, 0xff3a6385L,
+ 0xffb0cbdaL, 0xff83a4aeL, 0xff2d6186L, 0xff2f6499L, 0xff32648cL, 0xff366489L, 0xff326592L, 0xff2e6697L,
+ 0xff326694L, 0xff366188L, 0xffb0c8daL, 0xffc0d2d5L, 0xffc6d1d1L, 0xe6c8cdd4L, 0x3fecedefL, 0x0L ,
+ 0x0L , 0x0L , 0x19ffffffL, 0xc3d2d4d6L, 0xffbed3dfL, 0xff4a6d88L, 0xff306591L, 0xff2e6694L,
+ 0xff2e6692L, 0xff33638aL, 0xff6587a1L, 0xffc3d8e3L, 0xff43667eL, 0xff326287L, 0xff35658bL, 0xff365c80L,
+ 0xff819ab0L, 0xffabcad2L, 0xff2e6181L, 0xff306399L, 0xff32658cL, 0xff34648bL, 0xff316594L, 0xff2f6696L,
+ 0xff32638eL, 0xff4e7493L, 0xffc3d7e2L, 0xff73868aL, 0xffcbdcdcL, 0xff8c98a6L, 0x84ebf1f7L, 0x6fbfcfcL ,
+ 0x0L , 0x0L , 0x12ffffffL, 0xbcdfe5e9L, 0xff96b0c3L, 0xff3b6383L, 0xff316691L, 0xff2e6693L,
+ 0xff2e6693L, 0xff32638aL, 0xff6e91abL, 0xffb7cedcL, 0xff3a5f7aL, 0xff34658cL, 0xff31638cL, 0xff376185L,
+ 0xff58748fL, 0xffb0d1dbL, 0xff396583L, 0xff346396L, 0xff326590L, 0xff306393L, 0xff326498L, 0xff336490L,
+ 0xff376382L, 0xff88aebfL, 0xff7e98aeL, 0xff4c6672L, 0xffc8e0e4L, 0xff62758aL, 0xe2b5c4d2L, 0x3ff5fafaL,
+ 0x0L , 0x0L , 0x6fafbfbL , 0xb0e3edf3L, 0xff6c8ba3L, 0xff356387L, 0xff2f6590L, 0xff2d6592L,
+ 0xff2e6693L, 0xff33638aL, 0xff688ba6L, 0xffbdd6e4L, 0xff3b627eL, 0xff31638cL, 0xff316490L, 0xff37648aL,
+ 0xff4a6888L, 0xffa7c5d2L, 0xff436781L, 0xff376092L, 0xff316592L, 0xff2f6395L, 0xff336393L, 0xff396388L,
+ 0xff4f758cL, 0xffadd2dbL, 0xff476983L, 0xff4d6f7fL, 0xffc2e0e7L, 0xff57718cL, 0xfb768da4L, 0x8be4f0f3L,
+ 0x0L , 0x0L , 0x4bf4f6f7L, 0xf5d5e2eaL, 0xff456986L, 0xff30638dL, 0xff2f6590L, 0xff2c6491L,
+ 0xff2f6793L, 0xff33648bL, 0xff5b7e99L, 0xffc0dbe8L, 0xff3f6886L, 0xff30658fL, 0xff316694L, 0xff35638bL,
+ 0xff456487L, 0xffa6c2d0L, 0xff4d6a81L, 0xff3b5e8fL, 0xff316594L, 0xff2e6690L, 0xff356488L, 0xff3b607aL,
+ 0xff86a6b6L, 0xffa0c4d3L, 0xff345b7dL, 0xff588096L, 0xffb2d8e1L, 0xff4b6d8dL, 0xff4a6a86L, 0xd9b7cbd0L,
+ 0x12fefefeL, 0x0L , 0x3ff7faf9L, 0xe9b6c7d1L, 0xff355b81L, 0xff306590L, 0xff326591L, 0xff2f6592L,
+ 0xff2e6693L, 0xff31638aL, 0xff567c96L, 0xffc0d9e9L, 0xff456a89L, 0xff326289L, 0xff30628eL, 0xff31628cL,
+ 0xff496985L, 0xffa8c6d4L, 0xff446a88L, 0xff39618bL, 0xff35648dL, 0xff32668fL, 0xff386889L, 0xff3d627bL,
+ 0xffb4d3deL, 0xff7198abL, 0xff336284L, 0xff61879dL, 0xffb3d3dcL, 0xff406b88L, 0xff32627fL, 0xff7291a0L,
+ 0x5ef9fcfcL, 0x0L , 0x68eef5f2L, 0xf892a7b3L, 0xff355c86L, 0xff30658eL, 0xff346490L, 0xff306593L,
+ 0xff2e6692L, 0xff31648aL, 0xff5a829bL, 0xffc0dbe8L, 0xff42647cL, 0xff365f7cL, 0xff426c89L, 0xff5e839fL,
+ 0xff5e7c8aL, 0xffadcfdaL, 0xff386689L, 0xff35638dL, 0xff386290L, 0xff326492L, 0xff336388L, 0xff496e88L,
+ 0xffc2e0ebL, 0xff5c7a88L, 0xff38657dL, 0xff5b7d8cL, 0xffbbd6e0L, 0xff42718eL, 0xff2e6489L, 0xff426682L,
+ 0xbadbe5eaL, 0x1cf8fafaL, 0xdfdae4e1L, 0xff7c92a3L, 0xff37608cL, 0xff2f678eL, 0xff346590L, 0xff306593L,
+ 0xff2d6692L, 0xff31648aL, 0xff5c849eL, 0xffcae5eeL, 0xff628393L, 0xff3b5f72L, 0xff7292a0L, 0xffc2dae3L,
+ 0xff98b3b8L, 0xffacd0d7L, 0xff316085L, 0xff346393L, 0xff366296L, 0xff306494L, 0xff31648bL, 0xff456d89L,
+ 0xffc2dce5L, 0xff7d9098L, 0xff8fb3beL, 0xff5e7d83L, 0xffc9e2e9L, 0xff4f7a9cL, 0xff2f6392L, 0xff365c83L,
+ 0xe5b8cad3L, 0x3bf5fafaL, 0xffd2dfe1L, 0xff69819cL, 0xff356190L, 0xff2c688dL, 0xff336490L, 0xff306593L,
+ 0xff2e6692L, 0xff31648aL, 0xff5a819aL, 0xffcfe6eeL, 0xffbfdce5L, 0xffaeced9L, 0xff96b3baL, 0xffa1b5baL,
+ 0xffc0dbe1L, 0xff7ea4b6L, 0xff2f6088L, 0xff316492L, 0xff336493L, 0xff306391L, 0xff31658eL, 0xff356285L,
+ 0xff94b5c6L, 0xffbfd5d9L, 0xffa0bec5L, 0xff879ea2L, 0xffd2e5ebL, 0xff5984a5L, 0xff306497L, 0xff335e8cL,
+ 0xf888a6b7L, 0x6ee6eff1L, 0xffd1dfe4L, 0xff5b7595L, 0xff356394L, 0xff2d6b8eL, 0xff336590L, 0xff306593L,
+ 0xff2e6793L, 0xff32658cL, 0xff547b94L, 0xffc5d9e7L, 0xff668293L, 0xff7496aaL, 0xff98bacdL, 0xff9fbccfL,
+ 0xff7493abL, 0xff42688aL, 0xff31658eL, 0xff30668fL, 0xff32668bL, 0xff33648bL, 0xff30658eL, 0xff30668dL,
+ 0xff41718fL, 0xff85a8b8L, 0xffb2cdd8L, 0xffc3d4dbL, 0xffdae9efL, 0xff5680a1L, 0xff2e6391L, 0xff32628dL,
+ 0xff6a8ea7L, 0x8de6f1f4L, 0xffcfdfe6L, 0xff587794L, 0xff366595L, 0xff2c6792L, 0xff33658dL, 0xff31658eL,
+ 0xff30668eL, 0xff326589L, 0xff446e8aL, 0xffbdd4e1L, 0xff68859dL, 0xff365e7eL, 0xff305f83L, 0xff2f5e83L,
+ 0xff386188L, 0xff38628dL, 0xff326690L, 0xff31668eL, 0xff326788L, 0xff346488L, 0xff32648fL, 0xff2e6797L,
+ 0xff2e6591L, 0xff316384L, 0xff3c5c75L, 0xff8396a5L, 0xffafc6d7L, 0xff3e698dL, 0xff31658dL, 0xff31638aL,
+ 0xff557e9aL, 0xc6d6e3e8L, 0xffcddfe6L, 0xff608598L, 0xff34638dL, 0xff306299L, 0xff34678cL, 0xff33658aL,
+ 0xff326489L, 0xff33658aL, 0xff366588L, 0xff96b7c5L, 0xff8bafc3L, 0xff366281L, 0xff2f648bL, 0xff2b648fL,
+ 0xff326591L, 0xff34648fL, 0xff34658fL, 0xff34658fL, 0xff34658fL, 0xff32658fL, 0xff326493L, 0xff326398L,
+ 0xff326394L, 0xff31658cL, 0xff59798aL, 0xffbad6dfL, 0xff638ca8L, 0xff34648cL, 0xff346590L, 0xff33648cL,
+ 0xff557c94L, 0xc6d0dde4L, 0xd3d8e3e7L, 0xf888a2b2L, 0xff365d7dL, 0xff32628cL, 0xff346491L, 0xff346491L,
+ 0xff32628fL, 0xff336390L, 0xff33628aL, 0xff5a7d8dL, 0xffbfe0e6L, 0xff53768bL, 0xff366185L, 0xff316392L,
+ 0xff31638fL, 0xff34658cL, 0xff33648dL, 0xff33648dL, 0xff33648dL, 0xff2f6593L, 0xff2f6696L, 0xff336490L,
+ 0xff376083L, 0xff3e647fL, 0xffb9d0d9L, 0xff92acbbL, 0xff355e7eL, 0xff32638bL, 0xff316492L, 0xff34638aL,
+ 0xff607d8eL, 0xc6d5dfe5L, 0x61ecf0f3L, 0xf8bdccd8L, 0xff405f77L, 0xff386382L, 0xff326390L, 0xff336390L,
+ 0xff346491L, 0xff336490L, 0xff34638dL, 0xff3c6277L, 0xffaecbd3L, 0xff94afbcL, 0xff375974L, 0xff356187L,
+ 0xff32648bL, 0xff34658cL, 0xff33648bL, 0xff32638aL, 0xff32638bL, 0xff336794L, 0xff336590L, 0xff376586L,
+ 0xff395e77L, 0xff7d9cadL, 0xffadc8d4L, 0xff4d6e84L, 0xff376383L, 0xff34648aL, 0xff36628bL, 0xff375c7dL,
+ 0xf890a4aeL, 0x81edf3f5L, 0x2cf5f6f7L, 0xb7e2e7ecL, 0xff8ea6b4L, 0xff3d677aL, 0xff316388L, 0xff33658bL,
+ 0xff32648bL, 0xff33668cL, 0xff34658bL, 0xff386084L, 0xff60798eL, 0xffc6d8e0L, 0xff77939eL, 0xff3d6779L,
+ 0xff326484L, 0xff33658aL, 0xff336589L, 0xff316387L, 0xff316387L, 0xff366087L, 0xff3a607fL, 0xff476f83L,
+ 0xff95bac7L, 0xffb4d5e2L, 0xff406a88L, 0xff326283L, 0xff356589L, 0xff386386L, 0xff446381L, 0xff8298acL,
+ 0x9deaf3f6L, 0x19fbfcfcL, 0x6ffffffL , 0x77eeeff1L, 0xecd0dee2L, 0xf89ebbc4L, 0xff497690L, 0xff35637fL,
+ 0xff325f7aL, 0xff33607bL, 0xff35607dL, 0xff456383L, 0xff697b8fL, 0xf2b9c6cfL, 0xbadaeaecL, 0xf88fadb4L,
+ 0xff436f88L, 0xff326281L, 0xff305f7eL, 0xff305f7eL, 0xff336181L, 0xff476b86L, 0xff7a99aaL, 0xffb0d0d9L,
+ 0xffa8cad5L, 0xff5d8296L, 0xff316180L, 0xff2e6282L, 0xff31607eL, 0xff4b6f88L, 0xf8a0b4c4L, 0xade0e9efL,
+ 0x12fcfdfdL, 0x0L , 0x0L , 0x0L , 0x6fafafaL , 0x52f0f1f1L, 0xd9dae9f0L, 0xecc4d5dbL,
+ 0xe2b7c8d1L, 0xe2b3c3ccL, 0xd9c2d1d9L, 0xb3dde3e6L, 0x71f0f5f9L, 0x64ecf1f4L, 0xcf8f9f9L , 0x5eeaecefL,
+ 0xdcd4e4ebL, 0xe9b4c8d3L, 0xe2a4b9c4L, 0xe2a9bdc8L, 0xd3c0d4deL, 0xc0d7ebecL, 0x87ebfbfaL, 0xd3c7d6ddL,
+ 0xff798b99L, 0xff6c8697L, 0xff7191a1L, 0xec86a2aeL, 0xe2b0c2cbL, 0xc3dce7eaL, 0x45fbfdfdL, 0x6fefefeL ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x3bf3f5f7L, 0x42f4f5f6L,
+ 0x38fcfdfeL, 0x38fcfdfeL, 0x2ff9fafcL, 0x9fefefeL , 0x0L , 0x0L , 0x0L , 0x6f8f9f9L ,
+ 0x4bf1f2f3L, 0x3ff8fafaL, 0x38fcfefeL, 0x38fdfefeL, 0x29fdfefeL, 0x16fbfdfcL, 0x3fcfdfeL , 0x35f5f7f9L,
+ 0x87e8ecf0L, 0xdfd0dae0L, 0xffcbd2d9L, 0xb9dde0e5L, 0x38f7f9fcL, 0x25f6f7f8L, 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0xff00ffffL, 0xff00ffffL, 0x7f00ffffL, 0x3f00feffL, 0x3f00feffL, 0x3f00feffL,
+ 0x3f00e0ffL, 0x3f00c0ffL, 0x3f0000f0L, 0x30000f0L , 0xc0L , 0xc0L , 0xf000080L , 0xf000080L ,
+ 0x7000000L , 0x3000000L , 0x3000000L , 0x3000000L , 0x1000000L , 0x1000000L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x1000000L ,
+ 0x30000c0L , 0xf0038f0L
+END
+
+/* Name: 6. */
+
+6 3 /* RT_ICON */
+BEGIN
+ 0x28L , 0x30L , 0x60L , 0x200001L , 0x0L , 0x2580L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x55f7f7f8L, 0xffcfdadbL, 0xffe8f5f9L, 0xff96a9bbL, 0xff647991L, 0xff667e91L,
+ 0xff7d92a3L, 0xff9bb0bfL, 0xffd2e1ecL, 0xc7e9f5f9L, 0x55f7fbfcL, 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0xffc5ced0L, 0xffe0f2f8L, 0xff738b9cL, 0xff33526fL, 0xff34587bL, 0xff345c7cL,
+ 0xff335a79L, 0xff325673L, 0xff43627aL, 0xff8fa7b7L, 0xe3e3f2f9L, 0x55f0f3f5L, 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0xaadeedf0L, 0xff9fb7c1L, 0xff3c5c74L, 0xff325c80L, 0xff32618eL, 0xff30638bL,
+ 0xff30638bL, 0xff35668dL, 0xff325e80L, 0xff355874L, 0xff95acbdL, 0xc7e4eceeL, 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0xc7e1f3f8L, 0xff668291L, 0xff335975L, 0xff35668fL, 0xff306595L, 0xff31658fL,
+ 0xff316691L, 0xff316793L, 0xff32668fL, 0xff356183L, 0xff506e85L, 0xffcfdbe4L, 0x55f9f9faL, 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0xffcde3e9L, 0xff547284L, 0xff375e7bL, 0xff336590L, 0xff2d6294L, 0xff336288L,
+ 0xff33668eL, 0xff316893L, 0xff2f6794L, 0xff33648bL, 0xff3e617cL, 0xffb1c3d0L, 0xe3dee1e3L, 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x39f7fbfeL, 0xffbfd9e0L, 0xff4b6a7aL, 0xff3a617dL, 0xff33648eL, 0xff326596L, 0xff39607fL,
+ 0xff386487L, 0xff326792L, 0xff2f6997L, 0xff31648cL, 0xff305774L, 0xff9aafbeL, 0xffc5cbd1L, 0x1dffffffL,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x55ecf0f2L, 0xffb5d0daL, 0xff43647eL, 0xff396287L, 0xff34678dL, 0xff2e658aL, 0xff35618bL,
+ 0xff35658bL, 0xff31688bL, 0xff2f6891L, 0xff326491L, 0xff30587fL, 0xff88a5b9L, 0xffcad6daL, 0x1dfcfcfcL,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x72e7edefL, 0xffb0ccdaL, 0xff3e6185L, 0xff305d8bL, 0xff30678bL, 0xff2d6982L, 0xff30649bL,
+ 0xff2f6691L, 0xff2e6986L, 0xff2f688aL, 0xff356596L, 0xff315889L, 0xff789bb5L, 0xffc8d9d9L, 0x1df9f9f9L,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0xe3dae2e3L, 0xffadc8d5L, 0xff3d6084L, 0xff346190L, 0xff2f658cL, 0xff2f6a88L, 0xff31659aL,
+ 0xff306690L, 0xff2e6987L, 0xff30688cL, 0xff346494L, 0xff335989L, 0xff6e8fa9L, 0xe3d9e9e7L, 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0xffb9c1c2L, 0xffadc8d4L, 0xff3b5d83L, 0xff366294L, 0xff2d628cL, 0xff2f6a8bL, 0xff31659aL,
+ 0xff306690L, 0xff2e6987L, 0xff30698cL, 0xff336394L, 0xff355b8bL, 0xff5f819aL, 0xaae1f2f6L, 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x39ffffffL, 0x55ffffffL, 0x55ffffffL, 0x0L , 0x0L ,
+ 0x55ffffffL, 0xffaab3b3L, 0xffa9c5d0L, 0xff3c5e83L, 0xff356094L, 0xff316693L, 0xff2f698eL, 0xff306499L,
+ 0xff306690L, 0xff2e6987L, 0xff30698cL, 0xff346595L, 0xff335989L, 0xff5a7d94L, 0xe3e1f2fcL, 0x8ee6e6edL,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x8ee1e4e8L, 0xffc6cacdL, 0xffc7cdd0L, 0xffbfc5c7L, 0xffd1d6d7L, 0x0L ,
+ 0x8effffffL, 0xffaab4b2L, 0xffadc9d2L, 0xff3b5d84L, 0xff356096L, 0xff316695L, 0xff306991L, 0xff30649aL,
+ 0xff306690L, 0xff2e6987L, 0xff2f688bL, 0xff316192L, 0xff355c8bL, 0xff4f728bL, 0xffdbeaf5L, 0xffbbbccbL,
+ 0x55ffffffL, 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x39f7f9fcL, 0x55f3f6f8L, 0x0L , 0x0L , 0x0L ,
+ 0xaad6d5d8L, 0x1debedf0L, 0xe3dfe5eaL, 0xffdae4ecL, 0xffc9d7dbL, 0xffd4e6ebL, 0xc7e7fcffL, 0xc7ebf5faL,
+ 0xffb1b4b6L, 0xffafbab7L, 0xffa7c4cdL, 0xff3b5d84L, 0xff356096L, 0xff316597L, 0xff306993L, 0xff30649aL,
+ 0xff306690L, 0xff2e6987L, 0xff2f688bL, 0xff346494L, 0xff3b6292L, 0xff486b84L, 0xffd0dfe9L, 0xffc7c8d1L,
+ 0x1dffffffL, 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x8edad9e1L, 0xc7eaebf8L, 0xffd0d3d9L, 0xffb2b5baL, 0xc7e2e5e6L, 0x1de8e9eaL, 0x0L ,
+ 0xc7d5d3d4L, 0x55fcfeffL, 0xffa7aeb4L, 0xff66727bL, 0xff52656eL, 0xff47606bL, 0xff64828eL, 0xff9fb1baL,
+ 0xffeff5f5L, 0xfff3fffdL, 0xff9db8c2L, 0xff3c5d84L, 0xff355f96L, 0xff316598L, 0xff306894L, 0xff306499L,
+ 0xff306690L, 0xff2e6987L, 0xff2f688bL, 0xff346494L, 0xff39618fL, 0xff43657fL, 0xffc9d9dbL, 0xaadee1dfL,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x1dedededL, 0xc7e7f0f3L, 0xffa7c2d7L, 0xff456b8bL, 0xff30597aL, 0xff7693a9L, 0x8eebf5f9L, 0x0L ,
+ 0xaadee1e2L, 0xe3dae3e6L, 0xffe5eff0L, 0xffd9e3e6L, 0xffbcccd3L, 0xff778c99L, 0xff3a576aL, 0xff385764L,
+ 0xff759196L, 0xffe1f6fcL, 0xffa7bcd0L, 0xff425b79L, 0xff3c5f87L, 0xff366492L, 0xff316795L, 0xff306989L,
+ 0xff2e6989L, 0xff2d698dL, 0xff2f688fL, 0xff2c6289L, 0xff366488L, 0xff3c6282L, 0xffb3c5d7L, 0x72f7ffffL,
+ 0xc7ddedf4L, 0xffcde2f1L, 0xffd0e7f5L, 0xe3ddf2fcL, 0xaaedf9feL, 0x55f4f9faL, 0x39f9f9faL, 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x39f7f8f9L,
+ 0xaae3e7ecL, 0xffc9d9e2L, 0xff486982L, 0xff305d81L, 0xff336288L, 0xff3e627fL, 0xffabbbc6L, 0x72ecf9fcL,
+ 0x0L , 0x0L , 0x8edbdddfL, 0xffbdc2c3L, 0xffced8daL, 0xffe5f6fcL, 0xff8ba1aeL, 0xff3f5c65L,
+ 0xff325056L, 0xffacc4d0L, 0xffb1c6daL, 0xff405a7aL, 0xff3b6085L, 0xff366491L, 0xff326694L, 0xff306988L,
+ 0xff2e698aL, 0xff2d688fL, 0xff2f6891L, 0xff2e638bL, 0xff366489L, 0xff396082L, 0xffa9bdd0L, 0xffe0eaf3L,
+ 0xff728595L, 0xff576d82L, 0xff546b81L, 0xff627788L, 0xff818f98L, 0xffa3acb0L, 0xffced1d5L, 0x72f8f8fbL,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x55ffffffL, 0xffc3c6ceL,
+ 0xc7ecf9ffL, 0xff6f889cL, 0xff365d7cL, 0xff306289L, 0xff30658eL, 0xff345f81L, 0xff4e697eL, 0xffb5cad7L,
+ 0x55ebf5f8L, 0x0L , 0x0L , 0x0L , 0xaadbdcdcL, 0xffbcc2c4L, 0xffe9f4f8L, 0xff768e94L,
+ 0xff39575dL, 0xffb0cbd5L, 0xff9cb6ceL, 0xff3b5a7cL, 0xff396189L, 0xff366591L, 0xff326793L, 0xff316789L,
+ 0xff30688bL, 0xff2e688fL, 0xff2e6890L, 0xff2d628aL, 0xff326187L, 0xff366082L, 0xff9cb3c5L, 0xffe0eef5L,
+ 0xff5b6d7cL, 0xff384d5eL, 0xff516778L, 0xff728391L, 0xff7d8890L, 0xff798185L, 0xff86888bL, 0xffbdbfc1L,
+ 0x55f4f7fcL, 0x1de4e6ebL, 0x0L , 0x0L , 0x0L , 0x0L , 0x39eff0f0L, 0xc7e3ecedL,
+ 0xffb0c8daL, 0xff3d5e7aL, 0xff376589L, 0xff2b628dL, 0xff2b6593L, 0xff376990L, 0xff355a79L, 0xff547188L,
+ 0xffc3d9e4L, 0x72ecf9fdL, 0x39e5e7e8L, 0x0L , 0x0L , 0xffcdd0d0L, 0xffe8eff0L, 0xffddeef1L,
+ 0xffbdd9dbL, 0xffd3eef8L, 0xff61809eL, 0xff385c82L, 0xff38618cL, 0xff366591L, 0xff336691L, 0xff34668bL,
+ 0xff32668cL, 0xff306690L, 0xff2f6893L, 0xff346994L, 0xff35658bL, 0xff325d80L, 0xff708da1L, 0xffe4f5f9L,
+ 0xffc3d6deL, 0xffa9bac6L, 0xffcedce4L, 0x8ef0fafdL, 0x55f2f9fbL, 0x55e9edf4L, 0x55e8eaefL, 0x72dfe3e4L,
+ 0x1df1f6f9L, 0x39dee2e6L, 0x0L , 0x0L , 0x0L , 0x39ffffffL, 0xffcacfceL, 0xe3e6f4f3L,
+ 0xff5b7e99L, 0xff325c7fL, 0xff35678eL, 0xff2c6591L, 0xff2c6795L, 0xff306791L, 0xff366589L, 0xff3b5f79L,
+ 0xff536e7fL, 0xffc1d6e0L, 0xe3d6e3e7L, 0x72ebefefL, 0x72f1f7f9L, 0xffd2dbe0L, 0xffe4f0f4L, 0xffe6f8faL,
+ 0xffb7d1d3L, 0xff7d9bacL, 0xff365b7fL, 0xff39638fL, 0xff376391L, 0xff356490L, 0xff346590L, 0xff36658dL,
+ 0xff34658eL, 0xff326692L, 0xff306694L, 0xff2f6591L, 0xff34668eL, 0xff346286L, 0xff406177L, 0xff7a919bL,
+ 0xffd4e7ecL, 0x1dfeffffL, 0xaad5dadcL, 0x1df4f6f6L, 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x1dffffffL, 0x8ee4e5e5L, 0xc7e3f0f5L, 0xffa0b5bdL,
+ 0xff335b79L, 0xff39668aL, 0xff34658cL, 0xff326792L, 0xff306793L, 0xff316791L, 0xff31658fL, 0xff335b78L,
+ 0xff506c7eL, 0xffbfd7e1L, 0xffe5f8feL, 0xff9fb1bdL, 0xff5e737eL, 0xff425c6cL, 0xff90adbfL, 0xffe2fcfeL,
+ 0xff627b7eL, 0xff37586bL, 0xff3a668eL, 0xff336394L, 0xff336494L, 0xff346590L, 0xff36648dL, 0xff38638eL,
+ 0xff366491L, 0xff326595L, 0xff306596L, 0xff316796L, 0xff326690L, 0xff33648aL, 0xff395f76L, 0xff6d8993L,
+ 0xffdaedf2L, 0xaae5eff0L, 0x39ebeff0L, 0x8edbdbdcL, 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x55ffffffL, 0xffb2b3b9L, 0xc7f2fdffL, 0xff627889L,
+ 0xff325978L, 0xff3a6688L, 0xff346286L, 0xff32638bL, 0xff31658eL, 0xff336890L, 0xff2d628bL, 0xff3b6584L,
+ 0xffa0bdcdL, 0xffe2faffL, 0xff7f96a4L, 0xff405767L, 0xff436072L, 0xff375b73L, 0xff517e9cL, 0xffd7f9ffL,
+ 0xff9db3b3L, 0xff37596eL, 0xff3a6893L, 0xff2f6396L, 0xff316596L, 0xff336590L, 0xff37648dL, 0xff3b618fL,
+ 0xff386292L, 0xff336496L, 0xff306598L, 0xff346a99L, 0xff336993L, 0xff2e6188L, 0xff467188L, 0xffc2dee2L,
+ 0xfff2ffffL, 0xffc1cbccL, 0xffd8d7d5L, 0xffd6d3d3L, 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x8ef1f1f2L, 0xffc4cbd6L, 0xffc9dcebL, 0xff45627bL,
+ 0xff346387L, 0xff33648bL, 0xff32668eL, 0xff336893L, 0xff31668fL, 0xff34648bL, 0xff305d80L, 0xff6b8ba3L,
+ 0xffdef3faL, 0xff9ebacbL, 0xff3c5f77L, 0xff3a5f7cL, 0xff3d6685L, 0xff396283L, 0xff3f698cL, 0xffb0cee2L,
+ 0xffd4ebecL, 0xff486e7eL, 0xff2f6183L, 0xff306597L, 0xff2f649aL, 0xff32648fL, 0xff366587L, 0xff38638cL,
+ 0xff366491L, 0xff306596L, 0xff2e6698L, 0xff346a9bL, 0xff31638eL, 0xff315c82L, 0xff86a4bfL, 0xffe1f6fbL,
+ 0xffd2e4e6L, 0xffd8e4e2L, 0xffa1a6a8L, 0xc7f1f2f7L, 0x39e2e3e5L, 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x39ffffffL, 0xffc6c9cbL, 0xffdff1f7L, 0xff91adbfL, 0xff385c79L,
+ 0xff326792L, 0xff2f6694L, 0xff2d6795L, 0xff2e6895L, 0xff2f658fL, 0xff366489L, 0xff365d7bL, 0xff9fb6c6L,
+ 0xffe0f3faL, 0xff607f93L, 0xff315e7cL, 0xff31638bL, 0xff2f6189L, 0xff396389L, 0xff35587bL, 0xff758da7L,
+ 0xffe5feffL, 0xff78a0a9L, 0xff295e75L, 0xff2f6595L, 0xff2f639eL, 0xff316490L, 0xff346782L, 0xff35658cL,
+ 0xff326691L, 0xff2e6796L, 0xff2d6799L, 0xff2e6394L, 0xff36628cL, 0xff486c8fL, 0xffccdff3L, 0xffc3d3daL,
+ 0xff7a8c8bL, 0xffe8f8f3L, 0xff88959dL, 0xffbfc7d6L, 0xaae5eaeeL, 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x55ffffffL, 0xffb7bbbeL, 0xffe4f6feL, 0xff68859dL, 0xff345b79L,
+ 0xff31658fL, 0xff306693L, 0xff2e6794L, 0xff2e6794L, 0xff2e638eL, 0xff366489L, 0xff406786L, 0xffc1daebL,
+ 0xffc0d3dcL, 0xff406075L, 0xff35607fL, 0xff33658cL, 0xff35678eL, 0xff3b668cL, 0xff34597cL, 0xff496480L,
+ 0xffcde4f2L, 0xffa6c7ccL, 0xff30617aL, 0xff316392L, 0xff31649dL, 0xff326692L, 0xff326684L, 0xff356392L,
+ 0xff326595L, 0xff306597L, 0xff306696L, 0xff356893L, 0xff325d81L, 0xff658aa1L, 0xffe3f9ffL, 0xff7b8d9fL,
+ 0xff586d6dL, 0xffe4f7f4L, 0xff9faeb7L, 0xff6a7789L, 0xc7e6f1fbL, 0x1df1f3f4L, 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x55ffffffL, 0xffcbd3d7L, 0xffd1e6f3L, 0xff43657fL, 0xff3a6384L,
+ 0xff326791L, 0xff306692L, 0xff2e6794L, 0xff2e6895L, 0xff2f648fL, 0xff356389L, 0xff446b8aL, 0xffc7e0f3L,
+ 0xffaec4cfL, 0xff3d5e74L, 0xff376384L, 0xff346790L, 0xff30648dL, 0xff366289L, 0xff365e81L, 0xff3a5776L,
+ 0xffa1bccaL, 0xffbce2e7L, 0xff3b687fL, 0xff31608dL, 0xff35659dL, 0xff346794L, 0xff2f6486L, 0xff326399L,
+ 0xff32649aL, 0xff326597L, 0xff316490L, 0xff336387L, 0xff345f7bL, 0xff9fc4d2L, 0xffb5cfe2L, 0xff435a71L,
+ 0xff516b6eL, 0xffd8f0f0L, 0xffabbfc9L, 0xff42526aL, 0xffb4c3d6L, 0x8eebf4f3L, 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0xffdbe6eeL, 0xffa3bbceL, 0xff395e7bL, 0xff39678bL,
+ 0xff316690L, 0xff2f6592L, 0xff2d6693L, 0xff2f6895L, 0xff306590L, 0xff346388L, 0xff416887L, 0xffc3ddeeL,
+ 0xffb5ccd8L, 0xff3c5f77L, 0xff346284L, 0xff326590L, 0xff2e628dL, 0xff37658eL, 0xff3b6488L, 0xff3a5778L,
+ 0xff7a95acL, 0xffc3e5edL, 0xff426a7eL, 0xff345f89L, 0xff366499L, 0xff336695L, 0xff30658bL, 0xff31639cL,
+ 0xff326499L, 0xff356393L, 0xff37648bL, 0xff335c7bL, 0xff557d92L, 0xffc8edf5L, 0xff6d8ca2L, 0xff3b5773L,
+ 0xff54737bL, 0xffdef9fbL, 0xff9db5c4L, 0xff3f5470L, 0xff6d809aL, 0xe3dff0f5L, 0x1dfafcfcL, 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x1debedeeL, 0xffdeedf7L, 0xff7a95abL, 0xff355e7eL, 0xff33658dL,
+ 0xff30658fL, 0xff2e6591L, 0xff2d6592L, 0xff2e6795L, 0xff306590L, 0xff356388L, 0xff3c6483L, 0xffbad5e7L,
+ 0xffc3dbe6L, 0xff40647dL, 0xff346386L, 0xff2f6491L, 0xff306693L, 0xff34648eL, 0xff386489L, 0xff3a5a7eL,
+ 0xff66819aL, 0xffc6e5ebL, 0xff4d6f80L, 0xff385c86L, 0xff386198L, 0xff326495L, 0xff316690L, 0xff2e6398L,
+ 0xff326395L, 0xff38648dL, 0xff3c6383L, 0xff375c74L, 0xff98bccbL, 0xffc0e5eaL, 0xff40657eL, 0xff375978L,
+ 0xff5b7e89L, 0xffdbfbfdL, 0xff8aa8bbL, 0xff3a5576L, 0xff445d7bL, 0xffb2ccd8L, 0x72f4fcfcL, 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0xe3e1e4e7L, 0xffdbebf4L, 0xff57758dL, 0xff336084L, 0xff2f6590L,
+ 0xff306590L, 0xff2e6591L, 0xff2c6592L, 0xff2f6895L, 0xff316691L, 0xff356489L, 0xff385f7eL, 0xffaac6d9L,
+ 0xffcbe5f0L, 0xff456a84L, 0xff2e6084L, 0xff326996L, 0xff316896L, 0xff336490L, 0xff366288L, 0xff36577dL,
+ 0xff617b97L, 0xffc8e5ecL, 0xff567382L, 0xff3c5b83L, 0xff3b6097L, 0xff326496L, 0xff2e6791L, 0xff2d6491L,
+ 0xff32638dL, 0xff3a6586L, 0xff3d6079L, 0xff4c6c82L, 0xffcdeefaL, 0xff9cc2cfL, 0xff345a79L, 0xff365b7eL,
+ 0xff68909eL, 0xffd7feffL, 0xff7194abL, 0xff3d5c81L, 0xff3c5a7bL, 0xff7897a7L, 0xaaf2fdfbL, 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0xe3dee4e8L, 0xffbbcddcL, 0xff3e5f7aL, 0xff316188L, 0xff2f6794L,
+ 0xff326792L, 0xff2e6490L, 0xff2c6592L, 0xff2f6895L, 0xff316691L, 0xff366489L, 0xff325978L, 0xff9ebbcdL,
+ 0xffd2edf6L, 0xff4b708cL, 0xff316288L, 0xff2e6593L, 0xff306796L, 0xff336592L, 0xff36648cL, 0xff375980L,
+ 0xff66839fL, 0xffc8e4ebL, 0xff55707fL, 0xff3f5b82L, 0xff3c6095L, 0xff336496L, 0xff2f6793L, 0xff306a8fL,
+ 0xff356888L, 0xff39647dL, 0xff3a5b6fL, 0xff8ba8b7L, 0xffdefcffL, 0xff60859eL, 0xff345e83L, 0xff315b80L,
+ 0xff719babL, 0xffd4fcffL, 0xff5e859dL, 0xff385c81L, 0xff3d5f82L, 0xff42677bL, 0xffbbd1d0L, 0x55fcfefcL,
+ 0x0L , 0x0L , 0x0L , 0xaaecf7f2L, 0xff8fa6b6L, 0xff33557cL, 0xff346490L, 0xff2f6690L,
+ 0xff356591L, 0xff326592L, 0xff306694L, 0xff2e6795L, 0xff2d648eL, 0xff326388L, 0xff325e7bL, 0xff9fbcd1L,
+ 0xffd0e7f6L, 0xff506f8cL, 0xff375f82L, 0xff326289L, 0xff30618cL, 0xff30618bL, 0xff30618cL, 0xff355875L,
+ 0xff7892a0L, 0xffc2e3f0L, 0xff46708fL, 0xff356287L, 0xff38648cL, 0xff38648aL, 0xff38638aL, 0xff316792L,
+ 0xff396c92L, 0xff396282L, 0xff43657fL, 0xffbad9e3L, 0xffbce0ebL, 0xff3a657dL, 0xff356889L, 0xff2f5e7fL,
+ 0xff7e9dadL, 0xffe3fbffL, 0xff5f8395L, 0xff2d6280L, 0xff2f6685L, 0xff295c76L, 0xff8098a8L, 0xaaf4f9fbL,
+ 0x0L , 0x0L , 0x0L , 0xe3e0f0eaL, 0xff768c9fL, 0xff33567fL, 0xff356491L, 0xff2d648cL,
+ 0xff356490L, 0xff326592L, 0xff306694L, 0xff2e6795L, 0xff2f6690L, 0xff346589L, 0xff35627eL, 0xffa5c3d7L,
+ 0xffcfe7f3L, 0xff4c6d84L, 0xff365c79L, 0xff346082L, 0xff336081L, 0xff376384L, 0xff386182L, 0xff325167L,
+ 0xff8da8b4L, 0xffbde1eeL, 0xff3e6a8cL, 0xff336389L, 0xff37648eL, 0xff38638eL, 0xff39638eL, 0xff316694L,
+ 0xff33668dL, 0xff345d7dL, 0xff50728aL, 0xffd1f0feL, 0xffa3c1cbL, 0xff365a6cL, 0xff31607bL, 0xff2d5c78L,
+ 0xff7894a1L, 0xffe1f8feL, 0xff678a9eL, 0xff2e6384L, 0xff30688bL, 0xff2a5e7dL, 0xff557087L, 0xe3deeaf0L,
+ 0x1df3f5f5L, 0x0L , 0x72e9eeeaL, 0xffd5e5e3L, 0xff5d758cL, 0xff395c86L, 0xff366793L, 0xff2e688eL,
+ 0xff356590L, 0xff326592L, 0xff306694L, 0xff2e6794L, 0xff2d648eL, 0xff326387L, 0xff34617eL, 0xffa4c3d5L,
+ 0xffcfe8efL, 0xff406073L, 0xff3b6076L, 0xff3b627aL, 0xff476c81L, 0xff90b1c3L, 0xffb8d4e3L, 0xff66828dL,
+ 0xffa6c4c4L, 0xffb4dae4L, 0xff366385L, 0xff33638dL, 0xff356392L, 0xff376394L, 0xff386294L, 0xff2d6493L,
+ 0xff30648dL, 0xff376183L, 0xff5b7e95L, 0xffdcfaffL, 0xff98b1bbL, 0xff445b66L, 0xff557c8cL, 0xff376476L,
+ 0xff658085L, 0xffe3fbffL, 0xff7e9fb5L, 0xff2b5d82L, 0xff306590L, 0xff32648eL, 0xff3e5c7aL, 0xffbcccd6L,
+ 0xc7e0e8e7L, 0x0L , 0xffdce3deL, 0xffcbdce0L, 0xff4e6782L, 0xff3a5f8bL, 0xff316491L, 0xff2e698dL,
+ 0xff356590L, 0xff326592L, 0xff306694L, 0xff2e6794L, 0xff2e6690L, 0xff346589L, 0xff376381L, 0xffadcdddL,
+ 0xffe0fafeL, 0xff88a8b6L, 0xff4d6e7fL, 0xff345667L, 0xff5b7b88L, 0xffbed8e0L, 0xffd6e9edL, 0xff96aeb3L,
+ 0xffc8e6e8L, 0xff9cc3ceL, 0xff2d5c7fL, 0xff356691L, 0xff346396L, 0xff356397L, 0xff376297L, 0xff2e6695L,
+ 0xff316791L, 0xff336184L, 0xff486f89L, 0xffcce6f1L, 0xffadc2caL, 0xff7c8b91L, 0xffcdeaf0L, 0xff7ca7b0L,
+ 0xff566e6fL, 0xffe5f9f9L, 0xff9ebdd1L, 0xff2e5f89L, 0xff2d6293L, 0xff346696L, 0xff35577cL, 0xff96adbdL,
+ 0xaae4f4f5L, 0x0L , 0xffdde6e4L, 0xffbed1d9L, 0xff466082L, 0xff3a5f8fL, 0xff2e6490L, 0xff2a688aL,
+ 0xff346490L, 0xff326592L, 0xff306694L, 0xff2e6895L, 0xff2d648eL, 0xff346589L, 0xff376380L, 0xffa8c6d7L,
+ 0xffeaffffL, 0xffdefaffL, 0xffc1e1ebL, 0xff91b0bdL, 0xff708e98L, 0xff7c9499L, 0xff849498L, 0xffb3c9ccL,
+ 0xffddfeffL, 0xff6d95aaL, 0xff2c5c81L, 0xff326591L, 0xff326495L, 0xff346495L, 0xff356395L, 0xff2f6593L,
+ 0xff306690L, 0xff34648aL, 0xff37607fL, 0xff93b4c6L, 0xffdef6fbL, 0xffa3b3b6L, 0xff9cb8beL, 0xff6f949dL,
+ 0xff5d7071L, 0xffdfeff0L, 0xffadcad8L, 0xff2f608bL, 0xff306599L, 0xff316297L, 0xff315882L, 0xff6a8a9fL,
+ 0xe3e0f5f8L, 0x1de9ebebL, 0xffe9f4f3L, 0xffa5b9c5L, 0xff3e5a7fL, 0xff375f92L, 0xff306893L, 0xff2c6c8dL,
+ 0xff346590L, 0xff326592L, 0xff306694L, 0xff2f6895L, 0xff2e6690L, 0xff326488L, 0xff2f5c79L, 0xffa1becfL,
+ 0xffd7ecf4L, 0xff87a2afL, 0xffb5d3e0L, 0xffd5f5fdL, 0xffdcfcffL, 0xffdcf7ffL, 0xffe5faffL, 0xffdcf5fdL,
+ 0xff89abc2L, 0xff3d6583L, 0xff32648bL, 0xff306690L, 0xff316692L, 0xff326590L, 0xff346590L, 0xff2e618cL,
+ 0xff2f648eL, 0xff346790L, 0xff346488L, 0xff416d89L, 0xffaccfdeL, 0xffe4fbfeL, 0xffc7e2eaL, 0xffc4e3edL,
+ 0xffd5e3e5L, 0xfff5ffffL, 0xffaac7d6L, 0xff34658fL, 0xff306597L, 0xff336596L, 0xff396591L, 0xff4a708eL,
+ 0xffd0e8efL, 0x55f3f7f8L, 0xffecf7f7L, 0xff9bb0c0L, 0xff39567fL, 0xff376195L, 0xff326a95L, 0xff2c6d8bL,
+ 0xff346590L, 0xff326592L, 0xff306694L, 0xff2e6895L, 0xff2f6690L, 0xff35668bL, 0xff34607dL, 0xff95afc2L,
+ 0xffdeedf9L, 0xff577081L, 0xff3e5e75L, 0xff50758fL, 0xff7196b0L, 0xff81a4bfL, 0xff7c9bb4L, 0xff587894L,
+ 0xff3a5b7eL, 0xff376086L, 0xff32658eL, 0xff306790L, 0xff30678eL, 0xff32678bL, 0xff346687L, 0xff35658cL,
+ 0xff32668eL, 0xff2f668fL, 0xff2f678fL, 0xff2c6185L, 0xff386682L, 0xff7397a8L, 0xffa7c4cfL, 0xffaac2ceL,
+ 0xffc7d2daL, 0xfff7ffffL, 0xff9db8ccL, 0xff2f6088L, 0xff2c6390L, 0xff30648eL, 0xff31608aL, 0xff386487L,
+ 0xffbbd7e0L, 0x55fcffffL, 0xffecf6f8L, 0xff9aafc0L, 0xff395680L, 0xff3a6398L, 0xff316b96L, 0xff296a8aL,
+ 0xff34648fL, 0xff326591L, 0xff306693L, 0xff2f6894L, 0xff306790L, 0xff346589L, 0xff2e5c79L, 0xff7e98acL,
+ 0xffe8f7ffL, 0xff7c93a8L, 0xff365672L, 0xff3a6181L, 0xff325d80L, 0xff315b7eL, 0xff335c7fL, 0xff385c81L,
+ 0xff3f628aL, 0xff39628dL, 0xff336691L, 0xff306790L, 0xff30678cL, 0xff316986L, 0xff326883L, 0xff356388L,
+ 0xff32638dL, 0xff2f6893L, 0xff2c6996L, 0xff2c6790L, 0xff326689L, 0xff335f78L, 0xff3c5e78L, 0xff3d536eL,
+ 0xff929ca9L, 0xffeaf4fdL, 0xff6f89a3L, 0xff2e5e85L, 0xff2f6690L, 0xff32668cL, 0xff2f6189L, 0xff2e5e82L,
+ 0xffa6c3ceL, 0xaaf3f8f8L, 0xffe6f4f6L, 0xff9ebfcaL, 0xff355f78L, 0xff37678fL, 0xff2f6398L, 0xff2f629fL,
+ 0xff34678aL, 0xff356788L, 0xff336587L, 0xff326486L, 0xff326586L, 0xff336586L, 0xff2e6183L, 0xff5a7f99L,
+ 0xffdaf5ffL, 0xff91b3c9L, 0xff2e5776L, 0xff356688L, 0xff2f678cL, 0xff2b648dL, 0xff2a648dL, 0xff346993L,
+ 0xff366590L, 0xff346490L, 0xff356691L, 0xff346590L, 0xff346590L, 0xff346590L, 0xff34658fL, 0xff35648bL,
+ 0xff35648fL, 0xff346497L, 0xff32649dL, 0xff2f639bL, 0xff306597L, 0xff2e6790L, 0xff345e75L, 0xff4f6978L,
+ 0xffc7e5ecL, 0xffb7dae8L, 0xff37658aL, 0xff34638cL, 0xff33628bL, 0xff39658eL, 0xff34648cL, 0xff2c5d7cL,
+ 0xffa2bed0L, 0xaae8eeefL, 0xffd9e5e9L, 0xffb4d1deL, 0xff3e657aL, 0xff356185L, 0xff346496L, 0xff306199L,
+ 0xff34678eL, 0xff35678cL, 0xff33658bL, 0xff32648aL, 0xff35678dL, 0xff34668cL, 0xff2f628bL, 0xff3e6681L,
+ 0xffb1cfd7L, 0xffc3e7f3L, 0xff446b84L, 0xff33607fL, 0xff31648aL, 0xff2e658eL, 0xff2c6593L, 0xff306592L,
+ 0xff35658fL, 0xff34658fL, 0xff34658fL, 0xff34658fL, 0xff34658fL, 0xff34658fL, 0xff34658fL, 0xff306692L,
+ 0xff316593L, 0xff326497L, 0xff326398L, 0xff336294L, 0xff36658fL, 0xff326486L, 0xff436577L, 0xffb3c8d1L,
+ 0xffd3f1faL, 0xff5d85a2L, 0xff316085L, 0xff356792L, 0xff346692L, 0xff356793L, 0xff32638aL, 0xff35607aL,
+ 0xff98b2c3L, 0xaaecf2f4L, 0xffd2daddL, 0xffd3eaf3L, 0xff527186L, 0xff365c7bL, 0xff35638cL, 0xff2f608fL,
+ 0xff356692L, 0xff356591L, 0xff33638fL, 0xff32628eL, 0xff346490L, 0xff336490L, 0xff326492L, 0xff365e79L,
+ 0xff7c9ca5L, 0xffddffffL, 0xff799cadL, 0xff2f5670L, 0xff376285L, 0xff33648fL, 0xff316598L, 0xff306391L,
+ 0xff34658cL, 0xff34658dL, 0xff34658dL, 0xff34658eL, 0xff34658eL, 0xff34658eL, 0xff34658fL, 0xff2d6797L,
+ 0xff2e6696L, 0xff306596L, 0xff346492L, 0xff366189L, 0xff3c6486L, 0xff345c76L, 0xff8da7b4L, 0xffeafcffL,
+ 0xff88a4b8L, 0xff355a78L, 0xff346388L, 0xff2e618bL, 0xff336794L, 0xff306493L, 0xff356489L, 0xff395c71L,
+ 0xffa4bac9L, 0xaae8edf0L, 0x55e3e7e9L, 0xc7e4f4fbL, 0xff7d94a6L, 0xff35556eL, 0xff3c6586L, 0xff34648aL,
+ 0xff326291L, 0xff346494L, 0xff356594L, 0xff336392L, 0xff326291L, 0xff346393L, 0xff356597L, 0xff335d7aL,
+ 0xff4e717cL, 0xffcdeef3L, 0xffb7d5dcL, 0xff436379L, 0xff385d7aL, 0xff39648bL, 0xff2f608fL, 0xff326490L,
+ 0xff34658dL, 0xff34658dL, 0xff34658dL, 0xff33648cL, 0xff33648cL, 0xff33648cL, 0xff33648dL, 0xff2c6596L,
+ 0xff326999L, 0xff336792L, 0xff366389L, 0xff396180L, 0xff345871L, 0xff5c7c91L, 0xffe4faffL, 0xffb4cad5L,
+ 0xff3f5e73L, 0xff385f7dL, 0xff37668aL, 0xff366891L, 0xff336490L, 0xff2e5f8cL, 0xff3c6484L, 0xff3c5867L,
+ 0xffc2d4deL, 0xaaeaeeefL, 0x0L , 0xffd4dbe1L, 0xffc9d8e4L, 0xff496377L, 0xff3d627aL, 0xff376481L,
+ 0xff336490L, 0xff31628eL, 0xff33638fL, 0xff366692L, 0xff346590L, 0xff346590L, 0xff336492L, 0xff386585L,
+ 0xff385b6eL, 0xff7f9dabL, 0xffe9ffffL, 0xff8ba4b4L, 0xff38556aL, 0xff365b79L, 0xff37658bL, 0xff316389L,
+ 0xff34668cL, 0xff34668cL, 0xff34668cL, 0xff32638aL, 0xff32638aL, 0xff32638aL, 0xff33658cL, 0xff386a99L,
+ 0xff33638fL, 0xff38678aL, 0xff396581L, 0xff335a71L, 0xff486a7fL, 0xffbbd8e3L, 0xffc0dce8L, 0xff4d6e82L,
+ 0xff3b617bL, 0xff386382L, 0xff38678aL, 0xff326188L, 0xff376188L, 0xff3d658dL, 0xff34536fL, 0xff8397a1L,
+ 0xe3e8f4f9L, 0x1dfdfdfdL, 0x0L , 0xaad6d7dbL, 0xc7f0f8ffL, 0xff95a9b8L, 0xff325568L, 0xff366277L,
+ 0xff34668bL, 0xff33658cL, 0xff34658cL, 0xff33658cL, 0xff34668dL, 0xff34668dL, 0xff34668eL, 0xff356387L,
+ 0xff395d7cL, 0xff46627aL, 0xffbed2ddL, 0xffd9ecf1L, 0xff708994L, 0xff36596cL, 0xff3b687fL, 0xff336584L,
+ 0xff34668bL, 0xff34668aL, 0xff34668aL, 0xff326488L, 0xff326488L, 0xff326488L, 0xff336488L, 0xff39628aL,
+ 0xff3c6387L, 0xff365f7aL, 0xff365f73L, 0xff5c8294L, 0xffb8dbe5L, 0xffceedf6L, 0xff547993L, 0xff305c78L,
+ 0xff346181L, 0xff3a698cL, 0xff356388L, 0xff3c6789L, 0xff385b7bL, 0xff3a5776L, 0xff788fa1L, 0xffdfeef3L,
+ 0x72edf2f4L, 0x0L , 0x0L , 0x39ffffffL, 0xe3c7c9d0L, 0xffe6f5fbL, 0xff7ea1afL, 0xff376678L,
+ 0xff2a5d81L, 0xff32668aL, 0xff33678bL, 0xff306388L, 0xff33668aL, 0xff33668aL, 0xff326689L, 0xff36668fL,
+ 0xff3b618eL, 0xff35516fL, 0xff637385L, 0xffdcebf0L, 0xffd1e5eaL, 0xff688b94L, 0xff34636eL, 0xff2e627dL,
+ 0xff32658aL, 0xff33668aL, 0xff33668aL, 0xff316488L, 0xff306387L, 0xff306487L, 0xff316287L, 0xff395980L,
+ 0xff385978L, 0xff45687eL, 0xff7ea3b0L, 0xffc9eff6L, 0xffd2f6fcL, 0xff6d92aaL, 0xff305c7fL, 0xff34688eL,
+ 0xff32678eL, 0xff2b5f87L, 0xff35658bL, 0xff365d7fL, 0xff45617fL, 0xff899fb7L, 0xffdceaf3L, 0x55f5f9faL,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x8ef6f6f7L, 0xe3cbd2d5L, 0xe3edffffL, 0xffb3ccd2L,
+ 0xff638ca1L, 0xff406b83L, 0xff335d75L, 0xff335d74L, 0xff335d74L, 0xff345e75L, 0xff335e75L, 0xff3e5f79L,
+ 0xff526781L, 0xff6f8093L, 0xff96a2afL, 0xe3cfdbe1L, 0x72f9ffffL, 0xe3e2f5f8L, 0xff9eb8beL, 0xff5a7f93L,
+ 0xff336280L, 0xff32607cL, 0xff305d7aL, 0xff2e5b78L, 0xff315e7bL, 0xff325f7cL, 0xff396582L, 0xff5b7b8bL,
+ 0xff87a6b3L, 0xffbddbe4L, 0xffdffbffL, 0xffb4d3dcL, 0xff5e8193L, 0xff395e76L, 0xff346380L, 0xff2b627eL,
+ 0xff2c5e7bL, 0xff31607aL, 0xff396178L, 0xff648294L, 0xffb0c4d1L, 0xe3e8f3f8L, 0x55f4f7f7L, 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x1de9eaeaL, 0xaae9ebeaL,
+ 0xe3dff3fbL, 0xffcce3e9L, 0xffadc5ccL, 0xff9bb3bfL, 0xff93aab5L, 0xff91a8b3L, 0xffa6bfcaL, 0xffb9c8cdL,
+ 0xffd8dee0L, 0xaae4ecf2L, 0xaaf3faffL, 0x8edbe2e8L, 0x0L , 0x39e2e4e6L, 0xaaedf1f5L, 0xc7e5f6fdL,
+ 0xffb2cfdcL, 0xff8ca8b9L, 0xff7c98a8L, 0xff7c98a7L, 0xff85a1b1L, 0xff9cb9c8L, 0xffb4cfddL, 0xffd5f0ecL,
+ 0xc7e3fbf8L, 0xc7e8fafcL, 0xffa4b7c1L, 0xff5a6d7cL, 0xff415a6dL, 0xff3f6073L, 0xff3d6477L, 0xff487081L,
+ 0xff5e818fL, 0xff809ca7L, 0xffbaced2L, 0xe3e7f3f6L, 0x8ef7fdfcL, 0x1dfefefeL, 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x8ee3e9eeL, 0xffd0d4daL, 0xaae5e8edL, 0xaaf6fafeL, 0xaaf9fbffL, 0xaaf6f9fdL, 0xaae8ecf2L, 0x55f8fcfeL,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x1de3e4e6L, 0xe3d5d9dcL,
+ 0xe3dadedfL, 0xaaf3f9fcL, 0xaaf5fbfdL, 0xaafaffffL, 0xaaf9fcfeL, 0x8ef9fcfeL, 0x55fbffffL, 0x39eff7f5L,
+ 0x0L , 0x1decf5f7L, 0xe3dce3ecL, 0xffcbd4ddL, 0xffc8d7e3L, 0xffc3d9e5L, 0xffcde0eaL, 0xffdfebf7L,
+ 0xaae9f3f8L, 0xaaedf4fcL, 0xaae2e4ecL, 0x55e9eaedL, 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x39ffffffL, 0x72e9ecedL, 0xffccd3d7L, 0xffcaced3L, 0xffc5c2c6L,
+ 0x8ee3e3e8L, 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0xffffffL , 0xff1fL , 0xffffffL , 0xff0fL , 0xffffffL , 0xff0fL ,
+ 0xffffffL , 0xff07L , 0xffffffL , 0xff07L , 0xfeffffL , 0xff03L , 0xfeffffL , 0xff03L ,
+ 0xfeffffL , 0xff03L , 0xfeffffL , 0xff07L , 0xfeffffL , 0xff07L , 0x8cffffL , 0xff03L ,
+ 0x4ffffL , 0xff01L , 0x9cffL , 0xff01L , 0x4feL , 0xff03L , 0x4fcL , 0x700L ,
+ 0x3f8L , 0x300L , 0xc001f0L , 0x0L , 0x6000f0L , 0x0L , 0xe0L , 0x3f00L ,
+ 0xc0L , 0x3f00L , 0xc0L , 0x3f00L , 0xc0L , 0x1f00L , 0x80L , 0x1f00L ,
+ 0x80L , 0xf00L , 0x80L , 0xf00L , 0xc0L , 0x700L , 0x80L , 0x700L ,
+ 0x80L , 0x700L , 0x80L , 0x300L , 0x80L , 0x300L , 0x80L , 0x100L ,
+ 0x0L , 0x100L , 0x0L , 0x100L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L , 0x0L ,
+ 0x0L , 0x0L , 0x0L , 0x0L , 0x80L , 0x0L , 0x80L , 0x100L ,
+ 0x80L , 0x300L , 0xc0L , 0x700L , 0x2000f0L , 0xf00L , 0x2f003fcL , 0x3f00L ,
+ 0xffffffffL, 0xff81L
+END
+
+/* Type: group icon
+
+ Name: "IDI_ICON". */
+
+"IDI_ICON" 14 /* RT_GROUP_ICON */
+BEGIN
+ 0, 1, 6, /* Has 6 elements. */
+ /* "width height colors pad", planes, bits, bytes, index. */
+ "\020\020\000\000", 1, 8, 0x568L, 1, /* Element no 1. */
+ "\040\040\000\000", 1, 8, 0x8a8L, 2, /* Element no 2. */
+ "\060\060\000\000", 1, 8, 0xea8L, 3, /* Element no 3. */
+ "\020\020\000\000", 1, 32, 0x468L, 4, /* Element no 4. */
+ "\040\040\000\000", 1, 32, 0x10a8L, 5, /* Element no 5. */
+ "\060\060\000\000", 1, 32, 0x25a8L, 6 /* Element no 6. */
+END
+
+/* Type: version
+
+ Name: 1. */
+
+1 VERSIONINFO
+ FILEVERSION 17, 0, 5, 0
+ PRODUCTVERSION 17, 0, 5, 0
+ FILEFLAGSMASK 0x3f
+ FILEOS 0x40004
+ FILETYPE 0x1
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904B0"
+ BEGIN
+ VALUE "CompanyName", "PostgreSQL Global Development Group"
+ VALUE "FileDescription", "psql - the PostgreSQL interactive terminal"
+ VALUE "FileVersion", "17.5"
+ VALUE "InternalName", "psql"
+ VALUE "LegalCopyright", "Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group. Portions Copyright (c) 1994, Regents of the University of California."
+ VALUE "OriginalFileName", "psql.exe"
+ VALUE "ProductName", "PostgreSQL"
+ VALUE "ProductVersion", "17.5"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+/* Type: 24
+
+ Name: 1. */
+
+1 24 /* RT_MANIFEST */
+BEGIN
+ "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>\n"
+ "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">\n"
+ " <trustInfo xmlns=""urn:schemas-microsoft-com:asm.v3"">\n"
+ " <security>\n"
+ " <requestedPrivileges>\n"
+ " <requestedExecutionLevel level=""asInvoker""/>\n"
+ " </requestedPrivileges>\n"
+ " </security>\n"
+ " </trustInfo>\n"
+ " <compatibility xmlns=""urn:schemas-microsoft-com:compatibility.v1"">\n"
+ " <application>\n"
+ " <!--The ID below indicates application support for Windows Vista -->\n"
+ " <supportedOS Id=""{e2011457-1546-43c5-a5fe-008deee3d3f0}""/>\n"
+ " <!--The ID below indicates application support for Windows 7 -->\n"
+ " <supportedOS Id=""{35138b9a-5d96-4fbd-8e2d-a2440225f93a}""/>\n"
+ " <!--The ID below indicates application support for Windows 8 -->\n"
+ " <supportedOS Id=""{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}""/>\n"
+ " <!--The ID below indicates application support for Windows 8.1 -->\n"
+ " <supportedOS Id=""{1f676c76-80e1-4239-95bb-83d0f6d0da78}""/> \n"
+ " <!--The ID below indicates application support for Windows 10 -->\n"
+ " <supportedOS Id=""{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}""/> \n"
+ " </application>\n"
+ " </compatibility>\n"
+ "</assembly>\n"
+END
diff --git a/binutils/testsuite/binutils-all/windres/windres.exp b/binutils/testsuite/binutils-all/windres/windres.exp
index e5978b8..9730317 100644
--- a/binutils/testsuite/binutils-all/windres/windres.exp
+++ b/binutils/testsuite/binutils-all/windres/windres.exp
@@ -76,7 +76,7 @@ foreach res $res_list {
}
}
- verbose "$wr -J rc -O res $res tmpdir/$broot.res" 1
+ verbose "$wr $cpp_opts -J rc -O res $res tmpdir/$broot.res" 1
catch "exec $wr $cpp_opts -J rc -O res $res tmpdir/$broot.res" err
if ![string match "" $err] then {
@@ -110,6 +110,22 @@ foreach res $res_list {
continue
}
+ verbose "$wr -J res -O rc tmpdir/$broot.res tmpdir/$broot.rc" 1
+ catch "exec $wr -J res -O rc tmpdir/$broot.res tmpdir/$broot.rc" err
+ file delete "tmpdir/$broot.rc"
+
+ if ![string match "" $err] then {
+ send_log "$err\n"
+ verbose "$err" 1
+ fail "windres/$broot (res to rc)"
+ continue
+ }
+ pass "windres/$broot (res to rc)"
+
+ if { ![file exists "$sroot.rsd"] } {
+ continue
+ }
+
verbose "$OBJDUMP -b binary -s tmpdir/$broot.res > tmpdir/$broot.dump" 1
catch "exec $OBJDUMP -b binary -s tmpdir/$broot.res > tmpdir/$broot.dump" err
diff --git a/binutils/testsuite/binutils-all/x86-64/x86-64.exp b/binutils/testsuite/binutils-all/x86-64/x86-64.exp
index 6d1b308..3c98b03 100644
--- a/binutils/testsuite/binutils-all/x86-64/x86-64.exp
+++ b/binutils/testsuite/binutils-all/x86-64/x86-64.exp
@@ -295,7 +295,7 @@ proc run_pr33230_test { testname obj strip_flags run_readelf } {
fail "$testname (${obj}.strip)"
return
}
- } elseif { ![regexp "Unable to recognise the format" $got] } then {
+ } elseif { ![regexp "Unable to recognise the architecture" $got] } then {
send_log "$got\n"
verbose "$got" 1
fail "$testname"
diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp
index 7297f6d..47fe48a 100644
--- a/binutils/testsuite/lib/binutils-common.exp
+++ b/binutils/testsuite/lib/binutils-common.exp
@@ -32,7 +32,6 @@ proc is_elf_format {} {
# && ![istarget *-*-windiss*]
if { ![istarget *-*-chorus*]
- && ![istarget *-*-cloudabi*]
&& ![istarget *-*-eabi*]
&& ![istarget *-*-*elf*]
&& ![istarget *-*-*freebsd*]