Commit 1e9cc1c2 authored by Nick Clifton's avatar Nick Clifton

* po/bfd.pot: Updated by the Translation project.

        * po/binutils.pot: Updated by the Translation project.
        * po/gold.pot: Updated by the Translation project.
        * po/gold.pot: Updated by the Translation project.
        * po/gprof.pot: Updated by the Translation project.
        * po/sv.po: Updated Swedish translation.
        * po/ld.pot: Updated by the Translation project.
        * po/fi.po: Updated Finnish translation.
        * po/ld.pot: Updated by the Translation project.
        * po/fi.po: Updated Finnish translation.

        Updated sources to compile cleanly with -Wc++-compat:
        * basic_blocks.c: Add casts.
        * cg_dfn.c: Add cast.
        * corefile.c: Add casts.
        * gmon_io.c: Add casts.
        * hist.c: Add cast.
        * source.c: Add cast.
        * sym_ids.c (struct match): Moved to top level.

        Updated soruces in ld/* to compile cleanly with -Wc++-compat:
        * ld.h (enum endian_enum,enum symbolic_enum,enum dynamic_list_enum): Move to top level.
        * ldcref.c: Add casts.
        * ldctor.c: Add casts.
        * ldexp.c
        * ldexp.h (enum node_tree_enum,enum phase_enum): Move to top level.
        * ldlang.c: Add casts. (lang_insert_orphan): Use enum name instead of integer.
        * ldlang.h (enum statement_enum): Move to top level.
        * ldmain.c: Add casts.
        * ldwrite.c: Add casts.
        * lexsup.c: Add casts. (enum control_enum): Move to top level.
        * mri.c: Add casts. (mri_draw_tree): Use enum name instead of integer.

        Updated sources to compile cleanly with -Wc++-compat:
        * basic_blocks.c: Add casts.
        * cg_dfn.c: Add cast.
        * corefile.c: Add casts.
        * gmon_io.c: Add casts.
        * hist.c: Add cast.
        * source.c: Add cast.
        * sym_ids.c (struct match): Moved to top level.

        * as.c (main): Call dwarf2_init.
        * config/obj-elf.c (struct group_list): New field.
        (build_group_lists): Use hash lookup.
        (free_section_idx): New function.
        (elf_frob_file): Adjust.
        * dwarf2dbg.c (all_segs_hash, last_seg_ptr): New variables.
        (get_line_subseg): Adjust.
        (dwarf2_init): New function.
        * dwarf2dbg.h (dwarf2_init): New declaration.
parent e23bb3fc
2009-09-11 Nick Clifton <nickc@redhat.com>
* po/bfd.pot: Updated by the Translation project.
2009-09-11 Philippe De Muyter <phdm@macqel.be>
* binary.c (binary_object_p): Remove bfd_external_binary_architecture
......
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2009-09-07 12:07+0200\n"
"POT-Creation-Date: 2009-09-07 14:05+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -367,7 +367,7 @@ msgstr ""
msgid "Relocation `%s' not yet implemented\n"
msgstr ""
#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5145
#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5143
msgid "%B: warning: illegal symbol index %ld in relocs"
msgstr ""
......@@ -437,56 +437,56 @@ msgstr ""
msgid "ignoring reloc %s\n"
msgstr ""
#: coffcode.h:962
#: coffcode.h:960
msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'"
msgstr ""
#. Generate a warning message rather using the 'unhandled'
#. variable as this will allow some .sys files generate by
#. other toolchains to be processed. See bugzilla issue 196.
#: coffcode.h:1178
#: coffcode.h:1176
msgid ""
"%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s"
msgstr ""
#: coffcode.h:1242
#: coffcode.h:1240
msgid "%B (%s): Section flag %s (0x%x) ignored"
msgstr ""
#: coffcode.h:2384
#: coffcode.h:2382
#, c-format
msgid "Unrecognized TI COFF target id '0x%x'"
msgstr ""
#: coffcode.h:2698
#: coffcode.h:2696
msgid "%B: reloc against a non-existant symbol index: %ld"
msgstr ""
#: coffcode.h:3671
#: coffcode.h:3669
msgid "%B: section %s: string table overflow at offset %ld"
msgstr ""
#: coffcode.h:4479
#: coffcode.h:4477
msgid "%B: warning: line number table read failed"
msgstr ""
#: coffcode.h:4509
#: coffcode.h:4507
msgid "%B: warning: illegal symbol index %ld in line numbers"
msgstr ""
#: coffcode.h:4523
#: coffcode.h:4521
msgid "%B: warning: duplicate line number information for `%s'"
msgstr ""
#: coffcode.h:4914
#: coffcode.h:4912
msgid "%B: Unrecognized storage class %d for %s symbol `%s'"
msgstr ""
#: coffcode.h:5040
#: coffcode.h:5038
msgid "warning: %B: local symbol `%s' has no section"
msgstr ""
#: coffcode.h:5183
#: coffcode.h:5181
msgid "%B: illegal relocation type %d at address 0x%lx"
msgstr ""
......
2009-09-11 Nick Clifton <nickc@redhat.com>
* po/binutils.pot: Updated by the Translation project.
2009-09-11 Philippe De Muyter <phdm@macqel.be>
* obcopy.c (copy_object): New parameter `input_arch', architecture
......
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2009-09-07 12:08+0200\n"
"POT-Creation-Date: 2009-09-07 14:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......
2009-09-11 Nick Clifton <nickc@redhat.com>
* po/gas.pot: Updated by the Translation project.
2009-09-11 Martin Thuresson <martint@google.com>
* as.c (main): Call dwarf2_init.
* config/obj-elf.c (struct group_list): New field.
(build_group_lists): Use hash lookup.
(free_section_idx): New function.
(elf_frob_file): Adjust.
* dwarf2dbg.c (all_segs_hash, last_seg_ptr): New variables.
(get_line_subseg): Adjust.
(dwarf2_init): New function.
* dwarf2dbg.h (dwarf2_init): New declaration.
2009-09-11 Martin Thuresson <martint@google.com>
Updated sources to compile cleanly with -Wc++-compat:
* app.c: Add casts.
* as.c: Add casts.
* config/obj-elf.c: Add casts.
(obj_elf_type): Rename variable typename to type_name.
* config/tc-i386-intel.c (i386_operators): Rename member operator to op.
* config/tc-i386.c: Add casts.
(check_cpu_arch_compatible): Rename argument new to new_flag.
(gotrel): Update variable to use enum name instead of integer value.
* dw2gencfi.c: Add casts.
(struct cfi_escape_data): Move to top level.
* dwarf2dbg.c: Add cast.
* dwarf2dbg.h (dwarf2_loc_directive_seen): Make variable extern.
* ehopt.c Add casts.
(enum frame_state): Move to top level.
* expr.c (operatorf): Rename function operator to operatorf.
(operand): Rename variable operator to op.
(expr_set_rank): Rename argument operator to op.
* frags.c: Add cast.
* hash.c: Add casts.
* input-scrub.c: Add cast.
* listing.c: Add casts.
(enum edict_enum): Move to top level.
* macro.c: Add casts.
* macro.h (enum formal_type): Move to top level.
* read.c: Add casts.
(s_include): Rename variable try to try_file.
* remap.c: Add cast.
* stabs.c: Add casts.
* subsegs.c: Add casts.
* symbols.c: Add casts.
* write.c: Add casts.
* libiberty/regex.c (byte_re_match_2_internal): Introduce extra scope to avoid
initialization warning from goto.
2009-09-11 Hans-Peter Nilsson <hp@bitrange.com>
PR gas/10623
......@@ -225,7 +278,7 @@
2009-09-02 Jie Zhang <jie.zhang@analog.com>
From Bernd Schmidt <bernd.schmidt@analog.com>
* config/gas/bfin-parse.y (asm_1): Clean up and unify error handling
* config/bfin-parse.y (asm_1): Clean up and unify error handling
for load and store insns.
(neg_value): Delete function.
......@@ -427,7 +480,7 @@
Remove.
(mkdep section): Remove.
* Makefile.in: Regenerate.
* gas/po/POTFILES.in, gas/po/gas.pot: Regenerate.
* po/POTFILES.in, po/gas.pot: Regenerate.
* Makefile.am (install-pdf, install-pdf-recursive, install-html)
(install-html-recursive): Remove.
......@@ -492,7 +545,7 @@
* config/obj-coff.h (obj_coff_seh_do_final): Add new
function prototype.
(obj_coff_generate_pdata): New obj-coff hook.
* gas/write.c (size_seg): Avoid sizing of already sized
* write.c (size_seg): Avoid sizing of already sized
sections.
(write_object_file): Call conditional hook
objc_coff_generate_pdata.
......@@ -990,28 +1043,28 @@
2009-06-22 Martin Thuresson <martin@mtme.org>
* gas/app, gas/as.c, gas/as.h, gas/atof-generic.c, gas/cgen.c,
gas/config/atof-ieee.c, gas/config/obj-aout.c,
gas/config/obj-coff.c, gas/config/obj-ecoff.c,
gas/config/obj-elf.c, gas/config/obj-som.c, gas/config/tc-alpha.c,
gas/config/tc-arc.c, gas/config/tc-arm.c, gas/config/tc-cr16.c,
gas/config/tc-cris.c, gas/config/tc-crx.c, gas/config/tc-d30v.c,
gas/config/tc-dlx.c, gas/config/tc-hppa.c, gas/config/tc-i370.c,
gas/config/tc-i386-intel.c, gas/config/tc-i386.c,
gas/config/tc-i860.c, gas/config/tc-i960.c, gas/config/tc-ia64.c,
gas/config/tc-iq2000.c, gas/config/tc-m32c.c,
gas/config/tc-m32r.c, gas/config/tc-m68hc11.c,
gas/config/tc-m68k.c, gas/config/tc-maxq.c, gas/config/tc-mcore.c,
gas/config/tc-mep.c, gas/config/tc-mips.c, gas/config/tc-mmix.c,
gas/config/tc-mn10300.c, gas/config/tc-moxie.c,
gas/config/tc-ns32k.c, gas/config/tc-pj.c, gas/config/tc-ppc.c,
gas/config/tc-s390.c, gas/config/tc-score.c,
gas/config/tc-score7.c, gas/config/tc-sh.c, gas/config/tc-sparc.c,
gas/config/tc-spu.c, gas/config/tc-tic30.c, gas/config/tc-vax.c,
gas/config/tc-xtensa.c, gas/config/xtensa-relax.c,
gas/dw2gencfi.c, gas/dwarf2dbg.c, gas/ehopt.c, gas/expr.c,
gas/frags.c, gas/input-file.c, gas/read.c, gas/sb.c,
gas/subsegs.c, gas/symbols.c, gas/write.c: Change the name of the
* app, as.c, as.h, atof-generic.c, cgen.c,
config/atof-ieee.c, config/obj-aout.c,
config/obj-coff.c, config/obj-ecoff.c,
config/obj-elf.c, config/obj-som.c, config/tc-alpha.c,
config/tc-arc.c, config/tc-arm.c, config/tc-cr16.c,
config/tc-cris.c, config/tc-crx.c, config/tc-d30v.c,
config/tc-dlx.c, config/tc-hppa.c, config/tc-i370.c,
config/tc-i386-intel.c, config/tc-i386.c,
config/tc-i860.c, config/tc-i960.c, config/tc-ia64.c,
config/tc-iq2000.c, config/tc-m32c.c,
config/tc-m32r.c, config/tc-m68hc11.c,
config/tc-m68k.c, config/tc-maxq.c, config/tc-mcore.c,
config/tc-mep.c, config/tc-mips.c, config/tc-mmix.c,
config/tc-mn10300.c, config/tc-moxie.c,
config/tc-ns32k.c, config/tc-pj.c, config/tc-ppc.c,
config/tc-s390.c, config/tc-score.c,
config/tc-score7.c, config/tc-sh.c, config/tc-sparc.c,
config/tc-spu.c, config/tc-tic30.c, config/tc-vax.c,
config/tc-xtensa.c, config/xtensa-relax.c,
dw2gencfi.c, dwarf2dbg.c, ehopt.c, expr.c,
frags.c, input-file.c, read.c, sb.c,
subsegs.c, symbols.c, write.c: Change the name of the
gas macro `assert' to `gas_assert'.
2009-06-22 Daniel Gutson <dgutson@codesourcery.com>
......@@ -1084,7 +1137,7 @@
2009-06-18 Nick Clifton <nickc@redhat.com>
PR 10169
* gas/tc-arm.c (do_t_ssat): Move common code from here...
* tc-arm.c (do_t_ssat): Move common code from here...
(do_t_usat): ... and here to...
(do_t_ssat_usat): New function: ... here. Add code to check that
the shift value, if present, is in range.
......
......@@ -258,7 +258,7 @@ app_push (void)
saved->saved_input = NULL;
else
{
saved->saved_input = xmalloc (saved_input_len);
saved->saved_input = (char *) xmalloc (saved_input_len);
memcpy (saved->saved_input, saved_input, saved_input_len);
saved->saved_input_len = saved_input_len;
}
......
......@@ -506,7 +506,8 @@ parse_args (int * pargc, char *** pargv)
dependent list. Include space for an extra NULL option and
always NULL terminate. */
shortopts = concat (std_shortopts, md_shortopts, (char *) NULL);
longopts = xmalloc (sizeof (std_longopts) + md_longopts_size + sizeof (struct option));
longopts = (struct option *) xmalloc (sizeof (std_longopts)
+ md_longopts_size + sizeof (struct option));
memcpy (longopts, std_longopts, sizeof (std_longopts));
memcpy (((char *) longopts) + sizeof (std_longopts), md_longopts, md_longopts_size);
memset (((char *) longopts) + sizeof (std_longopts) + md_longopts_size,
......@@ -517,7 +518,7 @@ parse_args (int * pargc, char *** pargv)
old_argv = *pargv;
/* Initialize a new argv that contains no options. */
new_argv = xmalloc (sizeof (char *) * (old_argc + 1));
new_argv = (char **) xmalloc (sizeof (char *) * (old_argc + 1));
new_argv[0] = old_argv[0];
new_argc = 1;
new_argv[new_argc] = NULL;
......@@ -646,7 +647,7 @@ This program has absolutely no warranty.\n"));
as_fatal (_("bad defsym; format is --defsym name=value"));
*s++ = '\0';
i = bfd_scan_vma (s, (const char **) NULL, 0);
n = xmalloc (sizeof *n);
n = (struct defsym_list *) xmalloc (sizeof *n);
n->next = defsyms;
n->name = optarg;
n->value = i;
......@@ -1158,6 +1159,8 @@ main (int argc, char ** argv)
itbl_init ();
dwarf2_init ();
/* Now that we have fully initialized, and have created the output
file, define any symbols requested by --defsym command line
arguments. */
......
......@@ -269,7 +269,7 @@ elf_file_symbol (const char *s, int appfile)
if (name_length > strlen (S_GET_NAME (sym)))
{
obstack_grow (&notes, s, name_length + 1);
S_SET_NAME (sym, obstack_finish (&notes));
S_SET_NAME (sym, (const char *) obstack_finish (&notes));
}
else
strcpy ((char *) S_GET_NAME (sym), s);
......@@ -505,7 +505,7 @@ static struct section_stack *section_stack;
static bfd_boolean
get_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
{
const char *gname = inf;
const char *gname = (const char *) inf;
const char *group_name = elf_group_name (sec);
return (group_name == gname
......@@ -555,7 +555,7 @@ obj_elf_change_section (const char *name,
if (push)
{
struct section_stack *elt;
elt = xmalloc (sizeof (struct section_stack));
elt = (struct section_stack *) xmalloc (sizeof (struct section_stack));
elt->next = section_stack;
elt->seg = now_seg;
elt->prev_seg = previous_section;
......@@ -885,7 +885,7 @@ obj_elf_section_name (void)
return NULL;
}
name = xmalloc (end - input_line_pointer + 1);
name = (char *) xmalloc (end - input_line_pointer + 1);
memcpy (name, input_line_pointer, end - input_line_pointer);
name[end - input_line_pointer] = '\0';
#ifdef tc_canonicalize_section_name
......@@ -1441,7 +1441,7 @@ elf_copy_symbol_attributes (symbolS *dest, symbolS *src)
if (srcelf->size)
{
if (destelf->size == NULL)
destelf->size = xmalloc (sizeof (expressionS));
destelf->size = (expressionS *) xmalloc (sizeof (expressionS));
*destelf->size = *srcelf->size;
}
else
......@@ -1558,7 +1558,8 @@ obj_elf_size (int ignore ATTRIBUTE_UNUSED)
}
else
{
symbol_get_obj (sym)->size = xmalloc (sizeof (expressionS));
symbol_get_obj (sym)->size =
(expressionS *) xmalloc (sizeof (expressionS));
*symbol_get_obj (sym)->size = exp;
}
demand_empty_rest_of_line ();
......@@ -1609,7 +1610,7 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
char *name;
char c;
int type;
const char *typename;
const char *type_name;
symbolS *sym;
elf_symbol_type *elfsym;
......@@ -1630,28 +1631,28 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
|| *input_line_pointer == '%')
++input_line_pointer;
typename = obj_elf_type_name (& c);
type_name = obj_elf_type_name (& c);
type = 0;
if (strcmp (typename, "function") == 0
|| strcmp (typename, "2") == 0
|| strcmp (typename, "STT_FUNC") == 0)
if (strcmp (type_name, "function") == 0
|| strcmp (type_name, "2") == 0
|| strcmp (type_name, "STT_FUNC") == 0)
type = BSF_FUNCTION;
else if (strcmp (typename, "object") == 0
|| strcmp (typename, "1") == 0
|| strcmp (typename, "STT_OBJECT") == 0)
else if (strcmp (type_name, "object") == 0
|| strcmp (type_name, "1") == 0
|| strcmp (type_name, "STT_OBJECT") == 0)
type = BSF_OBJECT;
else if (strcmp (typename, "tls_object") == 0
|| strcmp (typename, "6") == 0
|| strcmp (typename, "STT_TLS") == 0)
else if (strcmp (type_name, "tls_object") == 0
|| strcmp (type_name, "6") == 0
|| strcmp (type_name, "STT_TLS") == 0)
type = BSF_OBJECT | BSF_THREAD_LOCAL;
else if (strcmp (typename, "notype") == 0
|| strcmp (typename, "0") == 0
|| strcmp (typename, "STT_NOTYPE") == 0)
else if (strcmp (type_name, "notype") == 0
|| strcmp (type_name, "0") == 0
|| strcmp (type_name, "STT_NOTYPE") == 0)
;
else if (strcmp (typename, "common") == 0
|| strcmp (typename, "5") == 0
|| strcmp (typename, "STT_COMMON") == 0)
else if (strcmp (type_name, "common") == 0
|| strcmp (type_name, "5") == 0
|| strcmp (type_name, "STT_COMMON") == 0)
{
type = BSF_OBJECT;
......@@ -1677,9 +1678,9 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
}
}
}
else if (strcmp (typename, "gnu_indirect_function") == 0
|| strcmp (typename, "10") == 0
|| strcmp (typename, "STT_GNU_IFUNC") == 0)
else if (strcmp (type_name, "gnu_indirect_function") == 0
|| strcmp (type_name, "10") == 0
|| strcmp (type_name, "STT_GNU_IFUNC") == 0)
{
const struct elf_backend_data *bed;
......@@ -1688,10 +1689,10 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
/* GNU/Linux is still using the default value 0. */
|| bed->elf_osabi == ELFOSABI_NONE))
as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
typename);
type_name);
type = BSF_FUNCTION | BSF_GNU_INDIRECT_FUNCTION;
}
else if (strcmp (typename, "gnu_unique_object") == 0)
else if (strcmp (type_name, "gnu_unique_object") == 0)
{
struct elf_backend_data *bed;
......@@ -1700,17 +1701,17 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
/* GNU/Linux is still using the default value 0. */
|| bed->elf_osabi == ELFOSABI_NONE))
as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
typename);
type_name);
type = BSF_OBJECT | BSF_GNU_UNIQUE;
/* PR 10549: Always set OSABI field to LINUX for objects containing unique symbols. */
bed->elf_osabi = ELFOSABI_LINUX;
}
#ifdef md_elf_symbol_type
else if ((type = md_elf_symbol_type (typename, sym, elfsym)) != -1)
else if ((type = md_elf_symbol_type (type_name, sym, elfsym)) != -1)
;
#endif
else
as_bad (_("unrecognized symbol type \"%s\""), typename);
as_bad (_("unrecognized symbol type \"%s\""), type_name);
*input_line_pointer = c;
......@@ -1774,7 +1775,7 @@ obj_elf_init_stab_section (segT seg)
/* Zero it out. */
memset (p, 0, 12);
as_where (&file, NULL);
stabstr_name = xmalloc (strlen (segment_name (seg)) + 4);
stabstr_name = (char *) xmalloc (strlen (segment_name (seg)) + 4);
strcpy (stabstr_name, segment_name (seg));
strcat (stabstr_name, "str");
stroff = get_stab_string_offset (file, stabstr_name);
......@@ -1800,7 +1801,7 @@ adjust_stab_sections (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
if (!strcmp ("str", sec->name + strlen (sec->name) - 3))
return;
name = alloca (strlen (sec->name) + 4);
name = (char *) alloca (strlen (sec->name) + 4);
strcpy (name, sec->name);
strcat (name, "str");
strsec = bfd_get_section_by_name (abfd, name);
......@@ -2006,6 +2007,7 @@ struct group_list
asection **head; /* Section lists. */
unsigned int *elt_count; /* Number of sections in each list. */
unsigned int num_group; /* Number of lists. */
struct hash_control *indexes; /* Maps group name to index in head array. */
};
/* Called via bfd_map_over_sections. If SEC is a member of a group,
......@@ -2016,24 +2018,24 @@ struct group_list
static void
build_group_lists (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
{
struct group_list *list = inf;
struct group_list *list = (struct group_list *) inf;
const char *group_name = elf_group_name (sec);
unsigned int i;
unsigned int *elem_idx;
unsigned int *idx_ptr;
if (group_name == NULL)
return;
/* If this group already has a list, add the section to the head of
the list. */
for (i = 0; i < list->num_group; i++)
elem_idx = (unsigned int *) hash_find (list->indexes, group_name);
if (elem_idx != NULL)
{
if (strcmp (group_name, elf_group_name (list->head[i])) == 0)
{
elf_next_in_group (sec) = list->head[i];
list->head[i] = sec;
list->elt_count[i] += 1;
return;
}
elf_next_in_group (sec) = list->head[*elem_idx];
list->head[*elem_idx] = sec;
list->elt_count[*elem_idx] += 1;
return;
}
/* New group. Make the arrays bigger in chunks to minimize calls to
......@@ -2042,13 +2044,24 @@ build_group_lists (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
if ((i & 127) == 0)
{
unsigned int newsize = i + 128;
list->head = xrealloc (list->head, newsize * sizeof (*list->head));
list->elt_count = xrealloc (list->elt_count,
newsize * sizeof (*list->elt_count));
list->head = (asection **) xrealloc (list->head,
newsize * sizeof (*list->head));
list->elt_count = (unsigned int *)
xrealloc (list->elt_count, newsize * sizeof (*list->elt_count));
}
list->head[i] = sec;
list->elt_count[i] = 1;
list->num_group += 1;
/* Add index to hash. */
idx_ptr = xmalloc (sizeof (unsigned int));
*idx_ptr = i;
hash_insert (list->indexes, group_name, idx_ptr);
}
static void free_section_idx (const char *key ATTRIBUTE_UNUSED, void *val)
{
free ((unsigned int *) val);
}
void
......@@ -2063,6 +2076,7 @@ elf_frob_file (void)
list.num_group = 0;
list.head = NULL;
list.elt_count = NULL;
list.indexes = hash_new ();
bfd_map_over_sections (stdoutput, build_group_lists, &list);
/* Make the SHT_GROUP sections that describe each section group. We
......@@ -2128,6 +2142,10 @@ elf_frob_file (void)
#ifdef elf_tc_final_processing
elf_tc_final_processing ();
#endif
/* Cleanup hash. */
hash_traverse (list.indexes, free_section_idx);
hash_die (list.indexes);
}
/* It removes any unneeded versioned symbols from the symbol table. */
......
......@@ -65,7 +65,7 @@ intel_state;
static struct
{
const char *name;
operatorT operator;
operatorT op;
unsigned int operands;
}
const i386_operators[] =
......@@ -91,7 +91,7 @@ const i386_operators[] =
static struct
{
const char *name;
operatorT operator;
operatorT op;
unsigned short sz[3];
}
const i386_types[] =
......@@ -158,7 +158,7 @@ operatorT i386_operator (const char *name, unsigned int operands, char *pc)
if (i386_operators[j].operands
&& i386_operators[j].operands != operands)
return O_illegal;
return i386_operators[j].operator;
return i386_operators[j].op;
}
for (j = 0; i386_types[j].name; ++j)
......@@ -175,7 +175,7 @@ operatorT i386_operator (const char *name, unsigned int operands, char *pc)
*pc = c;
if (intel_syntax > 0 || operands != 1)
return O_illegal;
return i386_types[j].operator;
return i386_types[j].op;
}
*input_line_pointer = c;
......
......@@ -1851,7 +1851,7 @@ add_prefix (unsigned int prefix)
static void
set_code_flag (int value)
{
flag_code = value;
flag_code = (enum flag_code) value;
if (flag_code == CODE_64BIT)
{
cpu_arch_flags.bitfield.cpu64 = 1;
......@@ -1876,7 +1876,7 @@ set_code_flag (int value)
static void
set_16bit_gcc_code_flag (int new_code_flag)
{
flag_code = new_code_flag;
flag_code = (enum flag_code) new_code_flag;
if (flag_code != CODE_16BIT)
abort ();
cpu_arch_flags.bitfield.cpu64 = 0;
......@@ -1961,7 +1961,7 @@ set_sse_check (int dummy ATTRIBUTE_UNUSED)
static void
check_cpu_arch_compatible (const char *name ATTRIBUTE_UNUSED,
i386_cpu_flags new ATTRIBUTE_UNUSED)
i386_cpu_flags new_flag ATTRIBUTE_UNUSED)
{
#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
static const char *arch;
......@@ -1981,7 +1981,7 @@ check_cpu_arch_compatible (const char *name ATTRIBUTE_UNUSED,
/* If we are targeting Intel L1OM, we must enable it. */
if (get_elf_backend_data (stdoutput)->elf_machine_code != EM_L1OM
|| new.bitfield.cpul1om)
|| new_flag.bitfield.cpul1om)
return;
as_bad (_("`%s' is not supported on `%s'"), name, arch);
......@@ -6019,28 +6019,28 @@ lex_got (enum bfd_reloc_code_real *reloc,
const enum bfd_reloc_code_real rel[2];
const i386_operand_type types64;
} gotrel[] = {
{ "PLTOFF", { 0,
{ "PLTOFF", { _dummy_first_bfd_reloc_code_real,
BFD_RELOC_X86_64_PLTOFF64 },
OPERAND_TYPE_IMM64 },
{ "PLT", { BFD_RELOC_386_PLT32,
BFD_RELOC_X86_64_PLT32 },
OPERAND_TYPE_IMM32_32S_DISP32 },
{ "GOTPLT", { 0,
{ "GOTPLT", { _dummy_first_bfd_reloc_code_real,
BFD_RELOC_X86_64_GOTPLT64 },
OPERAND_TYPE_IMM64_DISP64 },
{ "GOTOFF", { BFD_RELOC_386_GOTOFF,
BFD_RELOC_X86_64_GOTOFF64 },
OPERAND_TYPE_IMM64_DISP64 },
{ "GOTPCREL", { 0,
{ "GOTPCREL", { _dummy_first_bfd_reloc_code_real,
BFD_RELOC_X86_64_GOTPCREL },
OPERAND_TYPE_IMM32_32S_DISP32 },
{ "TLSGD", { BFD_RELOC_386_TLS_GD,
BFD_RELOC_X86_64_TLSGD },
OPERAND_TYPE_IMM32_32S_DISP32 },
{ "TLSLDM", { BFD_RELOC_386_TLS_LDM,
0 },
_dummy_first_bfd_reloc_code_real },
OPERAND_TYPE_NONE },
{ "TLSLD", { 0,
{ "TLSLD", { _dummy_first_bfd_reloc_code_real,
BFD_RELOC_X86_64_TLSLD },
OPERAND_TYPE_IMM32_32S_DISP32 },
{ "GOTTPOFF", { BFD_RELOC_386_TLS_IE_32,
......@@ -6050,17 +6050,17 @@ lex_got (enum bfd_reloc_code_real *reloc,
BFD_RELOC_X86_64_TPOFF32 },
OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
{ "NTPOFF", { BFD_RELOC_386_TLS_LE,
0 },
_dummy_first_bfd_reloc_code_real },
OPERAND_TYPE_NONE },
{ "DTPOFF", { BFD_RELOC_386_TLS_LDO_32,
BFD_RELOC_X86_64_DTPOFF32 },
OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
{ "GOTNTPOFF",{ BFD_RELOC_386_TLS_GOTIE,
0 },
_dummy_first_bfd_reloc_code_real },
OPERAND_TYPE_NONE },
{ "INDNTPOFF",{ BFD_RELOC_386_TLS_IE,
0 },
_dummy_first_bfd_reloc_code_real },
OPERAND_TYPE_NONE },
{ "GOT", { BFD_RELOC_386_GOT32,
BFD_RELOC_X86_64_GOT32 },
......@@ -6125,7 +6125,7 @@ lex_got (enum bfd_reloc_code_real *reloc,
/* Allocate and copy string. The trailing NUL shouldn't
be necessary, but be safe. */
tmpbuf = xmalloc (first + second + 2);
tmpbuf = (char *) xmalloc (first + second + 2);
memcpy (tmpbuf, input_line_pointer, first);
if (second != 0 && *past_reloc != ' ')
/* Replace the relocation token with ' ', so that
......@@ -7104,7 +7104,7 @@ md_estimate_size_before_relax (fragP, segment)
int old_fr_fix;
if (fragP->fr_var != NO_RELOC)
reloc_type = fragP->fr_var;
reloc_type = (enum bfd_reloc_code_real) fragP->fr_var;
else if (size == 2)
reloc_type = BFD_RELOC_16_PCREL;
else
......@@ -7553,7 +7553,7 @@ parse_real_register (char *reg_string, char **end_op)
if (*s == ')')
{
*end_op = s + 1;
r = hash_find (reg_hash, "st(0)");
r = (const reg_entry *) hash_find (reg_hash, "st(0)");
know (r);
return r + fpr;
}
......
......@@ -63,6 +63,10 @@
# define DWARF2_ADDR_SIZE(bfd) (bfd_arch_bits_per_address (bfd) / 8)
#endif
struct cfi_escape_data {
struct cfi_escape_data *next;
expressionS exp;
};
struct cfi_insn_data