mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:54:41 +08:00
* 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.
This commit is contained in:
parent
e23bb3fc84
commit
1e9cc1c27b
@ -1,3 +1,7 @@
|
||||
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 ""
|
||||
|
||||
|
@ -1,3 +1,7 @@
|
||||
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"
|
||||
|
105
gas/ChangeLog
105
gas/ChangeLog
@ -1,3 +1,56 @@
|
||||
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;
|
||||
}
|
||||
|
9
gas/as.c
9
gas/as.c
@ -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 (¬es, s, name_length + 1);
|
||||
S_SET_NAME (sym, obstack_finish (¬es));
|
||||
S_SET_NAME (sym, (const char *) obstack_finish (¬es));
|
||||
}
|
||||
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
|
||||
{
|
||||
@ -87,10 +91,7 @@ struct cfi_insn_data
|
||||
symbolS *lab2;
|
||||
} ll;
|
||||
|
||||
struct cfi_escape_data {
|
||||
struct cfi_escape_data *next;
|
||||
expressionS exp;
|
||||
} *esc;
|
||||
struct cfi_escape_data *esc;
|
||||
|
||||
struct {
|
||||
unsigned reg, encoding;
|
||||
@ -155,9 +156,11 @@ struct frch_cfi_data
|
||||
static struct fde_entry *
|
||||
alloc_fde_entry (void)
|
||||
{
|
||||
struct fde_entry *fde = xcalloc (1, sizeof (struct fde_entry));
|
||||
struct fde_entry *fde = (struct fde_entry *)
|
||||
xcalloc (1, sizeof (struct fde_entry));
|
||||
|
||||
frchain_now->frch_cfi_data = xcalloc (1, sizeof (struct frch_cfi_data));
|
||||
frchain_now->frch_cfi_data = (struct frch_cfi_data *)
|
||||
xcalloc (1, sizeof (struct frch_cfi_data));
|
||||
frchain_now->frch_cfi_data->cur_fde_data = fde;
|
||||
*last_fde_data = fde;
|
||||
last_fde_data = &fde->next;
|
||||
@ -179,7 +182,8 @@ alloc_fde_entry (void)
|
||||
static struct cfi_insn_data *
|
||||
alloc_cfi_insn_data (void)
|
||||
{
|
||||
struct cfi_insn_data *insn = xcalloc (1, sizeof (struct cfi_insn_data));
|
||||
struct cfi_insn_data *insn = (struct cfi_insn_data *)
|
||||
xcalloc (1, sizeof (struct cfi_insn_data));
|
||||
struct fde_entry *cur_fde_data = frchain_now->frch_cfi_data->cur_fde_data;
|
||||
|
||||
*cur_fde_data->last = insn;
|
||||
@ -353,7 +357,7 @@ cfi_add_CFA_remember_state (void)
|
||||
|
||||
cfi_add_CFA_insn (DW_CFA_remember_state);
|
||||
|
||||
p = xmalloc (sizeof (*p));
|
||||
p = (struct cfa_save_data *) xmalloc (sizeof (*p));
|
||||
p->cfa_offset = frchain_now->frch_cfi_data->cur_cfa_offset;
|
||||
p->next = frchain_now->frch_cfi_data->cfa_save_stack;
|
||||
frchain_now->frch_cfi_data->cfa_save_stack = p;
|
||||
@ -637,7 +641,7 @@ dot_cfi_escape (int ignored ATTRIBUTE_UNUSED)
|
||||
tail = &head;
|
||||
do
|
||||
{
|
||||
e = xmalloc (sizeof (*e));
|
||||
e = (struct cfi_escape_data *) xmalloc (sizeof (*e));
|
||||
do_parse_cons_expression (&e->exp, 1);
|
||||
*tail = e;
|
||||
tail = &e->next;
|
||||
@ -1454,7 +1458,7 @@ select_cie_for_fde (struct fde_entry *fde, struct cfi_insn_data **pfirst)
|
||||
fail:;
|
||||
}
|
||||
|
||||
cie = xmalloc (sizeof (struct cie_entry));
|
||||
cie = (struct cie_entry *) xmalloc (sizeof (struct cie_entry));
|
||||
cie->next = cie_root;
|
||||
cie_root = cie;
|
||||
cie->return_column = fde->return_column;
|
||||
|
@ -168,6 +168,10 @@ struct line_seg {
|
||||
|
||||
/* Collects data for all line table entries during assembly. */
|
||||
static struct line_seg *all_segs;
|
||||
/* Hash used to quickly lookup a segment by name, avoiding the need to search
|
||||
through the all_segs list. */
|
||||
static struct hash_control *all_segs_hash;
|
||||
static struct line_seg **last_seg_ptr;
|
||||
|
||||
struct file_entry {
|
||||
const char *filename;
|
||||
@ -230,23 +234,25 @@ get_line_subseg (segT seg, subsegT subseg)
|
||||
static subsegT last_subseg;
|
||||
static struct line_subseg *last_line_subseg;
|
||||
|
||||
struct line_seg **ps, *s;
|
||||
struct line_seg *s;
|
||||
struct line_subseg **pss, *ss;
|
||||
|
||||
if (seg == last_seg && subseg == last_subseg)
|
||||
return last_line_subseg;
|
||||
|
||||
for (ps = &all_segs; (s = *ps) != NULL; ps = &s->next)
|
||||
if (s->seg == seg)
|
||||
goto found_seg;
|
||||
s = (struct line_seg *) hash_find (all_segs_hash, seg->name);
|
||||
if (s == NULL)
|
||||
{
|
||||
s = (struct line_seg *) xmalloc (sizeof (*s));
|
||||
s->next = NULL;
|
||||
s->seg = seg;
|
||||
s->head = NULL;
|
||||
*last_seg_ptr = s;
|
||||
last_seg_ptr = &s->next;
|
||||
hash_insert (all_segs_hash, seg->name, s);
|
||||
}
|
||||
gas_assert (seg == s->seg);
|
||||
|
||||
s = (struct line_seg *) xmalloc (sizeof (*s));
|
||||
s->next = NULL;
|
||||
s->seg = seg;
|
||||
s->head = NULL;
|
||||
*ps = s;
|
||||
|
||||
found_seg:
|
||||
for (pss = &s->head; (ss = *pss) != NULL ; pss = &ss->next)
|
||||
{
|
||||
if (ss->subseg == subseg)
|
||||
@ -467,7 +473,7 @@ get_filenum (const char *filename, unsigned int num)
|
||||
xrealloc (dirs, (dir + 32) * sizeof (const char *));
|
||||
}
|
||||
|
||||
dirs[dir] = xmalloc (dir_len + 1);
|
||||
dirs[dir] = (char *) xmalloc (dir_len + 1);
|
||||
memcpy (dirs[dir], filename, dir_len);
|
||||
dirs[dir][dir_len] = '\0';
|
||||
dirs_in_use = dir + 1;
|
||||
@ -1702,6 +1708,14 @@ out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT ranges_seg)
|
||||
symbol_set_value_now (info_end);
|
||||
}
|
||||
|
||||
void
|
||||
dwarf2_init (void)
|
||||
{
|
||||
all_segs_hash = hash_new ();
|
||||
last_seg_ptr = &all_segs;
|
||||
}
|
||||
|
||||
|
||||
/* Finish the dwarf2 debug sections. We emit .debug.line if there
|
||||
were any .file/.loc directives, or --gdwarf2 was given, or if the
|
||||
file has a non-empty .debug_info section. If we emit .debug_line,
|
||||
|
@ -83,13 +83,15 @@ extern void dwarf2_emit_label (symbolS *);
|
||||
|
||||
/* True when we've seen a .loc directive recently. Used to avoid
|
||||
doing work when there's nothing to do. */
|
||||
bfd_boolean dwarf2_loc_directive_seen;
|
||||
extern bfd_boolean dwarf2_loc_directive_seen;
|
||||
|
||||
/* True when we're supposed to set the basic block mark whenever a label
|
||||
is seen. Unless the target is doing Something Weird, just call
|
||||
dwarf2_emit_label. */
|
||||
extern bfd_boolean dwarf2_loc_mark_labels;
|
||||
|
||||
extern void dwarf2_init (void);
|
||||
|
||||
extern void dwarf2_finish (void);
|
||||
|
||||
extern int dwarf2dbg_estimate_size_before_relax (fragS *);
|
||||
|
28
gas/ehopt.c
28
gas/ehopt.c
@ -227,6 +227,19 @@ get_cie_info (struct cie_info *info)
|
||||
return 1;
|
||||
}
|
||||
|
||||
enum frame_state
|
||||
{
|
||||
state_idle,
|
||||
state_saw_size,
|
||||
state_saw_cie_offset,
|
||||
state_saw_pc_begin,
|
||||
state_seeing_aug_size,
|
||||
state_skipping_aug,
|
||||
state_wait_loc4,
|
||||
state_saw_loc4,
|
||||
state_error,
|
||||
};
|
||||
|
||||
/* This function is called from emit_expr. It looks for cases which
|
||||
we can optimize.
|
||||
|
||||
@ -245,18 +258,7 @@ check_eh_frame (expressionS *exp, unsigned int *pnbytes)
|
||||
{
|
||||
struct frame_data
|
||||
{
|
||||
enum frame_state
|
||||
{
|
||||
state_idle,
|
||||
state_saw_size,
|
||||
state_saw_cie_offset,
|
||||
state_saw_pc_begin,
|
||||
state_seeing_aug_size,
|
||||
state_skipping_aug,
|
||||
state_wait_loc4,
|
||||
state_saw_loc4,
|
||||
state_error,
|
||||
} state;
|
||||
enum frame_state state;
|
||||
|
||||
int cie_info_ok;
|
||||
struct cie_info cie_info;
|
||||
@ -324,7 +326,7 @@ check_eh_frame (expressionS *exp, unsigned int *pnbytes)
|
||||
case state_saw_size:
|
||||
case state_saw_cie_offset:
|
||||
/* Assume whatever form it appears in, it appears atomically. */
|
||||
d->state += 1;
|
||||
d->state = (enum frame_state) (d->state + 1);
|
||||
break;
|
||||
|
||||
case state_saw_pc_begin:
|
||||
|
22
gas/expr.c
22
gas/expr.c
@ -48,7 +48,7 @@ static void mri_char_constant (expressionS *);
|
||||
static void current_location (expressionS *);
|
||||
static void clean_up_expression (expressionS * expressionP);
|
||||
static segT operand (expressionS *, enum expr_mode);
|
||||
static operatorT operator (int *);
|
||||
static operatorT operatorf (int *);
|
||||
|
||||
extern const char EXP_CHARS[], FLT_CHARS[];
|
||||
|
||||
@ -1228,9 +1228,9 @@ operand (expressionS *expressionP, enum expr_mode mode)
|
||||
|
||||
#ifdef md_operator
|
||||
{
|
||||
operatorT operator = md_operator (name, 1, &c);
|
||||
operatorT op = md_operator (name, 1, &c);
|
||||
|
||||
switch (operator)
|
||||
switch (op)
|
||||
{
|
||||
case O_uminus:
|
||||
*input_line_pointer = c;
|
||||
@ -1250,14 +1250,14 @@ operand (expressionS *expressionP, enum expr_mode mode)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (operator != O_absent && operator != O_illegal)
|
||||
if (op != O_absent && op != O_illegal)
|
||||
{
|
||||
*input_line_pointer = c;
|
||||
expr (9, expressionP, mode);
|
||||
expressionP->X_add_symbol = make_expr_symbol (expressionP);
|
||||
expressionP->X_op_symbol = NULL;
|
||||
expressionP->X_add_number = 0;
|
||||
expressionP->X_op = operator;
|
||||
expressionP->X_op = op;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1546,10 +1546,10 @@ expr_set_precedence (void)
|
||||
}
|
||||
|
||||
void
|
||||
expr_set_rank (operatorT operator, operator_rankT rank)
|
||||
expr_set_rank (operatorT op, operator_rankT rank)
|
||||
{
|
||||
gas_assert (operator >= O_md1 && operator < ARRAY_SIZE (op_rank));
|
||||
op_rank[operator] = rank;
|
||||
gas_assert (op >= O_md1 && op < ARRAY_SIZE (op_rank));
|
||||
op_rank[op] = rank;
|
||||
}
|
||||
|
||||
/* Initialize the expression parser. */
|
||||
@ -1572,7 +1572,7 @@ expr_begin (void)
|
||||
Does not advance INPUT_LINE_POINTER. */
|
||||
|
||||
static inline operatorT
|
||||
operator (int *num_chars)
|
||||
operatorf (int *num_chars)
|
||||
{
|
||||
int c;
|
||||
operatorT ret;
|
||||
@ -1732,7 +1732,7 @@ expr (int rankarg, /* Larger # is higher rank. */
|
||||
/* operand () gobbles spaces. */
|
||||
know (*input_line_pointer != ' ');
|
||||
|
||||
op_left = operator (&op_chars);
|
||||
op_left = operatorf (&op_chars);
|
||||
while (op_left != O_illegal && op_rank[(int) op_left] > rank)
|
||||
{
|
||||
segT rightseg;
|
||||
@ -1763,7 +1763,7 @@ expr (int rankarg, /* Larger # is higher rank. */
|
||||
}
|
||||
}
|
||||
|
||||
op_right = operator (&op_chars);
|
||||
op_right = operatorf (&op_chars);
|
||||
|
||||
know (op_right == O_illegal || op_left == O_index
|
||||
|| op_rank[(int) op_right] <= op_rank[(int) op_left]);
|
||||
|
@ -69,7 +69,7 @@ frag_alloc (struct obstack *ob)
|
||||
(void) obstack_alloc (ob, 0);
|
||||
oalign = obstack_alignment_mask (ob);
|
||||
obstack_alignment_mask (ob) = 0;
|
||||
ptr = obstack_alloc (ob, SIZEOF_STRUCT_FRAG);
|
||||
ptr = (fragS *) obstack_alloc (ob, SIZEOF_STRUCT_FRAG);
|
||||
obstack_alignment_mask (ob) = oalign;
|
||||
memset (ptr, 0, SIZEOF_STRUCT_FRAG);
|
||||
return ptr;
|
||||
|
@ -113,10 +113,10 @@ hash_new (void)
|
||||
|
||||
size = get_gas_hash_table_size ();
|
||||
|
||||
ret = xmalloc (sizeof *ret);
|
||||
ret = (struct hash_control *) xmalloc (sizeof *ret);
|
||||
obstack_begin (&ret->memory, chunksize);
|
||||
alloc = size * sizeof (struct hash_entry *);
|
||||
ret->table = obstack_alloc (&ret->memory, alloc);
|
||||
ret->table = (struct hash_entry **) obstack_alloc (&ret->memory, alloc);
|
||||
memset (ret->table, 0, alloc);
|
||||
ret->size = size;
|
||||
|
||||
@ -237,7 +237,7 @@ hash_insert (struct hash_control *table, const char *key, void *value)
|
||||
++table->insertions;
|
||||
#endif
|
||||
|
||||
p = obstack_alloc (&table->memory, sizeof (*p));
|
||||
p = (struct hash_entry *) obstack_alloc (&table->memory, sizeof (*p));
|
||||
p->string = key;
|
||||
p->hash = hash;
|
||||
p->data = value;
|
||||
@ -274,7 +274,7 @@ hash_jam (struct hash_control *table, const char *key, void *value)
|
||||
++table->insertions;
|
||||
#endif
|
||||
|
||||
p = obstack_alloc (&table->memory, sizeof (*p));
|
||||
p = (struct hash_entry *) obstack_alloc (&table->memory, sizeof (*p));
|
||||
p->string = key;
|
||||
p->hash = hash;
|
||||
p->data = value;
|
||||
|
@ -165,7 +165,8 @@ input_scrub_push (char *saved_position)
|
||||
buffer_length = input_file_buffer_size ();
|
||||
sb_index = -1;
|
||||
|
||||
buffer_start = xmalloc ((BEFORE_SIZE + buffer_length + buffer_length + AFTER_SIZE));
|
||||
buffer_start = (char *) xmalloc ((BEFORE_SIZE + buffer_length
|
||||
+ buffer_length + AFTER_SIZE));
|
||||
memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE);
|
||||
|
||||
return saved;
|
||||
@ -209,7 +210,8 @@ input_scrub_begin (void)
|
||||
|
||||
buffer_length = input_file_buffer_size ();
|
||||
|
||||
buffer_start = xmalloc ((BEFORE_SIZE + buffer_length + buffer_length + AFTER_SIZE));
|
||||
buffer_start = (char *) xmalloc ((BEFORE_SIZE + buffer_length
|
||||
+ buffer_length + AFTER_SIZE));
|
||||
memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE);
|
||||
|
||||
/* Line number things. */
|
||||
@ -363,10 +365,10 @@ input_scrub_next_buffer (char **bufp)
|
||||
|
||||
limoff = limit - buffer_start;
|
||||
buffer_length += input_file_buffer_size ();
|
||||
buffer_start = xrealloc (buffer_start,
|
||||
(BEFORE_SIZE
|
||||
+ 2 * buffer_length
|
||||
+ AFTER_SIZE));
|
||||
buffer_start = (char *) xrealloc (buffer_start,
|
||||
(BEFORE_SIZE
|
||||
+ 2 * buffer_length
|
||||
+ AFTER_SIZE));
|
||||
*bufp = buffer_start + BEFORE_SIZE;
|
||||
limit = input_file_give_next_buffer (buffer_start + limoff);
|
||||
|
||||
|
@ -130,6 +130,18 @@ typedef struct file_info_struct
|
||||
int at_end;
|
||||
} file_info_type;
|
||||
|
||||
enum edict_enum
|
||||
{
|
||||
EDICT_NONE,
|
||||
EDICT_SBTTL,
|
||||
EDICT_TITLE,
|
||||
EDICT_NOLIST,
|
||||
EDICT_LIST,
|
||||
EDICT_NOLIST_NEXT,
|
||||
EDICT_EJECT
|
||||
};
|
||||
|
||||
|
||||
/* This structure remembers which line from which file goes into which
|
||||
frag. */
|
||||
struct list_info_struct
|
||||
@ -160,16 +172,7 @@ struct list_info_struct
|
||||
/* Pointer to any error message associated with this line. */
|
||||
char *message;
|
||||
|
||||
enum
|
||||
{
|
||||
EDICT_NONE,
|
||||
EDICT_SBTTL,
|
||||
EDICT_TITLE,
|
||||
EDICT_NOLIST,
|
||||
EDICT_LIST,
|
||||
EDICT_NOLIST_NEXT,
|
||||
EDICT_EJECT
|
||||
} edict;
|
||||
enum edict_enum edict;
|
||||
char *edict_arg;
|
||||
|
||||
/* Nonzero if this line is to be omitted because it contains
|
||||
@ -260,7 +263,7 @@ file_info (const char *file_name)
|
||||
}
|
||||
|
||||
/* Make new entry. */
|
||||
p = xmalloc (sizeof (file_info_type));
|
||||
p = (file_info_type *) xmalloc (sizeof (file_info_type));
|
||||
p->next = file_info_head;
|
||||
file_info_head = p;
|
||||
p->filename = xstrdup (file_name);
|
||||
@ -352,7 +355,7 @@ listing_newline (char *ps)
|
||||
|
||||
len = (copy - input_line_pointer) + 2;
|
||||
|
||||
copy = xmalloc (len);
|
||||
copy = (char *) xmalloc (len);
|
||||
|
||||
if (copy != NULL)
|
||||
{
|
||||
@ -1147,8 +1150,8 @@ listing_listing (char *name ATTRIBUTE_UNUSED)
|
||||
int show_listing = 1;
|
||||
unsigned int width;
|
||||
|
||||
buffer = xmalloc (listing_rhs_width);
|
||||
data_buffer = xmalloc (MAX_BYTES);
|
||||
buffer = (char *) xmalloc (listing_rhs_width);
|
||||
data_buffer = (char *) xmalloc (MAX_BYTES);
|
||||
eject = 1;
|
||||
list = head->next;
|
||||
|
||||
@ -1509,7 +1512,7 @@ listing_title (int depth)
|
||||
if (listing)
|
||||
{
|
||||
length = input_line_pointer - start;
|
||||
ttl = xmalloc (length + 1);
|
||||
ttl = (char *) xmalloc (length + 1);
|
||||
memcpy (ttl, start, length);
|
||||
ttl[length] = 0;
|
||||
listing_tail->edict = depth ? EDICT_SBTTL : EDICT_TITLE;
|
||||
|
@ -393,7 +393,7 @@ get_any_string (int idx, sb *in, sb *out)
|
||||
}
|
||||
else
|
||||
{
|
||||
char *br_buf = xmalloc(1);
|
||||
char *br_buf = (char *) xmalloc(1);
|
||||
char *in_br = br_buf;
|
||||
|
||||
*in_br = '\0';
|
||||
@ -424,7 +424,7 @@ get_any_string (int idx, sb *in, sb *out)
|
||||
--in_br;
|
||||
else
|
||||
{
|
||||
br_buf = xmalloc(strlen(in_br) + 2);
|
||||
br_buf = (char *) xmalloc(strlen(in_br) + 2);
|
||||
strcpy(br_buf + 1, in_br);
|
||||
free(in_br);
|
||||
in_br = br_buf;
|
||||
@ -457,7 +457,7 @@ new_formal (void)
|
||||
{
|
||||
formal_entry *formal;
|
||||
|
||||
formal = xmalloc (sizeof (formal_entry));
|
||||
formal = (formal_entry *) xmalloc (sizeof (formal_entry));
|
||||
|
||||
sb_new (&formal->name);
|
||||
sb_new (&formal->def);
|
||||
@ -1273,7 +1273,7 @@ delete_macro (const char *name)
|
||||
/* We can only ask hash_delete to free memory if we are deleting
|
||||
macros in reverse order to their definition.
|
||||
So just clear out the entry. */
|
||||
if ((macro = hash_find (macro_hash, copy)) != NULL)
|
||||
if ((macro = (macro_entry *) hash_find (macro_hash, copy)) != NULL)
|
||||
{
|
||||
hash_jam (macro_hash, copy, NULL);
|
||||
free_macro (macro);
|
||||
|
14
gas/macro.h
14
gas/macro.h
@ -34,6 +34,13 @@
|
||||
name and its default value. Each time the macro is expanded, the
|
||||
formals get the actual values attached to them. */
|
||||
|
||||
enum formal_type
|
||||
{
|
||||
FORMAL_OPTIONAL,
|
||||
FORMAL_REQUIRED,
|
||||
FORMAL_VARARG
|
||||
};
|
||||
|
||||
/* Describe the formal arguments to a macro. */
|
||||
|
||||
typedef struct formal_struct {
|
||||
@ -42,12 +49,7 @@ typedef struct formal_struct {
|
||||
sb def; /* The default value. */
|
||||
sb actual; /* The actual argument (changed on each expansion). */
|
||||
int index; /* The index of the formal 0..formal_count - 1. */
|
||||
enum formal_type
|
||||
{
|
||||
FORMAL_OPTIONAL,
|
||||
FORMAL_REQUIRED,
|
||||
FORMAL_VARARG
|
||||
} type; /* The kind of the formal. */
|
||||
enum formal_type type; /* The kind of the formal. */
|
||||
} formal_entry;
|
||||
|
||||
/* Other values found in the index field of a formal_entry. */
|
||||
|
@ -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:09+0200\n"
|
||||
"POT-Creation-Date: 2009-09-07 14:09+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"
|
||||
|
25
gas/read.c
25
gas/read.c
@ -1034,7 +1034,7 @@ read_a_source_file (char *name)
|
||||
that goes with this #APP There is one. The specs
|
||||
guarantee it... */
|
||||
tmp_len = buffer_limit - s;
|
||||
tmp_buf = xmalloc (tmp_len + 1);
|
||||
tmp_buf = (char *) xmalloc (tmp_len + 1);
|
||||
memcpy (tmp_buf, s, tmp_len);
|
||||
do
|
||||
{
|
||||
@ -1050,7 +1050,7 @@ read_a_source_file (char *name)
|
||||
else
|
||||
num = buffer_limit - buffer;
|
||||
|
||||
tmp_buf = xrealloc (tmp_buf, tmp_len + num);
|
||||
tmp_buf = (char *) xrealloc (tmp_buf, tmp_len + num);
|
||||
memcpy (tmp_buf + tmp_len, buffer, num);
|
||||
tmp_len += num;
|
||||
}
|
||||
@ -1087,7 +1087,7 @@ read_a_source_file (char *name)
|
||||
break;
|
||||
}
|
||||
|
||||
new_buf = xrealloc (new_buf, new_length + 100);
|
||||
new_buf = (char *) xrealloc (new_buf, new_length + 100);
|
||||
new_tmp = new_buf + new_length;
|
||||
new_length += 100;
|
||||
}
|
||||
@ -2097,7 +2097,7 @@ s_vendor_attribute (int vendor)
|
||||
if (i == 0)
|
||||
goto bad;
|
||||
|
||||
name = alloca (i + 1);
|
||||
name = (char *) alloca (i + 1);
|
||||
memcpy (name, s, i);
|
||||
name[i] = '\0';
|
||||
|
||||
@ -3857,7 +3857,7 @@ s_reloc (int ignore ATTRIBUTE_UNUSED)
|
||||
int c;
|
||||
struct reloc_list *reloc;
|
||||
|
||||
reloc = xmalloc (sizeof (*reloc));
|
||||
reloc = (struct reloc_list *) xmalloc (sizeof (*reloc));
|
||||
|
||||
if (flag_mri)
|
||||
stop = mri_comment_field (&stopc);
|
||||
@ -5407,7 +5407,7 @@ demand_copy_string (int *lenP)
|
||||
/* JF this next line is so demand_copy_C_string will return a
|
||||
null terminated string. */
|
||||
obstack_1grow (¬es, '\0');
|
||||
retval = obstack_finish (¬es);
|
||||
retval = (char *) obstack_finish (¬es);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -5516,7 +5516,7 @@ s_incbin (int x ATTRIBUTE_UNUSED)
|
||||
{
|
||||
int i;
|
||||
|
||||
path = xmalloc ((unsigned long) len + include_dir_maxlen + 5);
|
||||
path = (char *) xmalloc ((unsigned long) len + include_dir_maxlen + 5);
|
||||
|
||||
for (i = 0; i < include_dir_count; i++)
|
||||
{
|
||||
@ -5586,7 +5586,7 @@ s_include (int arg ATTRIBUTE_UNUSED)
|
||||
{
|
||||
char *filename;
|
||||
int i;
|
||||
FILE *try;
|
||||
FILE *try_file;
|
||||
char *path;
|
||||
|
||||
if (!flag_m68k_mri)
|
||||
@ -5613,22 +5613,23 @@ s_include (int arg ATTRIBUTE_UNUSED)
|
||||
}
|
||||
|
||||
obstack_1grow (¬es, '\0');
|
||||
filename = obstack_finish (¬es);
|
||||
filename = (char *) obstack_finish (¬es);
|
||||
while (!is_end_of_line[(unsigned char) *input_line_pointer])
|
||||
++input_line_pointer;
|
||||
}
|
||||
|
||||
demand_empty_rest_of_line ();
|
||||
path = xmalloc ((unsigned long) i + include_dir_maxlen + 5 /* slop */ );
|
||||
path = (char *) xmalloc ((unsigned long) i
|
||||
+ include_dir_maxlen + 5 /* slop */ );
|
||||
|
||||
for (i = 0; i < include_dir_count; i++)
|
||||
{
|
||||
strcpy (path, include_dirs[i]);
|
||||
strcat (path, "/");
|
||||
strcat (path, filename);
|
||||
if (0 != (try = fopen (path, FOPEN_RT)))
|
||||
if (0 != (try_file = fopen (path, FOPEN_RT)))
|
||||
{
|
||||
fclose (try);
|
||||
fclose (try_file);
|
||||
goto gotit;
|
||||
}
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ add_debug_prefix_map (const char *arg)
|
||||
as_fatal (_("invalid argument '%s' to -fdebug-prefix-map"), arg);
|
||||
return;
|
||||
}
|
||||
map = xmalloc (sizeof (debug_prefix_map));
|
||||
map = (struct debug_prefix_map *) xmalloc (sizeof (debug_prefix_map));
|
||||
o = xstrdup (arg);
|
||||
map->old_prefix = o;
|
||||
map->old_len = p - arg;
|
||||
|
@ -498,7 +498,7 @@ stabs_generate_asm_file (void)
|
||||
char *dir2;
|
||||
|
||||
dir = remap_debug_filename (getpwd ());
|
||||
dir2 = alloca (strlen (dir) + 2);
|
||||
dir2 = (char *) alloca (strlen (dir) + 2);
|
||||
sprintf (dir2, "%s%s", dir, "/");
|
||||
generate_asm_file (N_SO, dir2);
|
||||
}
|
||||
@ -536,7 +536,7 @@ generate_asm_file (int type, char *file)
|
||||
/* Allocate enough space for the file name (possibly extended with
|
||||
doubled up backslashes), the symbol name, and the other characters
|
||||
that make up a stabs file directive. */
|
||||
bufp = buf = xmalloc (2 * strlen (file) + strlen (sym) + 12);
|
||||
bufp = buf = (char *) xmalloc (2 * strlen (file) + strlen (sym) + 12);
|
||||
|
||||
*bufp++ = '"';
|
||||
|
||||
|
@ -65,7 +65,7 @@ subseg_change (register segT seg, register int subseg)
|
||||
|
||||
if (! seginfo)
|
||||
{
|
||||
seginfo = xcalloc (1, sizeof (*seginfo));
|
||||
seginfo = (segment_info_type *) xcalloc (1, sizeof (*seginfo));
|
||||
seginfo->bfd_section = seg;
|
||||
bfd_set_section_userdata (stdoutput, seg, seginfo);
|
||||
}
|
||||
@ -103,7 +103,7 @@ subseg_set_rest (segT seg, subsegT subseg)
|
||||
{
|
||||
/* This should be the only code that creates a frchainS. */
|
||||
|
||||
newP = obstack_alloc (&frchains, sizeof (frchainS));
|
||||
newP = (frchainS *) obstack_alloc (&frchains, sizeof (frchainS));
|
||||
newP->frch_subseg = subseg;
|
||||
newP->fix_root = NULL;
|
||||
newP->fix_tail = NULL;
|
||||
@ -167,7 +167,7 @@ subseg_get (const char *segname, int force_new)
|
||||
if (! seginfo)
|
||||
{
|
||||
secptr->output_section = secptr;
|
||||
seginfo = xcalloc (1, sizeof (*seginfo));
|
||||
seginfo = (segment_info_type *) xcalloc (1, sizeof (*seginfo));
|
||||
seginfo->bfd_section = secptr;
|
||||
bfd_set_section_userdata (stdoutput, secptr, seginfo);
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ save_symbol_name (const char *name)
|
||||
|
||||
name_length = strlen (name) + 1; /* +1 for \0. */
|
||||
obstack_grow (¬es, name, name_length);
|
||||
ret = obstack_finish (¬es);
|
||||
ret = (char *) obstack_finish (¬es);
|
||||
|
||||
#ifdef tc_canonicalize_symbol_name
|
||||
ret = tc_canonicalize_symbol_name (ret);
|
||||
@ -137,7 +137,7 @@ symbol_create (const char *name, /* It is copied, the caller can destroy/modify.
|
||||
|
||||
preserved_copy_of_name = save_symbol_name (name);
|
||||
|
||||
symbolP = obstack_alloc (¬es, sizeof (symbolS));
|
||||
symbolP = (symbolS *) obstack_alloc (¬es, sizeof (symbolS));
|
||||
|
||||
/* symbol must be born in some fixed state. This seems as good as any. */
|
||||
memset (symbolP, 0, sizeof (symbolS));
|
||||
@ -197,7 +197,7 @@ local_symbol_make (const char *name, segT section, valueT value, fragS *frag)
|
||||
|
||||
name_copy = save_symbol_name (name);
|
||||
|
||||
ret = obstack_alloc (¬es, sizeof *ret);
|
||||
ret = (struct local_symbol *) obstack_alloc (¬es, sizeof *ret);
|
||||
ret->lsy_marker = NULL;
|
||||
ret->lsy_name = name_copy;
|
||||
ret->lsy_section = section;
|
||||
@ -563,7 +563,7 @@ symbol_clone (symbolS *orgsymP, int replace)
|
||||
orgsymP = local_symbol_convert ((struct local_symbol *) orgsymP);
|
||||
bsymorg = orgsymP->bsym;
|
||||
|
||||
newsymP = obstack_alloc (¬es, sizeof (*newsymP));
|
||||
newsymP = (symbolS *) obstack_alloc (¬es, sizeof (*newsymP));
|
||||
*newsymP = *orgsymP;
|
||||
bsymnew = bfd_make_empty_symbol (bfd_asymbol_bfd (bsymorg));
|
||||
if (bsymnew == NULL)
|
||||
@ -1453,7 +1453,7 @@ static void
|
||||
resolve_local_symbol (const char *key ATTRIBUTE_UNUSED, void *value)
|
||||
{
|
||||
if (value != NULL)
|
||||
resolve_symbol_value (value);
|
||||
resolve_symbol_value ((symbolS *) value);
|
||||
}
|
||||
|
||||
/* Resolve all local symbols. */
|
||||
@ -1603,7 +1603,7 @@ define_dollar_label (long label)
|
||||
{
|
||||
dollar_labels = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long));
|
||||
dollar_label_instances = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long));
|
||||
dollar_label_defines = xmalloc (DOLLAR_LABEL_BUMP_BY);
|
||||
dollar_label_defines = (char *) xmalloc (DOLLAR_LABEL_BUMP_BY);
|
||||
dollar_label_max = DOLLAR_LABEL_BUMP_BY;
|
||||
dollar_label_count = 0;
|
||||
}
|
||||
@ -1614,7 +1614,7 @@ define_dollar_label (long label)
|
||||
dollar_label_max * sizeof (long));
|
||||
dollar_label_instances = (long *) xrealloc ((char *) dollar_label_instances,
|
||||
dollar_label_max * sizeof (long));
|
||||
dollar_label_defines = xrealloc (dollar_label_defines, dollar_label_max);
|
||||
dollar_label_defines = (char *) xrealloc (dollar_label_defines, dollar_label_max);
|
||||
} /* if we needed to grow */
|
||||
|
||||
dollar_labels[dollar_label_count] = label;
|
||||
@ -1887,7 +1887,7 @@ decode_local_label_name (char *s)
|
||||
instance_number = (10 * instance_number) + *p - '0';
|
||||
|
||||
message_format = _("\"%d\" (instance number %d of a %s label)");
|
||||
symbol_decode = obstack_alloc (¬es, strlen (message_format) + 30);
|
||||
symbol_decode = (char *) obstack_alloc (¬es, strlen (message_format) + 30);
|
||||
sprintf (symbol_decode, message_format, label_number, instance_number, type);
|
||||
|
||||
return symbol_decode;
|
||||
|
@ -156,7 +156,7 @@ fix_new_internal (fragS *frag, /* Which frag? */
|
||||
|
||||
n_fixups++;
|
||||
|
||||
fixP = obstack_alloc (¬es, sizeof (fixS));
|
||||
fixP = (fixS *) obstack_alloc (¬es, sizeof (fixS));
|
||||
|
||||
fixP->fx_frag = frag;
|
||||
fixP->fx_where = where;
|
||||
@ -1170,7 +1170,7 @@ write_relocs (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
|
||||
rp = &r->next;
|
||||
}
|
||||
|
||||
relocs = xcalloc (n, sizeof (arelent *));
|
||||
relocs = (arelent **) xcalloc (n, sizeof (arelent *));
|
||||
|
||||
i = 0;
|
||||
for (fixp = seginfo->fix_root; fixp != (fixS *) NULL; fixp = fixp->fx_next)
|
||||
@ -1398,7 +1398,7 @@ set_symtab (void)
|
||||
int i;
|
||||
bfd_size_type amt = (bfd_size_type) nsyms * sizeof (asymbol *);
|
||||
|
||||
asympp = bfd_alloc (stdoutput, amt);
|
||||
asympp = (asymbol **) bfd_alloc (stdoutput, amt);
|
||||
symp = symbol_rootP;
|
||||
for (i = 0; i < nsyms; i++, symp = symbol_next (symp))
|
||||
{
|
||||
|
@ -1,3 +1,7 @@
|
||||
2009-09-11 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* po/gold.pot: Updated by the Translation project.
|
||||
|
||||
2009-09-08 Cary Coutant <ccoutant@google.com>
|
||||
|
||||
* output.cc (Output_file::open): Add execute permission to empty file.
|
||||
|
@ -1,3 +1,19 @@
|
||||
2009-09-11 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* po/gprof.pot: Updated by the Translation project.
|
||||
* po/sv.po: Updated Swedish translation.
|
||||
|
||||
2009-09-11 Martin Thuresson <martint@google.com>
|
||||
|
||||
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.
|
||||
|
||||
2009-09-07 Tristan Gingold <gingold@adacore.com>
|
||||
|
||||
* po/gprof.pot: Regenerate.
|
||||
|
@ -319,7 +319,7 @@ print_exec_counts ()
|
||||
static void
|
||||
annotate_with_count (char *buf, unsigned int width, int line_num, PTR arg)
|
||||
{
|
||||
Source_File *sf = arg;
|
||||
Source_File *sf = (Source_File *) arg;
|
||||
Sym *b;
|
||||
unsigned int i;
|
||||
static unsigned long last_count;
|
||||
@ -328,7 +328,7 @@ annotate_with_count (char *buf, unsigned int width, int line_num, PTR arg)
|
||||
b = NULL;
|
||||
|
||||
if (line_num <= sf->num_lines)
|
||||
b = sf->line[line_num - 1];
|
||||
b = (Sym *) sf->line[line_num - 1];
|
||||
|
||||
if (!b)
|
||||
{
|
||||
@ -488,7 +488,7 @@ print_annotated_source ()
|
||||
{
|
||||
if (sf->num_lines > 0)
|
||||
{
|
||||
sf->line = (void *) xmalloc (sf->num_lines * sizeof (sf->line[0]));
|
||||
sf->line = (void **) xmalloc (sf->num_lines * sizeof (sf->line[0]));
|
||||
memset (sf->line, 0, sf->num_lines * sizeof (sf->line[0]));
|
||||
}
|
||||
}
|
||||
@ -502,7 +502,7 @@ print_annotated_source ()
|
||||
&& !sym_lookup (&syms[EXCL_ANNO], sym->addr))))
|
||||
{
|
||||
sym->file->ncalls += sym->ncalls;
|
||||
line_stats = sym->file->line[sym->line_num - 1];
|
||||
line_stats = (Sym *) sym->file->line[sym->line_num - 1];
|
||||
|
||||
if (!line_stats)
|
||||
{
|
||||
@ -552,7 +552,7 @@ print_annotated_source ()
|
||||
|
||||
for (i = 0; i < table_len; ++i)
|
||||
{
|
||||
sym = sf->line[i];
|
||||
sym = (Sym *) sf->line[i];
|
||||
|
||||
if (!sym || sym->ncalls == 0)
|
||||
break;
|
||||
|
@ -217,7 +217,8 @@ pre_visit (Sym *parent)
|
||||
if (dfn_depth >= dfn_maxdepth)
|
||||
{
|
||||
dfn_maxdepth += DFN_INCR_DEPTH;
|
||||
dfn_stack = xrealloc (dfn_stack, dfn_maxdepth * sizeof *dfn_stack);
|
||||
dfn_stack = (DFN_Stack *) xrealloc (dfn_stack,
|
||||
dfn_maxdepth * sizeof *dfn_stack);
|
||||
}
|
||||
|
||||
dfn_stack[dfn_depth].sym = parent;
|
||||
|
@ -140,7 +140,7 @@ read_function_mappings (const char *filename)
|
||||
}
|
||||
|
||||
/* dummy has the filename, go ahead and copy it. */
|
||||
symbol_map[count].file_name = xmalloc (strlen (dummy) + 1);
|
||||
symbol_map[count].file_name = (char *) xmalloc (strlen (dummy) + 1);
|
||||
strcpy (symbol_map[count].file_name, dummy);
|
||||
|
||||
/* Now we need the function name. */
|
||||
@ -148,7 +148,7 @@ read_function_mappings (const char *filename)
|
||||
if (!matches)
|
||||
parse_error (filename);
|
||||
tmp = strrchr (dummy, ' ') + 1;
|
||||
symbol_map[count].function_name = xmalloc (strlen (tmp) + 1);
|
||||
symbol_map[count].function_name = (char *) xmalloc (strlen (tmp) + 1);
|
||||
strcpy (symbol_map[count].function_name, tmp);
|
||||
count++;
|
||||
}
|
||||
@ -227,7 +227,7 @@ core_init (const char * aout_name)
|
||||
long i;
|
||||
|
||||
new_size = (core_num_syms + synth_count + 1) * sizeof (*core_syms);
|
||||
core_syms = xrealloc (core_syms, new_size);
|
||||
core_syms = (asymbol **) xrealloc (core_syms, new_size);
|
||||
symp = core_syms + core_num_syms;
|
||||
core_num_syms += synth_count;
|
||||
for (i = 0; i < synth_count; i++)
|
||||
@ -577,8 +577,10 @@ core_create_function_syms (void)
|
||||
/* Don't create a symtab entry for a function that has
|
||||
a mapping to a file, unless it's the first function
|
||||
in the file. */
|
||||
found = bsearch (core_syms[i]->name, symbol_map, symbol_map_count,
|
||||
sizeof (struct function_map), search_mapped_symbol);
|
||||
found = (struct function_map *) bsearch (core_syms[i]->name, symbol_map,
|
||||
symbol_map_count,
|
||||
sizeof (struct function_map),
|
||||
search_mapped_symbol);
|
||||
if (found == NULL || found->is_first)
|
||||
++symtab.len;
|
||||
}
|
||||
@ -609,7 +611,8 @@ core_create_function_syms (void)
|
||||
continue;
|
||||
}
|
||||
|
||||
found = bsearch (core_syms[i]->name, symbol_map, symbol_map_count,
|
||||
found = (struct function_map *) bsearch (core_syms[i]->name, symbol_map,
|
||||
symbol_map_count,
|
||||
sizeof (struct function_map), search_mapped_symbol);
|
||||
if (found && ! found->is_first)
|
||||
continue;
|
||||
@ -726,8 +729,8 @@ core_create_line_syms (void)
|
||||
BFD would provide an iterator for enumerating all line infos. */
|
||||
prev_name_len = PATH_MAX;
|
||||
prev_filename_len = PATH_MAX;
|
||||
prev_name = xmalloc (prev_name_len);
|
||||
prev_filename = xmalloc (prev_filename_len);
|
||||
prev_name = (char *) xmalloc (prev_name_len);
|
||||
prev_filename = (char *) xmalloc (prev_filename_len);
|
||||
ltab.len = 0;
|
||||
prev_line_num = 0;
|
||||
|
||||
@ -751,7 +754,7 @@ core_create_line_syms (void)
|
||||
{
|
||||
prev_name_len = len + 1024;
|
||||
free (prev_name);
|
||||
prev_name = xmalloc (prev_name_len);
|
||||
prev_name = (char *) xmalloc (prev_name_len);
|
||||
}
|
||||
|
||||
strcpy (prev_name, dummy.name);
|
||||
@ -761,7 +764,7 @@ core_create_line_syms (void)
|
||||
{
|
||||
prev_filename_len = len + 1024;
|
||||
free (prev_filename);
|
||||
prev_filename = xmalloc (prev_filename_len);
|
||||
prev_filename = (char *) xmalloc (prev_filename_len);
|
||||
}
|
||||
|
||||
strcpy (prev_filename, filename);
|
||||
|
@ -493,13 +493,13 @@ gmon_out_read (const char *filename)
|
||||
if (!histograms)
|
||||
{
|
||||
num_histograms = 1;
|
||||
histograms = xmalloc (sizeof (struct histogram));
|
||||
histograms = (struct histogram *) xmalloc (sizeof (struct histogram));
|
||||
histograms->lowpc = tmp.low_pc;
|
||||
histograms->highpc = tmp.high_pc;
|
||||
histograms->num_bins = hist_num_bins;
|
||||
hist_scale = (double)((tmp.high_pc - tmp.low_pc) / sizeof (UNIT))
|
||||
/ hist_num_bins;
|
||||
histograms->sample = xmalloc (hist_num_bins * sizeof (int));
|
||||
histograms->sample = (int *) xmalloc (hist_num_bins * sizeof (int));
|
||||
memset (histograms->sample, 0,
|
||||
hist_num_bins * sizeof (int));
|
||||
}
|
||||
|
@ -198,8 +198,8 @@ hist_read_rec (FILE * ifp, const char *filename)
|
||||
|
||||
/* This is new record. Add it to global array and allocate space for
|
||||
the samples. */
|
||||
histograms = xrealloc (histograms,
|
||||
sizeof (histogram) * (num_histograms + 1));
|
||||
histograms = (struct histogram *)
|
||||
xrealloc (histograms, sizeof (histogram) * (num_histograms + 1));
|
||||
memcpy (histograms + num_histograms,
|
||||
&n_record, sizeof (histogram));
|
||||
record = &histograms[num_histograms];
|
||||
|
@ -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:10+0200\n"
|
||||
"POT-Creation-Date: 2009-09-07 14:10+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"
|
||||
|
245
gprof/po/sv.po
245
gprof/po/sv.po
@ -1,18 +1,19 @@
|
||||
# Swedish messages for gprof.
|
||||
# Copyright (C) 2001, 2002, 2004, 2006, 2007 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001, 2002, 2004, 2006, 2007, 2009 Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the binutils package.
|
||||
# Christian Rose <menthos@menthos.com>, 2001, 2002, 2004.
|
||||
# Daniel Nylander <po@danielnylander.se>, 2006, 2007.
|
||||
# Daniel Nylander <po@danielnylander.se>, 2006, 2007, 2009.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gprof 2.17.90\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2007-05-15 16:49+0930\n"
|
||||
"PO-Revision-Date: 2007-08-24 13:42+0100\n"
|
||||
"Project-Id-Version: gprof 2.19.90\n"
|
||||
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
|
||||
"POT-Creation-Date: 2009-09-07 14:10+0200\n"
|
||||
"PO-Revision-Date: 2009-09-11 09:46+0100\n"
|
||||
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
|
||||
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=iso-8859-1\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: alpha.c:102 mips.c:54
|
||||
@ -37,12 +38,12 @@ msgstr "[find_call] 0x%lx: bsr"
|
||||
#: basic_blocks.c:128 call_graph.c:89 hist.c:105
|
||||
#, c-format
|
||||
msgid "%s: %s: unexpected end of file\n"
|
||||
msgstr "%s: %s: oväntat filslut\n"
|
||||
msgstr "%s: %s: oväntat filslut\n"
|
||||
|
||||
#: basic_blocks.c:196
|
||||
#, c-format
|
||||
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
|
||||
msgstr "%s: varning: ignorerar exekveringsräkning för grundblock (använd -l eller --line)\n"
|
||||
msgstr "%s: varning: ignorerar exekveringsräkning för grundblock (använd -l eller --line)\n"
|
||||
|
||||
#. FIXME: This only works if bfd_vma is unsigned long.
|
||||
#: basic_blocks.c:289 basic_blocks.c:299
|
||||
@ -52,7 +53,7 @@ msgstr "%s:%d: (%s:0x%lx) %lu exekveringar\n"
|
||||
|
||||
#: basic_blocks.c:290 basic_blocks.c:300
|
||||
msgid "<unknown>"
|
||||
msgstr "<okänd>"
|
||||
msgstr "<okänd>"
|
||||
|
||||
#: basic_blocks.c:543
|
||||
#, c-format
|
||||
@ -66,7 +67,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Översta %d raderna:\n"
|
||||
"Översta %d raderna:\n"
|
||||
"\n"
|
||||
" Rad Antal\n"
|
||||
"\n"
|
||||
@ -114,18 +115,18 @@ msgstr "%9.2f Medelexekveringar per rad\n"
|
||||
#: call_graph.c:68
|
||||
#, c-format
|
||||
msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
|
||||
msgstr "[cg_tally] båge från %s till %s traverserad %lu gånger\n"
|
||||
msgstr "[cg_tally] båge från %s till %s traverserad %lu gånger\n"
|
||||
|
||||
#: cg_print.c:73
|
||||
#: cg_print.c:74
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\t\t Call graph (explanation follows)\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"\t\t Angropsgraf (förklaring följer)\n"
|
||||
"\t\t Angropsgraf (förklaring följer)\n"
|
||||
"\n"
|
||||
|
||||
#: cg_print.c:75
|
||||
#: cg_print.c:76
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\t\t\tCall graph\n"
|
||||
@ -134,25 +135,25 @@ msgstr ""
|
||||
"\t\t\tAnropsgraf\n"
|
||||
"\n"
|
||||
|
||||
#: cg_print.c:78 hist.c:466
|
||||
#: cg_print.c:79 hist.c:466
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\n"
|
||||
"granularity: each sample hit covers %ld byte(s)"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"upplösning: varje stickprov täcker %ld byte"
|
||||
"upplösning: varje stickprov täcker %ld byte"
|
||||
|
||||
#: cg_print.c:82
|
||||
#: cg_print.c:83
|
||||
#, c-format
|
||||
msgid ""
|
||||
" for %.2f%% of %.2f seconds\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
" för %.2f%% på %.2f sekunder\n"
|
||||
" för %.2f%% på %.2f sekunder\n"
|
||||
"\n"
|
||||
|
||||
#: cg_print.c:86
|
||||
#: cg_print.c:87
|
||||
#, c-format
|
||||
msgid ""
|
||||
" no time propagated\n"
|
||||
@ -161,64 +162,64 @@ msgstr ""
|
||||
" ingen tid propagerad\n"
|
||||
"\n"
|
||||
|
||||
#: cg_print.c:95 cg_print.c:98 cg_print.c:100
|
||||
#: cg_print.c:96 cg_print.c:99 cg_print.c:101
|
||||
msgid "called"
|
||||
msgstr "anropad"
|
||||
|
||||
#: cg_print.c:95 cg_print.c:100
|
||||
#: cg_print.c:96 cg_print.c:101
|
||||
msgid "total"
|
||||
msgstr "totalt"
|
||||
|
||||
#: cg_print.c:95
|
||||
#: cg_print.c:96
|
||||
msgid "parents"
|
||||
msgstr "föräldrar"
|
||||
msgstr "föräldrar"
|
||||
|
||||
#: cg_print.c:97 cg_print.c:98
|
||||
#: cg_print.c:98 cg_print.c:99
|
||||
msgid "index"
|
||||
msgstr "index"
|
||||
|
||||
#: cg_print.c:97
|
||||
#: cg_print.c:98
|
||||
#, c-format
|
||||
msgid "%time"
|
||||
msgstr "%tid"
|
||||
|
||||
#: cg_print.c:97 cg_print.c:98
|
||||
#: cg_print.c:98 cg_print.c:99
|
||||
msgid "self"
|
||||
msgstr "själv"
|
||||
msgstr "själv"
|
||||
|
||||
#: cg_print.c:97
|
||||
#: cg_print.c:98
|
||||
msgid "descendants"
|
||||
msgstr "ättlingar"
|
||||
msgstr "ättlingar"
|
||||
|
||||
#: cg_print.c:98 hist.c:492
|
||||
#: cg_print.c:99 hist.c:492
|
||||
msgid "name"
|
||||
msgstr "namn"
|
||||
|
||||
#: cg_print.c:100
|
||||
#: cg_print.c:101
|
||||
msgid "children"
|
||||
msgstr "barn"
|
||||
|
||||
#: cg_print.c:105
|
||||
#: cg_print.c:106
|
||||
#, c-format
|
||||
msgid "index %% time self children called name\n"
|
||||
msgstr "index %% tid själv barn anropad namn\n"
|
||||
msgstr "index %% tid själv barn anropad namn\n"
|
||||
|
||||
#: cg_print.c:128
|
||||
#: cg_print.c:129
|
||||
#, c-format
|
||||
msgid " <cycle %d as a whole> [%d]\n"
|
||||
msgstr " <hela cykel %d> [%d]\n"
|
||||
|
||||
#: cg_print.c:354
|
||||
#: cg_print.c:355
|
||||
#, c-format
|
||||
msgid "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s <spontaneous>\n"
|
||||
msgstr "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s <spontant>\n"
|
||||
|
||||
#: cg_print.c:355
|
||||
#: cg_print.c:356
|
||||
#, c-format
|
||||
msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s <spontaneous>\n"
|
||||
msgstr "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s <spontant>\n"
|
||||
|
||||
#: cg_print.c:589
|
||||
#: cg_print.c:590
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Index by function name\n"
|
||||
@ -227,152 +228,152 @@ msgstr ""
|
||||
"Index efter funktionsnamn\n"
|
||||
"\n"
|
||||
|
||||
#: cg_print.c:646 cg_print.c:655
|
||||
#: cg_print.c:647 cg_print.c:656
|
||||
#, c-format
|
||||
msgid "<cycle %d>"
|
||||
msgstr "<cykel %d>"
|
||||
|
||||
#: corefile.c:59
|
||||
#: corefile.c:60
|
||||
#, c-format
|
||||
msgid "%s: unable to parse mapping file %s.\n"
|
||||
msgstr "%s: kan inte tolka mappfilen %s.\n"
|
||||
|
||||
#: corefile.c:72
|
||||
#: corefile.c:84 corefile.c:496
|
||||
#, c-format
|
||||
msgid "%s: could not open %s.\n"
|
||||
msgstr "%s: kunde inte öppna %s.\n"
|
||||
msgstr "%s: kunde inte öppna %s.\n"
|
||||
|
||||
#: corefile.c:166
|
||||
#: corefile.c:183
|
||||
#, c-format
|
||||
msgid "%s: %s: not in executable format\n"
|
||||
msgstr "%s: %s: inte i ett körbart format\n"
|
||||
msgstr "%s: %s: inte i ett körbart format\n"
|
||||
|
||||
#: corefile.c:177
|
||||
#: corefile.c:194
|
||||
#, c-format
|
||||
msgid "%s: can't find .text section in %s\n"
|
||||
msgstr "%s: kan inte hitta .text-sektion i %s\n"
|
||||
|
||||
#: corefile.c:252
|
||||
#: corefile.c:269
|
||||
#, c-format
|
||||
msgid "%s: ran out room for %lu bytes of text space\n"
|
||||
msgstr "%s: slut på utrymme för %lu byte textutrymme\n"
|
||||
msgstr "%s: slut på utrymme för %lu byte textutrymme\n"
|
||||
|
||||
#: corefile.c:266
|
||||
#: corefile.c:283
|
||||
#, c-format
|
||||
msgid "%s: can't do -c\n"
|
||||
msgstr "%s: kan inte göra -c\n"
|
||||
msgstr "%s: kan inte göra -c\n"
|
||||
|
||||
#: corefile.c:305
|
||||
#: corefile.c:322
|
||||
#, c-format
|
||||
msgid "%s: -c not supported on architecture %s\n"
|
||||
msgstr "%s: -c stöds inte på arkitekturen %s\n"
|
||||
msgstr "%s: -c stöds inte på arkitekturen %s\n"
|
||||
|
||||
#: corefile.c:470
|
||||
#: corefile.c:505 corefile.c:588
|
||||
#, c-format
|
||||
msgid "%s: file `%s' has no symbols\n"
|
||||
msgstr "%s: filen \"%s\" har inga symboler\n"
|
||||
|
||||
#: corefile.c:772
|
||||
#: corefile.c:848
|
||||
#, c-format
|
||||
msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
|
||||
msgstr "%s: någon räknade fel: ltab.len=%d istället för %ld\n"
|
||||
msgstr "%s: någon räknade fel: ltab.len=%d istället för %ld\n"
|
||||
|
||||
#: gmon_io.c:83
|
||||
#: gmon_io.c:84
|
||||
#, c-format
|
||||
msgid "%s: address size has unexpected value of %u\n"
|
||||
msgstr "%s: adresstorleken har ett oväntat värde på %u\n"
|
||||
msgstr "%s: adresstorleken har ett oväntat värde på %u\n"
|
||||
|
||||
#: gmon_io.c:320 gmon_io.c:416
|
||||
#: gmon_io.c:319 gmon_io.c:415
|
||||
#, c-format
|
||||
msgid "%s: file too short to be a gmon file\n"
|
||||
msgstr "%s: filen är för kort för att vara en gmon-fil\n"
|
||||
msgstr "%s: filen är för kort för att vara en gmon-fil\n"
|
||||
|
||||
#: gmon_io.c:330 gmon_io.c:459
|
||||
#: gmon_io.c:329 gmon_io.c:458
|
||||
#, c-format
|
||||
msgid "%s: file `%s' has bad magic cookie\n"
|
||||
msgstr "%s: filen \"%s\" har felaktigt magiskt tal\n"
|
||||
|
||||
#: gmon_io.c:341
|
||||
#: gmon_io.c:340
|
||||
#, c-format
|
||||
msgid "%s: file `%s' has unsupported version %d\n"
|
||||
msgstr "%s: filen \"%s\" har version %d som inte stöds\n"
|
||||
msgstr "%s: filen \"%s\" har version %d som inte stöds\n"
|
||||
|
||||
#: gmon_io.c:371
|
||||
#: gmon_io.c:370
|
||||
#, c-format
|
||||
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
|
||||
msgstr "%s: %s: hittade felaktig tagg %d (är filen skadad?)\n"
|
||||
msgstr "%s: %s: hittade felaktig tagg %d (är filen skadad?)\n"
|
||||
|
||||
#: gmon_io.c:438
|
||||
#: gmon_io.c:437
|
||||
#, c-format
|
||||
msgid "%s: profiling rate incompatible with first gmon file\n"
|
||||
msgstr "%s: profileringshastighet är inkompatibel med första gmon-filen\n"
|
||||
msgstr "%s: profileringshastighet är inkompatibel med första gmon-filen\n"
|
||||
|
||||
#: gmon_io.c:489
|
||||
#: gmon_io.c:488
|
||||
#, c-format
|
||||
msgid "%s: incompatible with first gmon file\n"
|
||||
msgstr "%s: inkompatibel med första gmon-filen\n"
|
||||
msgstr "%s: inkompatibel med första gmon-filen\n"
|
||||
|
||||
#: gmon_io.c:516
|
||||
#: gmon_io.c:518
|
||||
#, c-format
|
||||
msgid "%s: file '%s' does not appear to be in gmon.out format\n"
|
||||
msgstr "%s: filen \"%s\" verkar inte vara i gmon.out-format\n"
|
||||
|
||||
# Man brukar tala om "bins" i hashtabeller
|
||||
#
|
||||
#: gmon_io.c:529
|
||||
#: gmon_io.c:531
|
||||
#, c-format
|
||||
msgid "%s: unexpected EOF after reading %d/%d bins\n"
|
||||
msgstr "%s: oväntat filslut efter läsning av %d/%d poster\n"
|
||||
msgstr "%s: oväntat filslut efter läsning av %d/%d poster\n"
|
||||
|
||||
#: gmon_io.c:563
|
||||
#: gmon_io.c:565
|
||||
#, c-format
|
||||
msgid "time is in ticks, not seconds\n"
|
||||
msgstr "tiden är i tick, inte sekunder\n"
|
||||
msgstr "tiden är i tick, inte sekunder\n"
|
||||
|
||||
#: gmon_io.c:569 gmon_io.c:746
|
||||
#: gmon_io.c:571 gmon_io.c:748
|
||||
#, c-format
|
||||
msgid "%s: don't know how to deal with file format %d\n"
|
||||
msgstr "%s: vet inte hur fileformat %d ska hanteras\n"
|
||||
|
||||
#: gmon_io.c:576
|
||||
#: gmon_io.c:578
|
||||
#, c-format
|
||||
msgid "File `%s' (version %d) contains:\n"
|
||||
msgstr "Filen \"%s\" (version %d) innehåller:\n"
|
||||
msgstr "Filen \"%s\" (version %d) innehåller:\n"
|
||||
|
||||
#: gmon_io.c:579
|
||||
#: gmon_io.c:581
|
||||
#, c-format
|
||||
msgid "\t%d histogram record\n"
|
||||
msgstr "\t%d histogrampost\n"
|
||||
|
||||
#: gmon_io.c:580
|
||||
#: gmon_io.c:582
|
||||
#, c-format
|
||||
msgid "\t%d histogram records\n"
|
||||
msgstr "\t%d histogramposter\n"
|
||||
|
||||
#: gmon_io.c:582
|
||||
#: gmon_io.c:584
|
||||
#, c-format
|
||||
msgid "\t%d call-graph record\n"
|
||||
msgstr "\t%d anropsgrafpost\n"
|
||||
|
||||
#: gmon_io.c:583
|
||||
#: gmon_io.c:585
|
||||
#, c-format
|
||||
msgid "\t%d call-graph records\n"
|
||||
msgstr "\t%d anropsgrafposter\n"
|
||||
|
||||
#: gmon_io.c:585
|
||||
#: gmon_io.c:587
|
||||
#, c-format
|
||||
msgid "\t%d basic-block count record\n"
|
||||
msgstr "\t%d grundblocksräkningspost\n"
|
||||
msgstr "\t%d grundblocksräkningspost\n"
|
||||
|
||||
#: gmon_io.c:586
|
||||
#: gmon_io.c:588
|
||||
#, c-format
|
||||
msgid "\t%d basic-block count records\n"
|
||||
msgstr "\t%d grundblocksräkningsposter\n"
|
||||
msgstr "\t%d grundblocksräkningsposter\n"
|
||||
|
||||
#: gprof.c:158
|
||||
#: gprof.c:159
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I dirs]\n"
|
||||
"Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqSQZ][name]] [-I dirs]\n"
|
||||
"\t[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n"
|
||||
"\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n"
|
||||
"\t[--[no-]flat-profile[=name]] [--[no-]graph[=name]]\n"
|
||||
@ -383,77 +384,77 @@ msgid ""
|
||||
"\t[--no-static] [--print-path] [--separate-files]\n"
|
||||
"\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n"
|
||||
"\t[--version] [--width=n] [--ignore-non-functions]\n"
|
||||
"\t[--demangle[=STYLE]] [--no-demangle] [@FILE]\n"
|
||||
"\t[--demangle[=STYLE]] [--no-demangle] [--external-symbol-table=name] [@FILE]\n"
|
||||
"\t[image-file] [profile-file...]\n"
|
||||
msgstr ""
|
||||
"Användning: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I kataloger]\n"
|
||||
"\t[-d[num]] [-k från/till] [-m min_antal] [-t tabell_längd]\n"
|
||||
"Användning: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqSQZ][name]] [-I kataloger]\n"
|
||||
"\t[-d[num]] [-k från/till] [-m min_antal] [-t tabell_längd]\n"
|
||||
"\t[--[no-]annotated-source[=namn]] [--[no-]exec-counts[=namn]]\n"
|
||||
"\t[--[no-]flat-profile[=namn]] [--[no-]graph[=namn]]\n"
|
||||
"\t[--[no-]time=namn] [--all-lines] [--brief] [--debug[=nivå]]\n"
|
||||
"\t[--[no-]time=namn] [--all-lines] [--brief] [--debug[=nivå]]\n"
|
||||
"\t[--function-ordering] [--file-ordering]\n"
|
||||
"\t[--directory-path=kataloger] [--display-unused-functions]\n"
|
||||
"\t[--file-format=namn] [--file-info] [--help] [--line] [--min-count=n]\n"
|
||||
"\t[--no-static] [--print-path] [--separate-files]\n"
|
||||
"\t[--static-call-graph] [--sum] [--table-length=längd] [--traditional]\n"
|
||||
"\t[--static-call-graph] [--sum] [--table-length=längd] [--traditional]\n"
|
||||
"\t[--version] [--width=n] [--ignore-non-functions]\n"
|
||||
"\t[--demangle[=STIL]] [--no-demangle] [@FIL]\n"
|
||||
"\t[--demangle[=STIL]] [--no-demangle] [--external-symbol-table=name] [@FILE]\n"
|
||||
"\t[bildfil] [profilfil...]\n"
|
||||
|
||||
#: gprof.c:174
|
||||
#: gprof.c:175
|
||||
#, c-format
|
||||
msgid "Report bugs to %s\n"
|
||||
msgstr ""
|
||||
"Rapportera fel till %s,\n"
|
||||
"Rapportera synpunkter på översättningen till tp-sv@listor.tp-sv.se\n"
|
||||
"Rapportera synpunkter på översättningen till tp-sv@listor.tp-sv.se\n"
|
||||
|
||||
#: gprof.c:250
|
||||
#: gprof.c:251
|
||||
#, c-format
|
||||
msgid "%s: debugging not supported; -d ignored\n"
|
||||
msgstr "%s: felsökning stöds inte; -d ignorerades\n"
|
||||
msgstr "%s: felsökning stöds inte; -d ignorerades\n"
|
||||
|
||||
#: gprof.c:330
|
||||
#: gprof.c:331
|
||||
#, c-format
|
||||
msgid "%s: unknown file format %s\n"
|
||||
msgstr "%s: okänt filformat %s\n"
|
||||
msgstr "%s: okänt filformat %s\n"
|
||||
|
||||
#. This output is intended to follow the GNU standards document.
|
||||
#: gprof.c:414
|
||||
#: gprof.c:419
|
||||
#, c-format
|
||||
msgid "GNU gprof %s\n"
|
||||
msgstr "GNU gprof %s\n"
|
||||
|
||||
#: gprof.c:415
|
||||
#: gprof.c:420
|
||||
#, c-format
|
||||
msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
|
||||
msgstr "Baserat på BSD gprof, copyright 1983 Regents of the University of California.\n"
|
||||
msgstr "Baserat på BSD gprof, copyright 1983 Regents of the University of California.\n"
|
||||
|
||||
#: gprof.c:416
|
||||
#: gprof.c:421
|
||||
#, c-format
|
||||
msgid "This program is free software. This program has absolutely no warranty.\n"
|
||||
msgstr "Detta program är fri programvara. Detta program har ingen som helst garanti.\n"
|
||||
msgstr "Detta program är fri programvara. Detta program har ingen som helst garanti.\n"
|
||||
|
||||
#: gprof.c:457
|
||||
#: gprof.c:462
|
||||
#, c-format
|
||||
msgid "%s: unknown demangling style `%s'\n"
|
||||
msgstr "%s: okänd avmanglingsstil \"%s\"\n"
|
||||
msgstr "%s: okänd avmanglingsstil \"%s\"\n"
|
||||
|
||||
#: gprof.c:477
|
||||
#: gprof.c:482
|
||||
#, c-format
|
||||
msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
|
||||
msgstr "%s: Endast en av --function-ordering och --file-ordering kan anges.\n"
|
||||
|
||||
#: gprof.c:527
|
||||
#: gprof.c:534
|
||||
#, c-format
|
||||
msgid "%s: sorry, file format `prof' is not yet supported\n"
|
||||
msgstr "%s: tyvärr, filformatet \"prof\" stöds inte än\n"
|
||||
msgstr "%s: tyvärr, filformatet \"prof\" stöds inte än\n"
|
||||
|
||||
#: gprof.c:581
|
||||
#: gprof.c:588
|
||||
#, c-format
|
||||
msgid "%s: gmon.out file is missing histogram\n"
|
||||
msgstr "%s: gmon.out-filen saknar histogram\n"
|
||||
|
||||
#: gprof.c:588
|
||||
#: gprof.c:595
|
||||
#, c-format
|
||||
msgid "%s: gmon.out file is missing call-graph data\n"
|
||||
msgstr "%s: gmon.out-filen saknar anropsgrafdata\n"
|
||||
@ -465,8 +466,8 @@ msgid ""
|
||||
"%s: from '%s'\n"
|
||||
"%s: to '%s'\n"
|
||||
msgstr ""
|
||||
"%s: dimensionsenhet ändrades mellan histogramposter\n"
|
||||
"%s: från \"%s\"\n"
|
||||
"%s: dimensionsenhet ändrades mellan histogramposter\n"
|
||||
"%s: från \"%s\"\n"
|
||||
"%s: till \"%s\"\n"
|
||||
|
||||
#: hist.c:143
|
||||
@ -476,8 +477,8 @@ msgid ""
|
||||
"%s: from '%c'\n"
|
||||
"%s: to '%c'\n"
|
||||
msgstr ""
|
||||
"%s: dimensionsförkortning ändrades mellan histogramposter\n"
|
||||
"%s: från \"%c\"\n"
|
||||
"%s: dimensionsförkortning ändrades mellan histogramposter\n"
|
||||
"%s: från \"%c\"\n"
|
||||
"%s: till \"%c\"\n"
|
||||
|
||||
#: hist.c:157
|
||||
@ -488,12 +489,12 @@ msgstr "%s: olika skalor i histogramposter"
|
||||
#: hist.c:194
|
||||
#, c-format
|
||||
msgid "%s: overlapping histogram records\n"
|
||||
msgstr "%s: överlappande histogramposter\n"
|
||||
msgstr "%s: överlappande histogramposter\n"
|
||||
|
||||
#: hist.c:228
|
||||
#, c-format
|
||||
msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
|
||||
msgstr "%s: %s: oväntat filslut efter läsning av %u av %u stickprov\n"
|
||||
msgstr "%s: %s: oväntat filslut efter läsning av %u av %u stickprov\n"
|
||||
|
||||
#: hist.c:462
|
||||
#, c-format
|
||||
@ -506,7 +507,7 @@ msgid ""
|
||||
" for %.2f%% of %.2f %s\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
" för %.2f%% av %.2f %s\n"
|
||||
" för %.2f%% av %.2f %s\n"
|
||||
"\n"
|
||||
|
||||
#: hist.c:476
|
||||
@ -516,7 +517,7 @@ msgid ""
|
||||
"Each sample counts as %g %s.\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Varje stickprov räknas som %g %s.\n"
|
||||
"Varje stickprov räknas som %g %s.\n"
|
||||
|
||||
#: hist.c:481
|
||||
#, c-format
|
||||
@ -533,7 +534,7 @@ msgstr "kumulativ"
|
||||
|
||||
#: hist.c:488
|
||||
msgid "self "
|
||||
msgstr "själv"
|
||||
msgstr "själv"
|
||||
|
||||
#: hist.c:488
|
||||
msgid "total "
|
||||
@ -568,14 +569,14 @@ msgstr "Platt profil:\n"
|
||||
#: hist.c:705
|
||||
#, c-format
|
||||
msgid "%s: found a symbol that covers several histogram records"
|
||||
msgstr "%s: hittade en symbol som täcker in flera histogramposter"
|
||||
msgstr "%s: hittade en symbol som täcker in flera histogramposter"
|
||||
|
||||
#: mips.c:71
|
||||
#, c-format
|
||||
msgid "[find_call] 0x%lx: jal"
|
||||
msgstr "[find_call] 0x%lx: jal"
|
||||
|
||||
#: mips.c:96
|
||||
#: mips.c:99
|
||||
#, c-format
|
||||
msgid "[find_call] 0x%lx: jalr\n"
|
||||
msgstr "[find_call] 0x%lx: jalr\n"
|
||||
@ -596,7 +597,7 @@ msgid " <cycle %d>"
|
||||
msgstr " <cykel %d>"
|
||||
|
||||
#~ msgid "%s: `%s' is incompatible with first gmon file\n"
|
||||
#~ msgstr "%s: \"%s\" är inkompatibel med första gmon-filen\n"
|
||||
#~ msgstr "%s: \"%s\" är inkompatibel med första gmon-filen\n"
|
||||
|
||||
#~ msgid "%s: bfd_vma has unexpected size of %ld bytes\n"
|
||||
#~ msgstr "%s: bfd_vma har en oväntad storlek på %ld byte\n"
|
||||
#~ msgstr "%s: bfd_vma har en oväntad storlek på %ld byte\n"
|
||||
|
@ -237,7 +237,7 @@ annotate_source (Source_File *sf, unsigned int max_width,
|
||||
fprintf (ofp, _("*** File %s:\n"), sf->name);
|
||||
}
|
||||
|
||||
annotation = xmalloc (max_width + 1);
|
||||
annotation = (char *) xmalloc (max_width + 1);
|
||||
line_num = 1;
|
||||
new_line = TRUE;
|
||||
|
||||
|
@ -29,23 +29,25 @@
|
||||
#include "sym_ids.h"
|
||||
#include "corefile.h"
|
||||
|
||||
static struct sym_id
|
||||
struct match
|
||||
{
|
||||
int prev_index; /* Index of prev match. */
|
||||
Sym *prev_match; /* Previous match. */
|
||||
Sym *first_match; /* Chain of all matches. */
|
||||
Sym sym;
|
||||
};
|
||||
|
||||
struct sym_id
|
||||
{
|
||||
struct sym_id *next;
|
||||
char *spec; /* Parsing modifies this. */
|
||||
Table_Id which_table;
|
||||
bfd_boolean has_right;
|
||||
|
||||
struct match
|
||||
{
|
||||
int prev_index; /* Index of prev match. */
|
||||
Sym *prev_match; /* Previous match. */
|
||||
Sym *first_match; /* Chain of all matches. */
|
||||
Sym sym;
|
||||
}
|
||||
left, right;
|
||||
}
|
||||
*id_list;
|
||||
struct match left, right;
|
||||
};
|
||||
|
||||
static struct sym_id *id_list;
|
||||
|
||||
static void parse_spec
|
||||
(char *, Sym *);
|
||||
|
23
ld/ChangeLog
23
ld/ChangeLog
@ -1,3 +1,26 @@
|
||||
2009-09-11 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* po/ld.pot: Updated by the Translation project.
|
||||
* po/fi.po: Updated Finnish translation.
|
||||
|
||||
2009-09-11 Martin Thuresson <martint@google.com>
|
||||
|
||||
Updated sources 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.
|
||||
|
||||
2009-09-09 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* scripttempl/aix.sc: Only provide ENTRY on final link.
|
||||
|
@ -137,7 +137,8 @@ gld${EMULATION_NAME}_load_symbols (lang_input_statement_type *entry)
|
||||
|| (bfd_get_file_flags (entry->the_bfd) & DYNAMIC) == 0)
|
||||
return FALSE;
|
||||
|
||||
bfd_elf_set_dyn_lib_class (entry->the_bfd, link_class);
|
||||
bfd_elf_set_dyn_lib_class (entry->the_bfd,
|
||||
(enum dynamic_lib_link_class) link_class);
|
||||
|
||||
/* Continue on with normal load_symbols processing. */
|
||||
return FALSE;
|
||||
@ -428,7 +429,7 @@ fragment <<EOF
|
||||
&& (bfd_elf_get_dyn_lib_class (needed->by) & DYN_NO_ADD_NEEDED) != 0)
|
||||
link_class |= DYN_NO_NEEDED | DYN_NO_ADD_NEEDED;
|
||||
|
||||
bfd_elf_set_dyn_lib_class (abfd, link_class);
|
||||
bfd_elf_set_dyn_lib_class (abfd, (enum dynamic_lib_link_class) link_class);
|
||||
|
||||
/* Add this file into the symbol table. */
|
||||
if (! bfd_link_add_symbols (abfd, &link_info))
|
||||
@ -930,7 +931,7 @@ static bfd_boolean
|
||||
gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
|
||||
{
|
||||
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
|
||||
struct build_id_info *info =
|
||||
struct build_id_info *info = (struct build_id_info *)
|
||||
elf_tdata (abfd)->after_write_object_contents_info;
|
||||
asection *asec;
|
||||
Elf_Internal_Shdr *i_shdr;
|
||||
@ -950,13 +951,13 @@ gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
|
||||
if (i_shdr->contents == NULL)
|
||||
{
|
||||
if (asec->contents == NULL)
|
||||
asec->contents = xmalloc (asec->size);
|
||||
asec->contents = (unsigned char *) xmalloc (asec->size);
|
||||
contents = asec->contents;
|
||||
}
|
||||
else
|
||||
contents = i_shdr->contents + asec->output_offset;
|
||||
|
||||
e_note = (void *) contents;
|
||||
e_note = (Elf_External_Note *) contents;
|
||||
size = offsetof (Elf_External_Note, name[sizeof "GNU"]);
|
||||
size = (size + 3) & -(bfd_size_type) 4;
|
||||
id_bits = contents + size;
|
||||
@ -1075,7 +1076,8 @@ gld${EMULATION_NAME}_after_open (void)
|
||||
if (s != NULL && bfd_set_section_alignment (abfd, s, 2))
|
||||
{
|
||||
struct elf_obj_tdata *t = elf_tdata (link_info.output_bfd);
|
||||
struct build_id_info *b = xmalloc (sizeof *b);
|
||||
struct build_id_info *b =
|
||||
(struct build_id_info *) xmalloc (sizeof *b);
|
||||
|
||||
b->style = link_info.emit_note_gnu_build_id;
|
||||
b->sec = s;
|
||||
@ -1453,7 +1455,7 @@ ${ELF_INTERPRETER_SET_DEFAULT}
|
||||
continue;
|
||||
|
||||
sz = s->size;
|
||||
msg = xmalloc ((size_t) (sz + 1));
|
||||
msg = (char *) xmalloc ((size_t) (sz + 1));
|
||||
if (! bfd_get_section_contents (is->the_bfd, s, msg,
|
||||
(file_ptr) 0, sz))
|
||||
einfo ("%F%B: Can't read contents of section .gnu.warning: %E\n",
|
||||
|
32
ld/ld.h
32
ld/ld.h
@ -124,6 +124,22 @@ typedef struct fat_user_section_struct {
|
||||
#define LONG_SIZE (4)
|
||||
#define QUAD_SIZE (8)
|
||||
|
||||
enum endian_enum { ENDIAN_UNSET = 0, ENDIAN_BIG, ENDIAN_LITTLE };
|
||||
|
||||
enum symbolic_enum
|
||||
{
|
||||
symbolic_unset = 0,
|
||||
symbolic,
|
||||
symbolic_functions,
|
||||
};
|
||||
|
||||
enum dynamic_list_enum
|
||||
{
|
||||
dynamic_list_unset = 0,
|
||||
dynamic_list_data,
|
||||
dynamic_list
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
/* 1 => assign space to common symbols even if `relocatable_output'. */
|
||||
bfd_boolean force_common_definition;
|
||||
@ -161,24 +177,14 @@ typedef struct {
|
||||
bfd_boolean accept_unknown_input_arch;
|
||||
|
||||
/* Big or little endian as set on command line. */
|
||||
enum { ENDIAN_UNSET = 0, ENDIAN_BIG, ENDIAN_LITTLE } endian;
|
||||
enum endian_enum endian;
|
||||
|
||||
/* -Bsymbolic and -Bsymbolic-functions, as set on command line. */
|
||||
enum
|
||||
{
|
||||
symbolic_unset = 0,
|
||||
symbolic,
|
||||
symbolic_functions,
|
||||
} symbolic;
|
||||
enum symbolic_enum symbolic;
|
||||
|
||||
/* --dynamic-list, --dynamic-list-cpp-new, --dynamic-list-cpp-typeinfo
|
||||
and --dynamic-list FILE, as set on command line. */
|
||||
enum
|
||||
{
|
||||
dynamic_list_unset = 0,
|
||||
dynamic_list_data,
|
||||
dynamic_list
|
||||
} dynamic_list;
|
||||
enum dynamic_list_enum dynamic_list;
|
||||
|
||||
/* Name of runtime interpreter to invoke. */
|
||||
char *interpreter;
|
||||
|
16
ld/ldcref.c
16
ld/ldcref.c
@ -179,7 +179,7 @@ add_cref (const char *name,
|
||||
|
||||
if (r == NULL)
|
||||
{
|
||||
r = bfd_hash_allocate (&cref_table.root, sizeof *r);
|
||||
r = (struct cref_ref *) bfd_hash_allocate (&cref_table.root, sizeof *r);
|
||||
if (r == NULL)
|
||||
einfo (_("%X%P: cref alloc failed: %E\n"));
|
||||
r->next = h->refs;
|
||||
@ -324,7 +324,7 @@ handle_asneeded_cref (bfd *abfd ATTRIBUTE_UNUSED,
|
||||
static bfd_boolean
|
||||
cref_fill_array (struct cref_hash_entry *h, void *data)
|
||||
{
|
||||
struct cref_hash_entry ***pph = data;
|
||||
struct cref_hash_entry ***pph = (struct cref_hash_entry ***) data;
|
||||
|
||||
ASSERT (h->demangled == NULL);
|
||||
h->demangled = bfd_demangle (link_info.output_bfd, h->root.string,
|
||||
@ -344,8 +344,10 @@ cref_fill_array (struct cref_hash_entry *h, void *data)
|
||||
static int
|
||||
cref_sort_array (const void *a1, const void *a2)
|
||||
{
|
||||
const struct cref_hash_entry * const *p1 = a1;
|
||||
const struct cref_hash_entry * const *p2 = a2;
|
||||
const struct cref_hash_entry * const *p1 =
|
||||
(const struct cref_hash_entry * const *) a1;
|
||||
const struct cref_hash_entry * const *p2 =
|
||||
(const struct cref_hash_entry * const *) a2;
|
||||
|
||||
return strcmp ((*p1)->demangled, (*p2)->demangled);
|
||||
}
|
||||
@ -378,7 +380,7 @@ output_cref (FILE *fp)
|
||||
return;
|
||||
}
|
||||
|
||||
csyms = xmalloc (cref_symcount * sizeof (*csyms));
|
||||
csyms = (struct cref_hash_entry **) xmalloc (cref_symcount * sizeof (*csyms));
|
||||
|
||||
csym_fill = csyms;
|
||||
cref_hash_traverse (&cref_table, cref_fill_array, &csym_fill);
|
||||
@ -602,7 +604,7 @@ check_refs (const char *name,
|
||||
static void
|
||||
check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
|
||||
{
|
||||
struct check_refs_info *info = iarg;
|
||||
struct check_refs_info *info = (struct check_refs_info *) iarg;
|
||||
asection *outsec;
|
||||
const char *outsecname;
|
||||
asection *outdefsec;
|
||||
@ -649,7 +651,7 @@ check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
|
||||
if (relsize == 0)
|
||||
return;
|
||||
|
||||
relpp = xmalloc (relsize);
|
||||
relpp = (arelent **) xmalloc (relsize);
|
||||
relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
|
||||
if (relcount < 0)
|
||||
einfo (_("%B%F: could not read relocs: %E\n"), abfd);
|
||||
|
12
ld/ldctor.c
12
ld/ldctor.c
@ -70,7 +70,7 @@ ldctor_add_set_entry (struct bfd_link_hash_entry *h,
|
||||
|
||||
if (p == NULL)
|
||||
{
|
||||
p = xmalloc (sizeof (struct set_info));
|
||||
p = (struct set_info *) xmalloc (sizeof (struct set_info));
|
||||
p->next = sets;
|
||||
sets = p;
|
||||
p->h = h;
|
||||
@ -106,7 +106,7 @@ ldctor_add_set_entry (struct bfd_link_hash_entry *h,
|
||||
}
|
||||
}
|
||||
|
||||
e = xmalloc (sizeof (struct set_element));
|
||||
e = (struct set_element *) xmalloc (sizeof (struct set_element));
|
||||
e->next = NULL;
|
||||
e->name = name;
|
||||
e->section = section;
|
||||
@ -153,8 +153,10 @@ ctor_prio (const char *name)
|
||||
static int
|
||||
ctor_cmp (const void *p1, const void *p2)
|
||||
{
|
||||
const struct set_element * const *pe1 = p1;
|
||||
const struct set_element * const *pe2 = p2;
|
||||
const struct set_element * const *pe1 =
|
||||
(const struct set_element * const *) p1;
|
||||
const struct set_element * const *pe2 =
|
||||
(const struct set_element * const *) p2;
|
||||
const char *n1;
|
||||
const char *n2;
|
||||
int prio1;
|
||||
@ -223,7 +225,7 @@ ldctor_build_sets (void)
|
||||
for (e = p->elements; e != NULL; e = e->next)
|
||||
++c;
|
||||
|
||||
array = xmalloc (c * sizeof *array);
|
||||
array = (struct set_element **) xmalloc (c * sizeof *array);
|
||||
|
||||
i = 0;
|
||||
for (e = p->elements; e != NULL; e = e->next)
|
||||
|
@ -946,7 +946,7 @@ exp_provide (const char *dst, etree_type *src, bfd_boolean hidden)
|
||||
{
|
||||
etree_type *n;
|
||||
|
||||
n = stat_alloc (sizeof (n->assign));
|
||||
n = (etree_type *) stat_alloc (sizeof (n->assign));
|
||||
n->assign.type.node_code = '=';
|
||||
n->assign.type.lineno = src->type.lineno;
|
||||
n->assign.type.node_class = etree_provide;
|
||||
@ -963,7 +963,7 @@ exp_assert (etree_type *exp, const char *message)
|
||||
{
|
||||
etree_type *n;
|
||||
|
||||
n = stat_alloc (sizeof (n->assert_s));
|
||||
n = (etree_type *) stat_alloc (sizeof (n->assert_s));
|
||||
n->assert_s.type.node_code = '!';
|
||||
n->assert_s.type.lineno = exp->type.lineno;
|
||||
n->assert_s.type.node_class = etree_assert;
|
||||
@ -1095,7 +1095,7 @@ exp_get_fill (etree_type *tree, fill_type *def, char *name)
|
||||
{
|
||||
unsigned char *dst;
|
||||
unsigned char *s;
|
||||
fill = xmalloc ((len + 1) / 2 + sizeof (*fill) - 1);
|
||||
fill = (fill_type *) xmalloc ((len + 1) / 2 + sizeof (*fill) - 1);
|
||||
fill->size = (len + 1) / 2;
|
||||
dst = fill->data;
|
||||
s = (unsigned char *) expld.result.str;
|
||||
@ -1120,7 +1120,7 @@ exp_get_fill (etree_type *tree, fill_type *def, char *name)
|
||||
}
|
||||
else
|
||||
{
|
||||
fill = xmalloc (4 + sizeof (*fill) - 1);
|
||||
fill = (fill_type *) xmalloc (4 + sizeof (*fill) - 1);
|
||||
val = expld.result.value;
|
||||
fill->data[0] = (val >> 24) & 0xff;
|
||||
fill->data[1] = (val >> 16) & 0xff;
|
||||
|
56
ld/ldexp.h
56
ld/ldexp.h
@ -30,21 +30,23 @@ typedef struct {
|
||||
bfd_boolean valid_p;
|
||||
} etree_value_type;
|
||||
|
||||
enum node_tree_enum {
|
||||
etree_binary,
|
||||
etree_trinary,
|
||||
etree_unary,
|
||||
etree_name,
|
||||
etree_assign,
|
||||
etree_provide,
|
||||
etree_provided,
|
||||
etree_value,
|
||||
etree_assert,
|
||||
etree_rel
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
int node_code;
|
||||
unsigned int lineno;
|
||||
enum {
|
||||
etree_binary,
|
||||
etree_trinary,
|
||||
etree_unary,
|
||||
etree_name,
|
||||
etree_assign,
|
||||
etree_provide,
|
||||
etree_provided,
|
||||
etree_value,
|
||||
etree_assert,
|
||||
etree_rel
|
||||
} node_class;
|
||||
enum node_tree_enum node_class;
|
||||
} node_type;
|
||||
|
||||
typedef union etree_union {
|
||||
@ -100,6 +102,21 @@ typedef enum {
|
||||
|
||||
union lang_statement_union;
|
||||
|
||||
enum phase_enum {
|
||||
exp_dataseg_none,
|
||||
exp_dataseg_align_seen,
|
||||
exp_dataseg_relro_seen,
|
||||
exp_dataseg_end_seen,
|
||||
exp_dataseg_relro_adjust,
|
||||
exp_dataseg_adjust
|
||||
};
|
||||
|
||||
enum relro_enum {
|
||||
exp_dataseg_relro_none,
|
||||
exp_dataseg_relro_start,
|
||||
exp_dataseg_relro_end,
|
||||
};
|
||||
|
||||
struct ldexp_control {
|
||||
/* Modify expression evaluation depending on this. */
|
||||
lang_phase_type phase;
|
||||
@ -117,22 +134,11 @@ struct ldexp_control {
|
||||
|
||||
/* State machine and results for DATASEG. */
|
||||
struct {
|
||||
enum {
|
||||
exp_dataseg_none,
|
||||
exp_dataseg_align_seen,
|
||||
exp_dataseg_relro_seen,
|
||||
exp_dataseg_end_seen,
|
||||
exp_dataseg_relro_adjust,
|
||||
exp_dataseg_adjust
|
||||
} phase;
|
||||
enum phase_enum phase;
|
||||
|
||||
bfd_vma base, min_base, relro_end, end, pagesize, maxpagesize;
|
||||
|
||||
enum {
|
||||
exp_dataseg_relro_none,
|
||||
exp_dataseg_relro_start,
|
||||
exp_dataseg_relro_end,
|
||||
} relro;
|
||||
enum relro_enum relro;
|
||||
|
||||
union lang_statement_union *relro_start_stat;
|
||||
union lang_statement_union *relro_end_stat;
|
||||
|
114
ld/ldlang.c
114
ld/ldlang.c
@ -307,7 +307,7 @@ typedef struct
|
||||
static bfd_boolean
|
||||
section_iterator_callback (bfd *bfd ATTRIBUTE_UNUSED, asection *s, void *data)
|
||||
{
|
||||
section_iterator_callback_data *d = data;
|
||||
section_iterator_callback_data *d = (section_iterator_callback_data *) data;
|
||||
|
||||
if (d->found_section != NULL)
|
||||
{
|
||||
@ -452,7 +452,7 @@ output_section_callback_fast (lang_wild_statement_type *ptr,
|
||||
if (unique_section_p (section))
|
||||
return;
|
||||
|
||||
node = xmalloc (sizeof (lang_section_bst_type));
|
||||
node = (lang_section_bst_type *) xmalloc (sizeof (lang_section_bst_type));
|
||||
node->left = 0;
|
||||
node->right = 0;
|
||||
node->section = section;
|
||||
@ -813,7 +813,9 @@ walk_wild_file (lang_wild_statement_type *s,
|
||||
lang_input_statement. */
|
||||
if (member->usrdata != NULL)
|
||||
{
|
||||
walk_wild_section (s, member->usrdata, callback, data);
|
||||
walk_wild_section (s,
|
||||
(lang_input_statement_type *) member->usrdata,
|
||||
callback, data);
|
||||
}
|
||||
|
||||
member = bfd_openr_next_archived_file (f->the_bfd, member);
|
||||
@ -1095,7 +1097,8 @@ output_section_statement_newfunc (struct bfd_hash_entry *entry,
|
||||
|
||||
if (entry == NULL)
|
||||
{
|
||||
entry = bfd_hash_allocate (table, sizeof (*ret));
|
||||
entry = (struct bfd_hash_entry *) bfd_hash_allocate (table,
|
||||
sizeof (*ret));
|
||||
if (entry == NULL)
|
||||
return entry;
|
||||
}
|
||||
@ -1296,7 +1299,7 @@ lang_memory_region_alias (const char * alias, const char * region_name)
|
||||
alias);
|
||||
|
||||
/* Add alias to region name list. */
|
||||
n = stat_alloc (sizeof (lang_memory_region_name));
|
||||
n = (lang_memory_region_name *) stat_alloc (sizeof (lang_memory_region_name));
|
||||
n->name = xstrdup (alias);
|
||||
n->next = region->name_list.next;
|
||||
region->name_list.next = n;
|
||||
@ -1717,8 +1720,8 @@ lang_insert_orphan (asection *s,
|
||||
|
||||
os_tail = ((lang_output_section_statement_type **)
|
||||
lang_output_section_statement.tail);
|
||||
os = lang_enter_output_section_statement (secname, address, 0, NULL, NULL,
|
||||
NULL, constraint);
|
||||
os = lang_enter_output_section_statement (secname, address, normal_section,
|
||||
NULL, NULL, NULL, constraint);
|
||||
|
||||
ps = NULL;
|
||||
if (config.build_constructors && *os_tail == os)
|
||||
@ -2012,18 +2015,20 @@ sort_def_symbol (struct bfd_link_hash_entry *hash_entry,
|
||||
struct fat_user_section_struct *ud;
|
||||
struct map_symbol_def *def;
|
||||
|
||||
ud = get_userdata (hash_entry->u.def.section);
|
||||
ud = (struct fat_user_section_struct *)
|
||||
get_userdata (hash_entry->u.def.section);
|
||||
if (! ud)
|
||||
{
|
||||
/* ??? What do we have to do to initialize this beforehand? */
|
||||
/* The first time we get here is bfd_abs_section... */
|
||||
init_map_userdata (0, hash_entry->u.def.section, 0);
|
||||
ud = get_userdata (hash_entry->u.def.section);
|
||||
ud = (struct fat_user_section_struct *)
|
||||
get_userdata (hash_entry->u.def.section);
|
||||
}
|
||||
else if (!ud->map_symbol_def_tail)
|
||||
ud->map_symbol_def_tail = &ud->map_symbol_def_head;
|
||||
|
||||
def = obstack_alloc (&map_obstack, sizeof *def);
|
||||
def = (struct map_symbol_def *) obstack_alloc (&map_obstack, sizeof *def);
|
||||
def->entry = hash_entry;
|
||||
*(ud->map_symbol_def_tail) = def;
|
||||
ud->map_symbol_def_tail = &def->next;
|
||||
@ -2139,7 +2144,7 @@ exp_init_os (etree_type *exp)
|
||||
static void
|
||||
section_already_linked (bfd *abfd, asection *sec, void *data)
|
||||
{
|
||||
lang_input_statement_type *entry = data;
|
||||
lang_input_statement_type *entry = (lang_input_statement_type *) data;
|
||||
|
||||
/* If we are only reading symbols from this object, then we want to
|
||||
discard all sections. */
|
||||
@ -2528,9 +2533,9 @@ add_excluded_libs (const char *list)
|
||||
end = strpbrk (p, ",:");
|
||||
if (end == NULL)
|
||||
end = p + strlen (p);
|
||||
entry = xmalloc (sizeof (*entry));
|
||||
entry = (struct excluded_lib *) xmalloc (sizeof (*entry));
|
||||
entry->next = excluded_libs;
|
||||
entry->name = xmalloc (end - p + 1);
|
||||
entry->name = (char *) xmalloc (end - p + 1);
|
||||
memcpy (entry->name, p, end - p);
|
||||
entry->name[end - p] = '\0';
|
||||
excluded_libs = entry;
|
||||
@ -2751,7 +2756,7 @@ wild (lang_wild_statement_type *s,
|
||||
static int
|
||||
get_target (const bfd_target *target, void *data)
|
||||
{
|
||||
const char *sought = data;
|
||||
const char *sought = (const char *) data;
|
||||
|
||||
return strcmp (target->name, sought) == 0;
|
||||
}
|
||||
@ -2798,8 +2803,8 @@ name_compare (char *first, char *second)
|
||||
char *copy2;
|
||||
int result;
|
||||
|
||||
copy1 = xmalloc (strlen (first) + 1);
|
||||
copy2 = xmalloc (strlen (second) + 1);
|
||||
copy1 = (char *) xmalloc (strlen (first) + 1);
|
||||
copy2 = (char *) xmalloc (strlen (second) + 1);
|
||||
|
||||
/* Convert the names to lower case. */
|
||||
stricpy (copy1, first);
|
||||
@ -2837,7 +2842,7 @@ static const bfd_target *winner;
|
||||
static int
|
||||
closest_target_match (const bfd_target *target, void *data)
|
||||
{
|
||||
const bfd_target *original = data;
|
||||
const bfd_target *original = (const bfd_target *) data;
|
||||
|
||||
if (command_line.endian == ENDIAN_BIG
|
||||
&& target->byteorder != BFD_ENDIAN_BIG)
|
||||
@ -3932,7 +3937,7 @@ print_input_statement (lang_input_statement_type *statm)
|
||||
static bfd_boolean
|
||||
print_one_symbol (struct bfd_link_hash_entry *hash_entry, void *ptr)
|
||||
{
|
||||
asection *sec = ptr;
|
||||
asection *sec = (asection *) ptr;
|
||||
|
||||
if ((hash_entry->type == bfd_link_hash_defined
|
||||
|| hash_entry->type == bfd_link_hash_defweak)
|
||||
@ -3970,7 +3975,8 @@ hash_entry_addr_cmp (const void *a, const void *b)
|
||||
static void
|
||||
print_all_symbols (asection *sec)
|
||||
{
|
||||
struct fat_user_section_struct *ud = get_userdata (sec);
|
||||
struct fat_user_section_struct *ud =
|
||||
(struct fat_user_section_struct *) get_userdata (sec);
|
||||
struct map_symbol_def *def;
|
||||
struct bfd_link_hash_entry **entries;
|
||||
unsigned int i;
|
||||
@ -3981,8 +3987,8 @@ print_all_symbols (asection *sec)
|
||||
*ud->map_symbol_def_tail = 0;
|
||||
|
||||
/* Sort the symbols by address. */
|
||||
entries = obstack_alloc (&map_obstack,
|
||||
ud->map_symbol_def_count * sizeof (*entries));
|
||||
entries = (struct bfd_link_hash_entry **)
|
||||
obstack_alloc (&map_obstack, ud->map_symbol_def_count * sizeof (*entries));
|
||||
|
||||
for (i = 0, def = ud->map_symbol_def_head; def; def = def->next, i++)
|
||||
entries[i] = def->entry;
|
||||
@ -4419,7 +4425,8 @@ insert_pad (lang_statement_union_type **ptr,
|
||||
else
|
||||
{
|
||||
/* Make a new padding statement, linked into existing chain. */
|
||||
pad = stat_alloc (sizeof (lang_padding_statement_type));
|
||||
pad = (lang_statement_union_type *)
|
||||
stat_alloc (sizeof (lang_padding_statement_type));
|
||||
pad->header.next = *ptr;
|
||||
*ptr = pad;
|
||||
pad->header.type = lang_padding_statement_enum;
|
||||
@ -4535,7 +4542,7 @@ lang_check_section_addresses (void)
|
||||
return;
|
||||
|
||||
amt = bfd_count_sections (link_info.output_bfd) * sizeof (asection *);
|
||||
sections = xmalloc (amt);
|
||||
sections = (asection **) xmalloc (amt);
|
||||
|
||||
/* Scan all sections in the output list. */
|
||||
count = 0;
|
||||
@ -5465,7 +5472,7 @@ lang_set_startof (void)
|
||||
struct bfd_link_hash_entry *h;
|
||||
|
||||
secname = bfd_get_section_name (link_info.output_bfd, s);
|
||||
buf = xmalloc (10 + strlen (secname));
|
||||
buf = (char *) xmalloc (10 + strlen (secname));
|
||||
|
||||
sprintf (buf, ".startof.%s", secname);
|
||||
h = bfd_link_hash_lookup (link_info.hash, buf, FALSE, FALSE, TRUE);
|
||||
@ -6762,7 +6769,7 @@ lang_new_phdr (const char *name,
|
||||
{
|
||||
struct lang_phdr *n, **pp;
|
||||
|
||||
n = stat_alloc (sizeof (struct lang_phdr));
|
||||
n = (struct lang_phdr *) stat_alloc (sizeof (struct lang_phdr));
|
||||
n->next = NULL;
|
||||
n->name = name;
|
||||
n->type = exp_get_value_int (type, 0, "program header type");
|
||||
@ -6789,7 +6796,7 @@ lang_record_phdrs (void)
|
||||
lang_output_section_statement_type *os;
|
||||
|
||||
alc = 10;
|
||||
secs = xmalloc (alc * sizeof (asection *));
|
||||
secs = (asection **) xmalloc (alc * sizeof (asection *));
|
||||
last = NULL;
|
||||
|
||||
for (l = lang_phdr_list; l != NULL; l = l->next)
|
||||
@ -6856,7 +6863,8 @@ lang_record_phdrs (void)
|
||||
if (c >= alc)
|
||||
{
|
||||
alc *= 2;
|
||||
secs = xrealloc (secs, alc * sizeof (asection *));
|
||||
secs = (asection **) xrealloc (secs,
|
||||
alc * sizeof (asection *));
|
||||
}
|
||||
secs[c] = os->bfd_section;
|
||||
++c;
|
||||
@ -6910,7 +6918,7 @@ lang_add_nocrossref (lang_nocrossref_type *l)
|
||||
{
|
||||
struct lang_nocrossrefs *n;
|
||||
|
||||
n = xmalloc (sizeof *n);
|
||||
n = (struct lang_nocrossrefs *) xmalloc (sizeof *n);
|
||||
n->next = nocrossref_list;
|
||||
n->list = l;
|
||||
nocrossref_list = n;
|
||||
@ -6972,7 +6980,7 @@ lang_enter_overlay_section (const char *name)
|
||||
overlay_vma = exp_nameop (ADDR, name);
|
||||
|
||||
/* Remember the section. */
|
||||
n = xmalloc (sizeof *n);
|
||||
n = (struct overlay_list *) xmalloc (sizeof *n);
|
||||
n->os = current_section;
|
||||
n->next = overlay_list;
|
||||
overlay_list = n;
|
||||
@ -7008,20 +7016,20 @@ lang_leave_overlay_section (fill_type *fill,
|
||||
|
||||
/* Define the magic symbols. */
|
||||
|
||||
clean = xmalloc (strlen (name) + 1);
|
||||
clean = (char *) xmalloc (strlen (name) + 1);
|
||||
s2 = clean;
|
||||
for (s1 = name; *s1 != '\0'; s1++)
|
||||
if (ISALNUM (*s1) || *s1 == '_')
|
||||
*s2++ = *s1;
|
||||
*s2 = '\0';
|
||||
|
||||
buf = xmalloc (strlen (clean) + sizeof "__load_start_");
|
||||
buf = (char *) xmalloc (strlen (clean) + sizeof "__load_start_");
|
||||
sprintf (buf, "__load_start_%s", clean);
|
||||
lang_add_assignment (exp_provide (buf,
|
||||
exp_nameop (LOADADDR, name),
|
||||
FALSE));
|
||||
|
||||
buf = xmalloc (strlen (clean) + sizeof "__load_stop_");
|
||||
buf = (char *) xmalloc (strlen (clean) + sizeof "__load_stop_");
|
||||
sprintf (buf, "__load_stop_%s", clean);
|
||||
lang_add_assignment (exp_provide (buf,
|
||||
exp_binop ('+',
|
||||
@ -7087,7 +7095,7 @@ lang_leave_overlay (etree_type *lma_expr,
|
||||
{
|
||||
lang_nocrossref_type *nc;
|
||||
|
||||
nc = xmalloc (sizeof *nc);
|
||||
nc = (lang_nocrossref_type *) xmalloc (sizeof *nc);
|
||||
nc->name = l->os->name;
|
||||
nc->next = nocrossref;
|
||||
nocrossref = nc;
|
||||
@ -7148,7 +7156,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
|
||||
if (head->mask & BFD_ELF_VERSION_C_TYPE)
|
||||
{
|
||||
e.pattern = sym;
|
||||
expr = htab_find (head->htab, &e);
|
||||
expr = (struct bfd_elf_version_expr *)
|
||||
htab_find ((htab_t) head->htab, &e);
|
||||
while (expr && strcmp (expr->pattern, sym) == 0)
|
||||
if (expr->mask == BFD_ELF_VERSION_C_TYPE)
|
||||
goto out_ret;
|
||||
@ -7160,7 +7169,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
|
||||
if (head->mask & BFD_ELF_VERSION_CXX_TYPE)
|
||||
{
|
||||
e.pattern = cxx_sym;
|
||||
expr = htab_find (head->htab, &e);
|
||||
expr = (struct bfd_elf_version_expr *)
|
||||
htab_find ((htab_t) head->htab, &e);
|
||||
while (expr && strcmp (expr->pattern, cxx_sym) == 0)
|
||||
if (expr->mask == BFD_ELF_VERSION_CXX_TYPE)
|
||||
goto out_ret;
|
||||
@ -7172,7 +7182,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
|
||||
if (head->mask & BFD_ELF_VERSION_JAVA_TYPE)
|
||||
{
|
||||
e.pattern = java_sym;
|
||||
expr = htab_find (head->htab, &e);
|
||||
expr = (struct bfd_elf_version_expr *)
|
||||
htab_find ((htab_t) head->htab, &e);
|
||||
while (expr && strcmp (expr->pattern, java_sym) == 0)
|
||||
if (expr->mask == BFD_ELF_VERSION_JAVA_TYPE)
|
||||
goto out_ret;
|
||||
@ -7226,7 +7237,7 @@ realsymbol (const char *pattern)
|
||||
{
|
||||
const char *p;
|
||||
bfd_boolean changed = FALSE, backslash = FALSE;
|
||||
char *s, *symbol = xmalloc (strlen (pattern) + 1);
|
||||
char *s, *symbol = (char *) xmalloc (strlen (pattern) + 1);
|
||||
|
||||
for (p = pattern, s = symbol; *p != '\0'; ++p)
|
||||
{
|
||||
@ -7313,7 +7324,7 @@ lang_new_vers_node (struct bfd_elf_version_expr *globals,
|
||||
{
|
||||
struct bfd_elf_version_tree *ret;
|
||||
|
||||
ret = xcalloc (1, sizeof *ret);
|
||||
ret = (struct bfd_elf_version_tree *) xcalloc (1, sizeof *ret);
|
||||
ret->globals.list = globals;
|
||||
ret->locals.list = locals;
|
||||
ret->match = lang_vers_match;
|
||||
@ -7328,7 +7339,8 @@ static int version_index;
|
||||
static hashval_t
|
||||
version_expr_head_hash (const void *p)
|
||||
{
|
||||
const struct bfd_elf_version_expr *e = p;
|
||||
const struct bfd_elf_version_expr *e =
|
||||
(const struct bfd_elf_version_expr *) p;
|
||||
|
||||
return htab_hash_string (e->pattern);
|
||||
}
|
||||
@ -7336,8 +7348,10 @@ version_expr_head_hash (const void *p)
|
||||
static int
|
||||
version_expr_head_eq (const void *p1, const void *p2)
|
||||
{
|
||||
const struct bfd_elf_version_expr *e1 = p1;
|
||||
const struct bfd_elf_version_expr *e2 = p2;
|
||||
const struct bfd_elf_version_expr *e1 =
|
||||
(const struct bfd_elf_version_expr *) p1;
|
||||
const struct bfd_elf_version_expr *e2 =
|
||||
(const struct bfd_elf_version_expr *) p2;
|
||||
|
||||
return strcmp (e1->pattern, e2->pattern) == 0;
|
||||
}
|
||||
@ -7372,13 +7386,13 @@ lang_finalize_version_expr_head (struct bfd_elf_version_expr_head *head)
|
||||
}
|
||||
else
|
||||
{
|
||||
void **loc = htab_find_slot (head->htab, e, INSERT);
|
||||
void **loc = htab_find_slot ((htab_t) head->htab, e, INSERT);
|
||||
|
||||
if (*loc)
|
||||
{
|
||||
struct bfd_elf_version_expr *e1, *last;
|
||||
|
||||
e1 = *loc;
|
||||
e1 = (struct bfd_elf_version_expr *) *loc;
|
||||
last = NULL;
|
||||
do
|
||||
{
|
||||
@ -7463,7 +7477,8 @@ lang_register_vers_node (const char *name,
|
||||
|
||||
if (t->locals.htab && e1->literal)
|
||||
{
|
||||
e2 = htab_find (t->locals.htab, e1);
|
||||
e2 = (struct bfd_elf_version_expr *)
|
||||
htab_find ((htab_t) t->locals.htab, e1);
|
||||
while (e2 && strcmp (e1->pattern, e2->pattern) == 0)
|
||||
{
|
||||
if (e1->mask == e2->mask)
|
||||
@ -7489,7 +7504,8 @@ lang_register_vers_node (const char *name,
|
||||
|
||||
if (t->globals.htab && e1->literal)
|
||||
{
|
||||
e2 = htab_find (t->globals.htab, e1);
|
||||
e2 = (struct bfd_elf_version_expr *)
|
||||
htab_find ((htab_t) t->globals.htab, e1);
|
||||
while (e2 && strcmp (e1->pattern, e2->pattern) == 0)
|
||||
{
|
||||
if (e1->mask == e2->mask)
|
||||
@ -7531,7 +7547,7 @@ lang_add_vers_depend (struct bfd_elf_version_deps *list, const char *name)
|
||||
struct bfd_elf_version_deps *ret;
|
||||
struct bfd_elf_version_tree *t;
|
||||
|
||||
ret = xmalloc (sizeof *ret);
|
||||
ret = (struct bfd_elf_version_deps *) xmalloc (sizeof *ret);
|
||||
ret->next = list;
|
||||
|
||||
for (t = lang_elf_version_info; t != NULL; t = t->next)
|
||||
@ -7563,7 +7579,7 @@ lang_do_version_exports_section (void)
|
||||
continue;
|
||||
|
||||
len = sec->size;
|
||||
contents = xmalloc (len);
|
||||
contents = (char *) xmalloc (len);
|
||||
if (!bfd_get_section_contents (is->the_bfd, sec, contents, 0, len))
|
||||
einfo (_("%X%P: unable to read .exports section contents\n"), sec);
|
||||
|
||||
@ -7594,7 +7610,7 @@ lang_add_unique (const char *name)
|
||||
if (strcmp (ent->name, name) == 0)
|
||||
return;
|
||||
|
||||
ent = xmalloc (sizeof *ent);
|
||||
ent = (struct unique_sections *) xmalloc (sizeof *ent);
|
||||
ent->name = xstrdup (name);
|
||||
ent->next = unique_section_list;
|
||||
unique_section_list = ent;
|
||||
@ -7617,7 +7633,7 @@ lang_append_dynamic_list (struct bfd_elf_version_expr *dynamic)
|
||||
{
|
||||
struct bfd_elf_dynamic_list *d;
|
||||
|
||||
d = xcalloc (1, sizeof *d);
|
||||
d = (struct bfd_elf_dynamic_list *) xcalloc (1, sizeof *d);
|
||||
d->head.list = dynamic;
|
||||
d->match = lang_vers_match;
|
||||
link_info.dynamic_list = d;
|
||||
|
40
ld/ldlang.h
40
ld/ldlang.h
@ -66,28 +66,30 @@ typedef struct memory_region_struct
|
||||
bfd_boolean had_full_message;
|
||||
} lang_memory_region_type;
|
||||
|
||||
enum statement_enum
|
||||
{
|
||||
lang_output_section_statement_enum,
|
||||
lang_assignment_statement_enum,
|
||||
lang_input_statement_enum,
|
||||
lang_address_statement_enum,
|
||||
lang_wild_statement_enum,
|
||||
lang_input_section_enum,
|
||||
lang_object_symbols_statement_enum,
|
||||
lang_fill_statement_enum,
|
||||
lang_data_statement_enum,
|
||||
lang_reloc_statement_enum,
|
||||
lang_target_statement_enum,
|
||||
lang_output_statement_enum,
|
||||
lang_padding_statement_enum,
|
||||
lang_group_statement_enum,
|
||||
lang_insert_statement_enum,
|
||||
lang_constructors_statement_enum
|
||||
};
|
||||
|
||||
typedef struct lang_statement_header_struct
|
||||
{
|
||||
union lang_statement_union *next;
|
||||
enum statement_enum
|
||||
{
|
||||
lang_output_section_statement_enum,
|
||||
lang_assignment_statement_enum,
|
||||
lang_input_statement_enum,
|
||||
lang_address_statement_enum,
|
||||
lang_wild_statement_enum,
|
||||
lang_input_section_enum,
|
||||
lang_object_symbols_statement_enum,
|
||||
lang_fill_statement_enum,
|
||||
lang_data_statement_enum,
|
||||
lang_reloc_statement_enum,
|
||||
lang_target_statement_enum,
|
||||
lang_output_statement_enum,
|
||||
lang_padding_statement_enum,
|
||||
lang_group_statement_enum,
|
||||
lang_insert_statement_enum,
|
||||
lang_constructors_statement_enum
|
||||
} type;
|
||||
enum statement_enum type;
|
||||
} lang_statement_header_type;
|
||||
|
||||
typedef struct
|
||||
|
33
ld/ldmain.c
33
ld/ldmain.c
@ -399,7 +399,7 @@ main (int argc, char **argv)
|
||||
{
|
||||
static const int ld_bufsz = 8193;
|
||||
size_t n;
|
||||
char *buf = xmalloc (ld_bufsz);
|
||||
char *buf = (char *) xmalloc (ld_bufsz);
|
||||
|
||||
rewind (saved_script_handle);
|
||||
while ((n = fread (buf, 1, ld_bufsz - 1, saved_script_handle)) > 0)
|
||||
@ -503,9 +503,9 @@ main (int argc, char **argv)
|
||||
FILE *src;
|
||||
FILE *dst;
|
||||
const int bsize = 4096;
|
||||
char *buf = xmalloc (bsize);
|
||||
char *buf = (char *) xmalloc (bsize);
|
||||
int l;
|
||||
char *dst_name = xmalloc (len + 5);
|
||||
char *dst_name = (char *) xmalloc (len + 5);
|
||||
|
||||
strcpy (dst_name, output_filename);
|
||||
strcat (dst_name, ".exe");
|
||||
@ -540,7 +540,7 @@ main (int argc, char **argv)
|
||||
if (config.stats)
|
||||
{
|
||||
#ifdef HAVE_SBRK
|
||||
char *lim = sbrk (0);
|
||||
char *lim = (char *) sbrk (0);
|
||||
#endif
|
||||
long run_time = get_run_time () - start_time;
|
||||
|
||||
@ -672,7 +672,8 @@ add_ysym (const char *name)
|
||||
{
|
||||
if (link_info.notice_hash == NULL)
|
||||
{
|
||||
link_info.notice_hash = xmalloc (sizeof (struct bfd_hash_table));
|
||||
link_info.notice_hash =
|
||||
(struct bfd_hash_table *) xmalloc (sizeof (struct bfd_hash_table));
|
||||
if (!bfd_hash_table_init_n (link_info.notice_hash,
|
||||
bfd_hash_newfunc,
|
||||
sizeof (struct bfd_hash_entry),
|
||||
@ -691,7 +692,8 @@ add_wrap (const char *name)
|
||||
{
|
||||
if (link_info.wrap_hash == NULL)
|
||||
{
|
||||
link_info.wrap_hash = xmalloc (sizeof (struct bfd_hash_table));
|
||||
link_info.wrap_hash =
|
||||
(struct bfd_hash_table *) xmalloc (sizeof (struct bfd_hash_table));
|
||||
if (!bfd_hash_table_init_n (link_info.wrap_hash,
|
||||
bfd_hash_newfunc,
|
||||
sizeof (struct bfd_hash_entry),
|
||||
@ -724,13 +726,14 @@ add_keepsyms_file (const char *filename)
|
||||
return;
|
||||
}
|
||||
|
||||
link_info.keep_hash = xmalloc (sizeof (struct bfd_hash_table));
|
||||
link_info.keep_hash = (struct bfd_hash_table *)
|
||||
xmalloc (sizeof (struct bfd_hash_table));
|
||||
if (!bfd_hash_table_init (link_info.keep_hash, bfd_hash_newfunc,
|
||||
sizeof (struct bfd_hash_entry)))
|
||||
einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
|
||||
|
||||
bufsize = 100;
|
||||
buf = xmalloc (bufsize);
|
||||
buf = (char *) xmalloc (bufsize);
|
||||
|
||||
c = getc (file);
|
||||
while (c != EOF)
|
||||
@ -749,7 +752,7 @@ add_keepsyms_file (const char *filename)
|
||||
if (len >= bufsize)
|
||||
{
|
||||
bufsize *= 2;
|
||||
buf = xrealloc (buf, bufsize);
|
||||
buf = (char *) xrealloc (buf, bufsize);
|
||||
}
|
||||
c = getc (file);
|
||||
}
|
||||
@ -780,7 +783,8 @@ add_archive_element (struct bfd_link_info *info,
|
||||
{
|
||||
lang_input_statement_type *input;
|
||||
|
||||
input = xcalloc (1, sizeof (lang_input_statement_type));
|
||||
input = (lang_input_statement_type *)
|
||||
xcalloc (1, sizeof (lang_input_statement_type));
|
||||
input->filename = abfd->filename;
|
||||
input->local_sym_name = abfd->filename;
|
||||
input->the_bfd = abfd;
|
||||
@ -1127,7 +1131,7 @@ warning_callback (struct bfd_link_info *info ATTRIBUTE_UNUSED,
|
||||
static void
|
||||
warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
|
||||
{
|
||||
struct warning_callback_info *info = iarg;
|
||||
struct warning_callback_info *info = (struct warning_callback_info *) iarg;
|
||||
long relsize;
|
||||
arelent **relpp;
|
||||
long relcount;
|
||||
@ -1142,7 +1146,7 @@ warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
|
||||
if (relsize == 0)
|
||||
return;
|
||||
|
||||
relpp = xmalloc (relsize);
|
||||
relpp = (arelent **) xmalloc (relsize);
|
||||
relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
|
||||
if (relcount < 0)
|
||||
einfo (_("%B%F: could not read relocs: %E\n"), abfd);
|
||||
@ -1190,7 +1194,8 @@ undefined_symbol (struct bfd_link_info *info ATTRIBUTE_UNUSED,
|
||||
/* Only warn once about a particular undefined symbol. */
|
||||
if (hash == NULL)
|
||||
{
|
||||
hash = xmalloc (sizeof (struct bfd_hash_table));
|
||||
hash = (struct bfd_hash_table *)
|
||||
xmalloc (sizeof (struct bfd_hash_table));
|
||||
if (!bfd_hash_table_init (hash, bfd_hash_newfunc,
|
||||
sizeof (struct bfd_hash_entry)))
|
||||
einfo (_("%F%P: bfd_hash_table_init failed: %E\n"));
|
||||
@ -1376,7 +1381,7 @@ notice (struct bfd_link_info *info,
|
||||
if (name == NULL)
|
||||
{
|
||||
if (command_line.cref || nocrossref_list != NULL)
|
||||
return handle_asneeded_cref (abfd, value);
|
||||
return handle_asneeded_cref (abfd, (enum notice_asneeded_action) value);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -57,7 +57,7 @@ build_link_order (lang_statement_union_type *statement)
|
||||
|
||||
link_order->type = bfd_data_link_order;
|
||||
link_order->offset = statement->data_statement.output_offset;
|
||||
link_order->u.data.contents = xmalloc (QUAD_SIZE);
|
||||
link_order->u.data.contents = (bfd_byte *) xmalloc (QUAD_SIZE);
|
||||
|
||||
value = statement->data_statement.value;
|
||||
|
||||
@ -198,7 +198,8 @@ build_link_order (lang_statement_union_type *statement)
|
||||
link_order->offset = rs->output_offset;
|
||||
link_order->size = bfd_get_reloc_size (rs->howto);
|
||||
|
||||
link_order->u.reloc.p = xmalloc (sizeof (struct bfd_link_order_reloc));
|
||||
link_order->u.reloc.p = (struct bfd_link_order_reloc *)
|
||||
xmalloc (sizeof (struct bfd_link_order_reloc));
|
||||
|
||||
link_order->u.reloc.p->reloc = rs->reloc;
|
||||
link_order->u.reloc.p->addend = rs->addend_value;
|
||||
@ -333,7 +334,7 @@ clone_section (bfd *abfd, asection *s, const char *name, int *count)
|
||||
/* Invent a section name from the section name and a dotted numeric
|
||||
suffix. */
|
||||
len = strlen (name);
|
||||
tname = xmalloc (len + 1);
|
||||
tname = (char *) xmalloc (len + 1);
|
||||
memcpy (tname, name, len + 1);
|
||||
/* Remove a dotted number suffix, from a previous split link. */
|
||||
while (len && ISDIGIT (tname[len-1]))
|
||||
|
67
ld/lexsup.c
67
ld/lexsup.c
@ -172,6 +172,25 @@ enum option_values
|
||||
/* The long options. This structure is used for both the option
|
||||
parsing and the help text. */
|
||||
|
||||
enum control_enum {
|
||||
/* Use one dash before long option name. */
|
||||
ONE_DASH,
|
||||
/* Use two dashes before long option name. */
|
||||
TWO_DASHES,
|
||||
/* Only accept two dashes before the long option name.
|
||||
This is an overloading of the use of this enum, since originally it
|
||||
was only intended to tell the --help display function how to display
|
||||
the long option name. This feature was added in order to resolve
|
||||
the confusion about the -omagic command line switch. Is it setting
|
||||
the output file name to "magic" or is it setting the NMAGIC flag on
|
||||
the output ? It has been decided that it is setting the output file
|
||||
name, and that if you want to set the NMAGIC flag you should use -N
|
||||
or --omagic. */
|
||||
EXACTLY_TWO_DASHES,
|
||||
/* Don't mention this option in --help output. */
|
||||
NO_HELP
|
||||
};
|
||||
|
||||
struct ld_option
|
||||
{
|
||||
/* The long option information. */
|
||||
@ -183,24 +202,7 @@ struct ld_option
|
||||
/* The documentation string. If this is NULL, this is a synonym for
|
||||
the previous option. */
|
||||
const char *doc;
|
||||
enum {
|
||||
/* Use one dash before long option name. */
|
||||
ONE_DASH,
|
||||
/* Use two dashes before long option name. */
|
||||
TWO_DASHES,
|
||||
/* Only accept two dashes before the long option name.
|
||||
This is an overloading of the use of this enum, since originally it
|
||||
was only intended to tell the --help display function how to display
|
||||
the long option name. This feature was added in order to resolve
|
||||
the confusion about the -omagic command line switch. Is it setting
|
||||
the output file name to "magic" or is it setting the NMAGIC flag on
|
||||
the output ? It has been decided that it is setting the output file
|
||||
name, and that if you want to set the NMAGIC flag you should use -N
|
||||
or --omagic. */
|
||||
EXACTLY_TWO_DASHES,
|
||||
/* Don't mention this option in --help output. */
|
||||
NO_HELP
|
||||
} control;
|
||||
enum control_enum control;
|
||||
};
|
||||
|
||||
static const struct ld_option ld_options[] =
|
||||
@ -590,9 +592,11 @@ parse_args (unsigned argc, char **argv)
|
||||
int last_optind;
|
||||
enum report_method how_to_report_unresolved_symbols = RM_GENERATE_ERROR;
|
||||
|
||||
shortopts = xmalloc (OPTION_COUNT * 3 + 2);
|
||||
longopts = xmalloc (sizeof (*longopts) * (OPTION_COUNT + 1));
|
||||
really_longopts = xmalloc (sizeof (*really_longopts) * (OPTION_COUNT + 1));
|
||||
shortopts = (char *) xmalloc (OPTION_COUNT * 3 + 2);
|
||||
longopts = (struct option *)
|
||||
xmalloc (sizeof (*longopts) * (OPTION_COUNT + 1));
|
||||
really_longopts = (struct option *)
|
||||
malloc (sizeof (*really_longopts) * (OPTION_COUNT + 1));
|
||||
|
||||
/* Starting the short option string with '-' is for programs that
|
||||
expect options and other ARGV-elements in any order and that care about
|
||||
@ -677,7 +681,7 @@ parse_args (unsigned argc, char **argv)
|
||||
{
|
||||
char *n;
|
||||
|
||||
n = xmalloc (strlen (argv[i]) + 20);
|
||||
n = (char *) xmalloc (strlen (argv[i]) + 20);
|
||||
sprintf (n, "--library=%s", argv[i] + 2);
|
||||
argv[i] = n;
|
||||
}
|
||||
@ -833,7 +837,8 @@ parse_args (unsigned argc, char **argv)
|
||||
case 'f':
|
||||
if (command_line.auxiliary_filters == NULL)
|
||||
{
|
||||
command_line.auxiliary_filters = xmalloc (2 * sizeof (char *));
|
||||
command_line.auxiliary_filters = (char **)
|
||||
xmalloc (2 * sizeof (char *));
|
||||
command_line.auxiliary_filters[0] = optarg;
|
||||
command_line.auxiliary_filters[1] = NULL;
|
||||
}
|
||||
@ -845,8 +850,8 @@ parse_args (unsigned argc, char **argv)
|
||||
c = 0;
|
||||
for (p = command_line.auxiliary_filters; *p != NULL; p++)
|
||||
++c;
|
||||
command_line.auxiliary_filters
|
||||
= xrealloc (command_line.auxiliary_filters,
|
||||
command_line.auxiliary_filters = (char **)
|
||||
xrealloc (command_line.auxiliary_filters,
|
||||
(c + 2) * sizeof (char *));
|
||||
command_line.auxiliary_filters[c] = optarg;
|
||||
command_line.auxiliary_filters[c + 1] = NULL;
|
||||
@ -1092,7 +1097,7 @@ parse_args (unsigned argc, char **argv)
|
||||
|
||||
if (cp == NULL)
|
||||
{
|
||||
buf = xmalloc (rpath_len + optarg_len + 2);
|
||||
buf = (char *) xmalloc (rpath_len + optarg_len + 2);
|
||||
sprintf (buf, "%s%c%s", command_line.rpath,
|
||||
config.rpath_separator, optarg);
|
||||
free (command_line.rpath);
|
||||
@ -1107,9 +1112,9 @@ parse_args (unsigned argc, char **argv)
|
||||
{
|
||||
char *buf;
|
||||
|
||||
buf = xmalloc (strlen (command_line.rpath_link)
|
||||
+ strlen (optarg)
|
||||
+ 2);
|
||||
buf = (char *) xmalloc (strlen (command_line.rpath_link)
|
||||
+ strlen (optarg)
|
||||
+ 2);
|
||||
sprintf (buf, "%s%c%s", command_line.rpath_link,
|
||||
config.rpath_separator, optarg);
|
||||
free (command_line.rpath_link);
|
||||
@ -1224,7 +1229,7 @@ parse_args (unsigned argc, char **argv)
|
||||
/* We must copy the section name as set_section_start
|
||||
doesn't do it for us. */
|
||||
len = optarg2 - optarg;
|
||||
sec_name = xmalloc (len);
|
||||
sec_name = (char *) xmalloc (len);
|
||||
memcpy (sec_name, optarg, len - 1);
|
||||
sec_name[len - 1] = 0;
|
||||
|
||||
@ -1549,7 +1554,7 @@ set_segment_start (const char *section, char *valstr)
|
||||
}
|
||||
/* There was no existing value so we must create a new segment
|
||||
entry. */
|
||||
seg = stat_alloc (sizeof (*seg));
|
||||
seg = (segment_type *) stat_alloc (sizeof (*seg));
|
||||
seg->name = name;
|
||||
seg->value = val;
|
||||
seg->used = FALSE;
|
||||
|
9
ld/mri.c
9
ld/mri.c
@ -68,7 +68,8 @@ lookup (const char *name, struct section_name_struct **list)
|
||||
ptr = &((*ptr)->next);
|
||||
}
|
||||
|
||||
*ptr = xmalloc (sizeof (struct section_name_struct));
|
||||
*ptr = (struct section_name_struct *)
|
||||
xmalloc (sizeof (struct section_name_struct));
|
||||
return ptr;
|
||||
}
|
||||
|
||||
@ -206,10 +207,10 @@ mri_draw_tree (void)
|
||||
base = p->vma ? p->vma : exp_nameop (NAME, ".");
|
||||
|
||||
lang_enter_output_section_statement (p->name, base,
|
||||
p->ok_to_load ? 0 : noload_section,
|
||||
p->ok_to_load ? normal_section : noload_section,
|
||||
align, subalign, NULL, 0);
|
||||
base = 0;
|
||||
tmp = xmalloc (sizeof *tmp);
|
||||
tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
|
||||
tmp->next = NULL;
|
||||
tmp->spec.name = p->name;
|
||||
tmp->spec.exclude_name_list = NULL;
|
||||
@ -220,7 +221,7 @@ mri_draw_tree (void)
|
||||
for (aptr = alias; aptr; aptr = aptr->next)
|
||||
if (strcmp (aptr->alias, p->name) == 0)
|
||||
{
|
||||
tmp = xmalloc (sizeof *tmp);
|
||||
tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
|
||||
tmp->next = NULL;
|
||||
tmp->spec.name = aptr->name;
|
||||
tmp->spec.exclude_name_list = NULL;
|
||||
|
1062
ld/po/fi.po
1062
ld/po/fi.po
File diff suppressed because it is too large
Load Diff
@ -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-04 14:36+0200\n"
|
||||
"POT-Creation-Date: 2009-09-07 14:10+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"
|
||||
|
@ -5908,22 +5908,24 @@ byte_re_match_2_internal (struct re_pattern_buffer *bufp,
|
||||
longest match, try backtracking. */
|
||||
if (d != end_match_2)
|
||||
{
|
||||
/* 1 if this match ends in the same string (string1 or string2)
|
||||
as the best previous match. */
|
||||
boolean same_str_p = (FIRST_STRING_P (match_end)
|
||||
== MATCHING_IN_FIRST_STRING);
|
||||
/* 1 if this match is the best seen so far. */
|
||||
boolean best_match_p;
|
||||
|
||||
/* AIX compiler got confused when this was combined
|
||||
with the previous declaration. */
|
||||
if (same_str_p)
|
||||
best_match_p = d > match_end;
|
||||
else
|
||||
best_match_p = !MATCHING_IN_FIRST_STRING;
|
||||
{
|
||||
/* 1 if this match ends in the same string (string1 or string2)
|
||||
as the best previous match. */
|
||||
boolean same_str_p = (FIRST_STRING_P (match_end)
|
||||
== MATCHING_IN_FIRST_STRING);
|
||||
|
||||
DEBUG_PRINT1 ("backtracking.\n");
|
||||
/* AIX compiler got confused when this was combined
|
||||
with the previous declaration. */
|
||||
if (same_str_p)
|
||||
best_match_p = d > match_end;
|
||||
else
|
||||
best_match_p = !MATCHING_IN_FIRST_STRING;
|
||||
|
||||
DEBUG_PRINT1 ("backtracking.\n");
|
||||
}
|
||||
if (!FAIL_STACK_EMPTY ())
|
||||
{ /* More failure points to try. */
|
||||
|
||||
|
@ -1,3 +1,22 @@
|
||||
2009-09-11 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* po/opcodes.pot: Updated by the Translation project.
|
||||
|
||||
2009-09-11 Martin Thuresson <martint@google.com>
|
||||
|
||||
Updated sources 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.
|
||||
|
||||
2009-09-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||||
|
||||
* s390-dis.c (print_insn_s390): Avoid 'long long'.
|
||||
|
@ -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"
|
||||
|
Loading…
Reference in New Issue
Block a user