mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-20 01:50:24 +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:
@ -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>
|
2009-09-11 Philippe De Muyter <phdm@macqel.be>
|
||||||
|
|
||||||
* binary.c (binary_object_p): Remove bfd_external_binary_architecture
|
* binary.c (binary_object_p): Remove bfd_external_binary_architecture
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\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"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -367,7 +367,7 @@ msgstr ""
|
|||||||
msgid "Relocation `%s' not yet implemented\n"
|
msgid "Relocation `%s' not yet implemented\n"
|
||||||
msgstr ""
|
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"
|
msgid "%B: warning: illegal symbol index %ld in relocs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -437,56 +437,56 @@ msgstr ""
|
|||||||
msgid "ignoring reloc %s\n"
|
msgid "ignoring reloc %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: coffcode.h:962
|
#: coffcode.h:960
|
||||||
msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'"
|
msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Generate a warning message rather using the 'unhandled'
|
#. Generate a warning message rather using the 'unhandled'
|
||||||
#. variable as this will allow some .sys files generate by
|
#. variable as this will allow some .sys files generate by
|
||||||
#. other toolchains to be processed. See bugzilla issue 196.
|
#. other toolchains to be processed. See bugzilla issue 196.
|
||||||
#: coffcode.h:1178
|
#: coffcode.h:1176
|
||||||
msgid ""
|
msgid ""
|
||||||
"%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s"
|
"%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: coffcode.h:1242
|
#: coffcode.h:1240
|
||||||
msgid "%B (%s): Section flag %s (0x%x) ignored"
|
msgid "%B (%s): Section flag %s (0x%x) ignored"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: coffcode.h:2384
|
#: coffcode.h:2382
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unrecognized TI COFF target id '0x%x'"
|
msgid "Unrecognized TI COFF target id '0x%x'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: coffcode.h:2698
|
#: coffcode.h:2696
|
||||||
msgid "%B: reloc against a non-existant symbol index: %ld"
|
msgid "%B: reloc against a non-existant symbol index: %ld"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: coffcode.h:3671
|
#: coffcode.h:3669
|
||||||
msgid "%B: section %s: string table overflow at offset %ld"
|
msgid "%B: section %s: string table overflow at offset %ld"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: coffcode.h:4479
|
#: coffcode.h:4477
|
||||||
msgid "%B: warning: line number table read failed"
|
msgid "%B: warning: line number table read failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: coffcode.h:4509
|
#: coffcode.h:4507
|
||||||
msgid "%B: warning: illegal symbol index %ld in line numbers"
|
msgid "%B: warning: illegal symbol index %ld in line numbers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: coffcode.h:4523
|
#: coffcode.h:4521
|
||||||
msgid "%B: warning: duplicate line number information for `%s'"
|
msgid "%B: warning: duplicate line number information for `%s'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: coffcode.h:4914
|
#: coffcode.h:4912
|
||||||
msgid "%B: Unrecognized storage class %d for %s symbol `%s'"
|
msgid "%B: Unrecognized storage class %d for %s symbol `%s'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: coffcode.h:5040
|
#: coffcode.h:5038
|
||||||
msgid "warning: %B: local symbol `%s' has no section"
|
msgid "warning: %B: local symbol `%s' has no section"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: coffcode.h:5183
|
#: coffcode.h:5181
|
||||||
msgid "%B: illegal relocation type %d at address 0x%lx"
|
msgid "%B: illegal relocation type %d at address 0x%lx"
|
||||||
msgstr ""
|
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>
|
2009-09-11 Philippe De Muyter <phdm@macqel.be>
|
||||||
|
|
||||||
* obcopy.c (copy_object): New parameter `input_arch', architecture
|
* obcopy.c (copy_object): New parameter `input_arch', architecture
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\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"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\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>
|
2009-09-11 Hans-Peter Nilsson <hp@bitrange.com>
|
||||||
|
|
||||||
PR gas/10623
|
PR gas/10623
|
||||||
@ -225,7 +278,7 @@
|
|||||||
2009-09-02 Jie Zhang <jie.zhang@analog.com>
|
2009-09-02 Jie Zhang <jie.zhang@analog.com>
|
||||||
|
|
||||||
From Bernd Schmidt <bernd.schmidt@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.
|
for load and store insns.
|
||||||
(neg_value): Delete function.
|
(neg_value): Delete function.
|
||||||
|
|
||||||
@ -427,7 +480,7 @@
|
|||||||
Remove.
|
Remove.
|
||||||
(mkdep section): Remove.
|
(mkdep section): Remove.
|
||||||
* Makefile.in: Regenerate.
|
* 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)
|
* Makefile.am (install-pdf, install-pdf-recursive, install-html)
|
||||||
(install-html-recursive): Remove.
|
(install-html-recursive): Remove.
|
||||||
@ -492,7 +545,7 @@
|
|||||||
* config/obj-coff.h (obj_coff_seh_do_final): Add new
|
* config/obj-coff.h (obj_coff_seh_do_final): Add new
|
||||||
function prototype.
|
function prototype.
|
||||||
(obj_coff_generate_pdata): New obj-coff hook.
|
(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.
|
sections.
|
||||||
(write_object_file): Call conditional hook
|
(write_object_file): Call conditional hook
|
||||||
objc_coff_generate_pdata.
|
objc_coff_generate_pdata.
|
||||||
@ -990,28 +1043,28 @@
|
|||||||
|
|
||||||
2009-06-22 Martin Thuresson <martin@mtme.org>
|
2009-06-22 Martin Thuresson <martin@mtme.org>
|
||||||
|
|
||||||
* gas/app, gas/as.c, gas/as.h, gas/atof-generic.c, gas/cgen.c,
|
* app, as.c, as.h, atof-generic.c, cgen.c,
|
||||||
gas/config/atof-ieee.c, gas/config/obj-aout.c,
|
config/atof-ieee.c, config/obj-aout.c,
|
||||||
gas/config/obj-coff.c, gas/config/obj-ecoff.c,
|
config/obj-coff.c, config/obj-ecoff.c,
|
||||||
gas/config/obj-elf.c, gas/config/obj-som.c, gas/config/tc-alpha.c,
|
config/obj-elf.c, config/obj-som.c, config/tc-alpha.c,
|
||||||
gas/config/tc-arc.c, gas/config/tc-arm.c, gas/config/tc-cr16.c,
|
config/tc-arc.c, config/tc-arm.c, config/tc-cr16.c,
|
||||||
gas/config/tc-cris.c, gas/config/tc-crx.c, gas/config/tc-d30v.c,
|
config/tc-cris.c, config/tc-crx.c, config/tc-d30v.c,
|
||||||
gas/config/tc-dlx.c, gas/config/tc-hppa.c, gas/config/tc-i370.c,
|
config/tc-dlx.c, config/tc-hppa.c, config/tc-i370.c,
|
||||||
gas/config/tc-i386-intel.c, gas/config/tc-i386.c,
|
config/tc-i386-intel.c, config/tc-i386.c,
|
||||||
gas/config/tc-i860.c, gas/config/tc-i960.c, gas/config/tc-ia64.c,
|
config/tc-i860.c, config/tc-i960.c, config/tc-ia64.c,
|
||||||
gas/config/tc-iq2000.c, gas/config/tc-m32c.c,
|
config/tc-iq2000.c, config/tc-m32c.c,
|
||||||
gas/config/tc-m32r.c, gas/config/tc-m68hc11.c,
|
config/tc-m32r.c, config/tc-m68hc11.c,
|
||||||
gas/config/tc-m68k.c, gas/config/tc-maxq.c, gas/config/tc-mcore.c,
|
config/tc-m68k.c, config/tc-maxq.c, config/tc-mcore.c,
|
||||||
gas/config/tc-mep.c, gas/config/tc-mips.c, gas/config/tc-mmix.c,
|
config/tc-mep.c, config/tc-mips.c, config/tc-mmix.c,
|
||||||
gas/config/tc-mn10300.c, gas/config/tc-moxie.c,
|
config/tc-mn10300.c, config/tc-moxie.c,
|
||||||
gas/config/tc-ns32k.c, gas/config/tc-pj.c, gas/config/tc-ppc.c,
|
config/tc-ns32k.c, config/tc-pj.c, config/tc-ppc.c,
|
||||||
gas/config/tc-s390.c, gas/config/tc-score.c,
|
config/tc-s390.c, config/tc-score.c,
|
||||||
gas/config/tc-score7.c, gas/config/tc-sh.c, gas/config/tc-sparc.c,
|
config/tc-score7.c, config/tc-sh.c, config/tc-sparc.c,
|
||||||
gas/config/tc-spu.c, gas/config/tc-tic30.c, gas/config/tc-vax.c,
|
config/tc-spu.c, config/tc-tic30.c, config/tc-vax.c,
|
||||||
gas/config/tc-xtensa.c, gas/config/xtensa-relax.c,
|
config/tc-xtensa.c, config/xtensa-relax.c,
|
||||||
gas/dw2gencfi.c, gas/dwarf2dbg.c, gas/ehopt.c, gas/expr.c,
|
dw2gencfi.c, dwarf2dbg.c, ehopt.c, expr.c,
|
||||||
gas/frags.c, gas/input-file.c, gas/read.c, gas/sb.c,
|
frags.c, input-file.c, read.c, sb.c,
|
||||||
gas/subsegs.c, gas/symbols.c, gas/write.c: Change the name of the
|
subsegs.c, symbols.c, write.c: Change the name of the
|
||||||
gas macro `assert' to `gas_assert'.
|
gas macro `assert' to `gas_assert'.
|
||||||
|
|
||||||
2009-06-22 Daniel Gutson <dgutson@codesourcery.com>
|
2009-06-22 Daniel Gutson <dgutson@codesourcery.com>
|
||||||
@ -1084,7 +1137,7 @@
|
|||||||
2009-06-18 Nick Clifton <nickc@redhat.com>
|
2009-06-18 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
PR 10169
|
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_usat): ... and here to...
|
||||||
(do_t_ssat_usat): New function: ... here. Add code to check that
|
(do_t_ssat_usat): New function: ... here. Add code to check that
|
||||||
the shift value, if present, is in range.
|
the shift value, if present, is in range.
|
||||||
|
@ -258,7 +258,7 @@ app_push (void)
|
|||||||
saved->saved_input = NULL;
|
saved->saved_input = NULL;
|
||||||
else
|
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);
|
memcpy (saved->saved_input, saved_input, saved_input_len);
|
||||||
saved->saved_input_len = 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
|
dependent list. Include space for an extra NULL option and
|
||||||
always NULL terminate. */
|
always NULL terminate. */
|
||||||
shortopts = concat (std_shortopts, md_shortopts, (char *) NULL);
|
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 (longopts, std_longopts, sizeof (std_longopts));
|
||||||
memcpy (((char *) longopts) + sizeof (std_longopts), md_longopts, md_longopts_size);
|
memcpy (((char *) longopts) + sizeof (std_longopts), md_longopts, md_longopts_size);
|
||||||
memset (((char *) longopts) + sizeof (std_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;
|
old_argv = *pargv;
|
||||||
|
|
||||||
/* Initialize a new argv that contains no options. */
|
/* 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_argv[0] = old_argv[0];
|
||||||
new_argc = 1;
|
new_argc = 1;
|
||||||
new_argv[new_argc] = NULL;
|
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"));
|
as_fatal (_("bad defsym; format is --defsym name=value"));
|
||||||
*s++ = '\0';
|
*s++ = '\0';
|
||||||
i = bfd_scan_vma (s, (const char **) NULL, 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->next = defsyms;
|
||||||
n->name = optarg;
|
n->name = optarg;
|
||||||
n->value = i;
|
n->value = i;
|
||||||
@ -1158,6 +1159,8 @@ main (int argc, char ** argv)
|
|||||||
|
|
||||||
itbl_init ();
|
itbl_init ();
|
||||||
|
|
||||||
|
dwarf2_init ();
|
||||||
|
|
||||||
/* Now that we have fully initialized, and have created the output
|
/* Now that we have fully initialized, and have created the output
|
||||||
file, define any symbols requested by --defsym command line
|
file, define any symbols requested by --defsym command line
|
||||||
arguments. */
|
arguments. */
|
||||||
|
@ -269,7 +269,7 @@ elf_file_symbol (const char *s, int appfile)
|
|||||||
if (name_length > strlen (S_GET_NAME (sym)))
|
if (name_length > strlen (S_GET_NAME (sym)))
|
||||||
{
|
{
|
||||||
obstack_grow (¬es, s, name_length + 1);
|
obstack_grow (¬es, s, name_length + 1);
|
||||||
S_SET_NAME (sym, obstack_finish (¬es));
|
S_SET_NAME (sym, (const char *) obstack_finish (¬es));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
strcpy ((char *) S_GET_NAME (sym), s);
|
strcpy ((char *) S_GET_NAME (sym), s);
|
||||||
@ -505,7 +505,7 @@ static struct section_stack *section_stack;
|
|||||||
static bfd_boolean
|
static bfd_boolean
|
||||||
get_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
|
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);
|
const char *group_name = elf_group_name (sec);
|
||||||
|
|
||||||
return (group_name == gname
|
return (group_name == gname
|
||||||
@ -555,7 +555,7 @@ obj_elf_change_section (const char *name,
|
|||||||
if (push)
|
if (push)
|
||||||
{
|
{
|
||||||
struct section_stack *elt;
|
struct section_stack *elt;
|
||||||
elt = xmalloc (sizeof (struct section_stack));
|
elt = (struct section_stack *) xmalloc (sizeof (struct section_stack));
|
||||||
elt->next = section_stack;
|
elt->next = section_stack;
|
||||||
elt->seg = now_seg;
|
elt->seg = now_seg;
|
||||||
elt->prev_seg = previous_section;
|
elt->prev_seg = previous_section;
|
||||||
@ -885,7 +885,7 @@ obj_elf_section_name (void)
|
|||||||
return NULL;
|
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);
|
memcpy (name, input_line_pointer, end - input_line_pointer);
|
||||||
name[end - input_line_pointer] = '\0';
|
name[end - input_line_pointer] = '\0';
|
||||||
#ifdef tc_canonicalize_section_name
|
#ifdef tc_canonicalize_section_name
|
||||||
@ -1441,7 +1441,7 @@ elf_copy_symbol_attributes (symbolS *dest, symbolS *src)
|
|||||||
if (srcelf->size)
|
if (srcelf->size)
|
||||||
{
|
{
|
||||||
if (destelf->size == NULL)
|
if (destelf->size == NULL)
|
||||||
destelf->size = xmalloc (sizeof (expressionS));
|
destelf->size = (expressionS *) xmalloc (sizeof (expressionS));
|
||||||
*destelf->size = *srcelf->size;
|
*destelf->size = *srcelf->size;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1558,7 +1558,8 @@ obj_elf_size (int ignore ATTRIBUTE_UNUSED)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
symbol_get_obj (sym)->size = xmalloc (sizeof (expressionS));
|
symbol_get_obj (sym)->size =
|
||||||
|
(expressionS *) xmalloc (sizeof (expressionS));
|
||||||
*symbol_get_obj (sym)->size = exp;
|
*symbol_get_obj (sym)->size = exp;
|
||||||
}
|
}
|
||||||
demand_empty_rest_of_line ();
|
demand_empty_rest_of_line ();
|
||||||
@ -1609,7 +1610,7 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
|
|||||||
char *name;
|
char *name;
|
||||||
char c;
|
char c;
|
||||||
int type;
|
int type;
|
||||||
const char *typename;
|
const char *type_name;
|
||||||
symbolS *sym;
|
symbolS *sym;
|
||||||
elf_symbol_type *elfsym;
|
elf_symbol_type *elfsym;
|
||||||
|
|
||||||
@ -1630,28 +1631,28 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
|
|||||||
|| *input_line_pointer == '%')
|
|| *input_line_pointer == '%')
|
||||||
++input_line_pointer;
|
++input_line_pointer;
|
||||||
|
|
||||||
typename = obj_elf_type_name (& c);
|
type_name = obj_elf_type_name (& c);
|
||||||
|
|
||||||
type = 0;
|
type = 0;
|
||||||
if (strcmp (typename, "function") == 0
|
if (strcmp (type_name, "function") == 0
|
||||||
|| strcmp (typename, "2") == 0
|
|| strcmp (type_name, "2") == 0
|
||||||
|| strcmp (typename, "STT_FUNC") == 0)
|
|| strcmp (type_name, "STT_FUNC") == 0)
|
||||||
type = BSF_FUNCTION;
|
type = BSF_FUNCTION;
|
||||||
else if (strcmp (typename, "object") == 0
|
else if (strcmp (type_name, "object") == 0
|
||||||
|| strcmp (typename, "1") == 0
|
|| strcmp (type_name, "1") == 0
|
||||||
|| strcmp (typename, "STT_OBJECT") == 0)
|
|| strcmp (type_name, "STT_OBJECT") == 0)
|
||||||
type = BSF_OBJECT;
|
type = BSF_OBJECT;
|
||||||
else if (strcmp (typename, "tls_object") == 0
|
else if (strcmp (type_name, "tls_object") == 0
|
||||||
|| strcmp (typename, "6") == 0
|
|| strcmp (type_name, "6") == 0
|
||||||
|| strcmp (typename, "STT_TLS") == 0)
|
|| strcmp (type_name, "STT_TLS") == 0)
|
||||||
type = BSF_OBJECT | BSF_THREAD_LOCAL;
|
type = BSF_OBJECT | BSF_THREAD_LOCAL;
|
||||||
else if (strcmp (typename, "notype") == 0
|
else if (strcmp (type_name, "notype") == 0
|
||||||
|| strcmp (typename, "0") == 0
|
|| strcmp (type_name, "0") == 0
|
||||||
|| strcmp (typename, "STT_NOTYPE") == 0)
|
|| strcmp (type_name, "STT_NOTYPE") == 0)
|
||||||
;
|
;
|
||||||
else if (strcmp (typename, "common") == 0
|
else if (strcmp (type_name, "common") == 0
|
||||||
|| strcmp (typename, "5") == 0
|
|| strcmp (type_name, "5") == 0
|
||||||
|| strcmp (typename, "STT_COMMON") == 0)
|
|| strcmp (type_name, "STT_COMMON") == 0)
|
||||||
{
|
{
|
||||||
type = BSF_OBJECT;
|
type = BSF_OBJECT;
|
||||||
|
|
||||||
@ -1677,9 +1678,9 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (strcmp (typename, "gnu_indirect_function") == 0
|
else if (strcmp (type_name, "gnu_indirect_function") == 0
|
||||||
|| strcmp (typename, "10") == 0
|
|| strcmp (type_name, "10") == 0
|
||||||
|| strcmp (typename, "STT_GNU_IFUNC") == 0)
|
|| strcmp (type_name, "STT_GNU_IFUNC") == 0)
|
||||||
{
|
{
|
||||||
const struct elf_backend_data *bed;
|
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. */
|
/* GNU/Linux is still using the default value 0. */
|
||||||
|| bed->elf_osabi == ELFOSABI_NONE))
|
|| bed->elf_osabi == ELFOSABI_NONE))
|
||||||
as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
|
as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
|
||||||
typename);
|
type_name);
|
||||||
type = BSF_FUNCTION | BSF_GNU_INDIRECT_FUNCTION;
|
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;
|
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. */
|
/* GNU/Linux is still using the default value 0. */
|
||||||
|| bed->elf_osabi == ELFOSABI_NONE))
|
|| bed->elf_osabi == ELFOSABI_NONE))
|
||||||
as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
|
as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
|
||||||
typename);
|
type_name);
|
||||||
type = BSF_OBJECT | BSF_GNU_UNIQUE;
|
type = BSF_OBJECT | BSF_GNU_UNIQUE;
|
||||||
/* PR 10549: Always set OSABI field to LINUX for objects containing unique symbols. */
|
/* PR 10549: Always set OSABI field to LINUX for objects containing unique symbols. */
|
||||||
bed->elf_osabi = ELFOSABI_LINUX;
|
bed->elf_osabi = ELFOSABI_LINUX;
|
||||||
}
|
}
|
||||||
#ifdef md_elf_symbol_type
|
#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
|
#endif
|
||||||
else
|
else
|
||||||
as_bad (_("unrecognized symbol type \"%s\""), typename);
|
as_bad (_("unrecognized symbol type \"%s\""), type_name);
|
||||||
|
|
||||||
*input_line_pointer = c;
|
*input_line_pointer = c;
|
||||||
|
|
||||||
@ -1774,7 +1775,7 @@ obj_elf_init_stab_section (segT seg)
|
|||||||
/* Zero it out. */
|
/* Zero it out. */
|
||||||
memset (p, 0, 12);
|
memset (p, 0, 12);
|
||||||
as_where (&file, NULL);
|
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));
|
strcpy (stabstr_name, segment_name (seg));
|
||||||
strcat (stabstr_name, "str");
|
strcat (stabstr_name, "str");
|
||||||
stroff = get_stab_string_offset (file, stabstr_name);
|
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))
|
if (!strcmp ("str", sec->name + strlen (sec->name) - 3))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
name = alloca (strlen (sec->name) + 4);
|
name = (char *) alloca (strlen (sec->name) + 4);
|
||||||
strcpy (name, sec->name);
|
strcpy (name, sec->name);
|
||||||
strcat (name, "str");
|
strcat (name, "str");
|
||||||
strsec = bfd_get_section_by_name (abfd, name);
|
strsec = bfd_get_section_by_name (abfd, name);
|
||||||
@ -2006,6 +2007,7 @@ struct group_list
|
|||||||
asection **head; /* Section lists. */
|
asection **head; /* Section lists. */
|
||||||
unsigned int *elt_count; /* Number of sections in each list. */
|
unsigned int *elt_count; /* Number of sections in each list. */
|
||||||
unsigned int num_group; /* Number of lists. */
|
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,
|
/* Called via bfd_map_over_sections. If SEC is a member of a group,
|
||||||
@ -2016,25 +2018,25 @@ struct group_list
|
|||||||
static void
|
static void
|
||||||
build_group_lists (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
|
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);
|
const char *group_name = elf_group_name (sec);
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
unsigned int *elem_idx;
|
||||||
|
unsigned int *idx_ptr;
|
||||||
|
|
||||||
if (group_name == NULL)
|
if (group_name == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* If this group already has a list, add the section to the head of
|
/* If this group already has a list, add the section to the head of
|
||||||
the list. */
|
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[*elem_idx];
|
||||||
{
|
list->head[*elem_idx] = sec;
|
||||||
elf_next_in_group (sec) = list->head[i];
|
list->elt_count[*elem_idx] += 1;
|
||||||
list->head[i] = sec;
|
|
||||||
list->elt_count[i] += 1;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* New group. Make the arrays bigger in chunks to minimize calls to
|
/* New group. Make the arrays bigger in chunks to minimize calls to
|
||||||
realloc. */
|
realloc. */
|
||||||
@ -2042,13 +2044,24 @@ build_group_lists (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
|
|||||||
if ((i & 127) == 0)
|
if ((i & 127) == 0)
|
||||||
{
|
{
|
||||||
unsigned int newsize = i + 128;
|
unsigned int newsize = i + 128;
|
||||||
list->head = xrealloc (list->head, newsize * sizeof (*list->head));
|
list->head = (asection **) xrealloc (list->head,
|
||||||
list->elt_count = xrealloc (list->elt_count,
|
newsize * sizeof (*list->head));
|
||||||
newsize * sizeof (*list->elt_count));
|
list->elt_count = (unsigned int *)
|
||||||
|
xrealloc (list->elt_count, newsize * sizeof (*list->elt_count));
|
||||||
}
|
}
|
||||||
list->head[i] = sec;
|
list->head[i] = sec;
|
||||||
list->elt_count[i] = 1;
|
list->elt_count[i] = 1;
|
||||||
list->num_group += 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
|
void
|
||||||
@ -2063,6 +2076,7 @@ elf_frob_file (void)
|
|||||||
list.num_group = 0;
|
list.num_group = 0;
|
||||||
list.head = NULL;
|
list.head = NULL;
|
||||||
list.elt_count = NULL;
|
list.elt_count = NULL;
|
||||||
|
list.indexes = hash_new ();
|
||||||
bfd_map_over_sections (stdoutput, build_group_lists, &list);
|
bfd_map_over_sections (stdoutput, build_group_lists, &list);
|
||||||
|
|
||||||
/* Make the SHT_GROUP sections that describe each section group. We
|
/* Make the SHT_GROUP sections that describe each section group. We
|
||||||
@ -2128,6 +2142,10 @@ elf_frob_file (void)
|
|||||||
#ifdef elf_tc_final_processing
|
#ifdef elf_tc_final_processing
|
||||||
elf_tc_final_processing ();
|
elf_tc_final_processing ();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Cleanup hash. */
|
||||||
|
hash_traverse (list.indexes, free_section_idx);
|
||||||
|
hash_die (list.indexes);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* It removes any unneeded versioned symbols from the symbol table. */
|
/* It removes any unneeded versioned symbols from the symbol table. */
|
||||||
|
@ -65,7 +65,7 @@ intel_state;
|
|||||||
static struct
|
static struct
|
||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
operatorT operator;
|
operatorT op;
|
||||||
unsigned int operands;
|
unsigned int operands;
|
||||||
}
|
}
|
||||||
const i386_operators[] =
|
const i386_operators[] =
|
||||||
@ -91,7 +91,7 @@ const i386_operators[] =
|
|||||||
static struct
|
static struct
|
||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
operatorT operator;
|
operatorT op;
|
||||||
unsigned short sz[3];
|
unsigned short sz[3];
|
||||||
}
|
}
|
||||||
const i386_types[] =
|
const i386_types[] =
|
||||||
@ -158,7 +158,7 @@ operatorT i386_operator (const char *name, unsigned int operands, char *pc)
|
|||||||
if (i386_operators[j].operands
|
if (i386_operators[j].operands
|
||||||
&& i386_operators[j].operands != operands)
|
&& i386_operators[j].operands != operands)
|
||||||
return O_illegal;
|
return O_illegal;
|
||||||
return i386_operators[j].operator;
|
return i386_operators[j].op;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (j = 0; i386_types[j].name; ++j)
|
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;
|
*pc = c;
|
||||||
if (intel_syntax > 0 || operands != 1)
|
if (intel_syntax > 0 || operands != 1)
|
||||||
return O_illegal;
|
return O_illegal;
|
||||||
return i386_types[j].operator;
|
return i386_types[j].op;
|
||||||
}
|
}
|
||||||
|
|
||||||
*input_line_pointer = c;
|
*input_line_pointer = c;
|
||||||
|
@ -1851,7 +1851,7 @@ add_prefix (unsigned int prefix)
|
|||||||
static void
|
static void
|
||||||
set_code_flag (int value)
|
set_code_flag (int value)
|
||||||
{
|
{
|
||||||
flag_code = value;
|
flag_code = (enum flag_code) value;
|
||||||
if (flag_code == CODE_64BIT)
|
if (flag_code == CODE_64BIT)
|
||||||
{
|
{
|
||||||
cpu_arch_flags.bitfield.cpu64 = 1;
|
cpu_arch_flags.bitfield.cpu64 = 1;
|
||||||
@ -1876,7 +1876,7 @@ set_code_flag (int value)
|
|||||||
static void
|
static void
|
||||||
set_16bit_gcc_code_flag (int new_code_flag)
|
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)
|
if (flag_code != CODE_16BIT)
|
||||||
abort ();
|
abort ();
|
||||||
cpu_arch_flags.bitfield.cpu64 = 0;
|
cpu_arch_flags.bitfield.cpu64 = 0;
|
||||||
@ -1961,7 +1961,7 @@ set_sse_check (int dummy ATTRIBUTE_UNUSED)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
check_cpu_arch_compatible (const char *name ATTRIBUTE_UNUSED,
|
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)
|
#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
|
||||||
static const char *arch;
|
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 we are targeting Intel L1OM, we must enable it. */
|
||||||
if (get_elf_backend_data (stdoutput)->elf_machine_code != EM_L1OM
|
if (get_elf_backend_data (stdoutput)->elf_machine_code != EM_L1OM
|
||||||
|| new.bitfield.cpul1om)
|
|| new_flag.bitfield.cpul1om)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
as_bad (_("`%s' is not supported on `%s'"), name, arch);
|
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 enum bfd_reloc_code_real rel[2];
|
||||||
const i386_operand_type types64;
|
const i386_operand_type types64;
|
||||||
} gotrel[] = {
|
} gotrel[] = {
|
||||||
{ "PLTOFF", { 0,
|
{ "PLTOFF", { _dummy_first_bfd_reloc_code_real,
|
||||||
BFD_RELOC_X86_64_PLTOFF64 },
|
BFD_RELOC_X86_64_PLTOFF64 },
|
||||||
OPERAND_TYPE_IMM64 },
|
OPERAND_TYPE_IMM64 },
|
||||||
{ "PLT", { BFD_RELOC_386_PLT32,
|
{ "PLT", { BFD_RELOC_386_PLT32,
|
||||||
BFD_RELOC_X86_64_PLT32 },
|
BFD_RELOC_X86_64_PLT32 },
|
||||||
OPERAND_TYPE_IMM32_32S_DISP32 },
|
OPERAND_TYPE_IMM32_32S_DISP32 },
|
||||||
{ "GOTPLT", { 0,
|
{ "GOTPLT", { _dummy_first_bfd_reloc_code_real,
|
||||||
BFD_RELOC_X86_64_GOTPLT64 },
|
BFD_RELOC_X86_64_GOTPLT64 },
|
||||||
OPERAND_TYPE_IMM64_DISP64 },
|
OPERAND_TYPE_IMM64_DISP64 },
|
||||||
{ "GOTOFF", { BFD_RELOC_386_GOTOFF,
|
{ "GOTOFF", { BFD_RELOC_386_GOTOFF,
|
||||||
BFD_RELOC_X86_64_GOTOFF64 },
|
BFD_RELOC_X86_64_GOTOFF64 },
|
||||||
OPERAND_TYPE_IMM64_DISP64 },
|
OPERAND_TYPE_IMM64_DISP64 },
|
||||||
{ "GOTPCREL", { 0,
|
{ "GOTPCREL", { _dummy_first_bfd_reloc_code_real,
|
||||||
BFD_RELOC_X86_64_GOTPCREL },
|
BFD_RELOC_X86_64_GOTPCREL },
|
||||||
OPERAND_TYPE_IMM32_32S_DISP32 },
|
OPERAND_TYPE_IMM32_32S_DISP32 },
|
||||||
{ "TLSGD", { BFD_RELOC_386_TLS_GD,
|
{ "TLSGD", { BFD_RELOC_386_TLS_GD,
|
||||||
BFD_RELOC_X86_64_TLSGD },
|
BFD_RELOC_X86_64_TLSGD },
|
||||||
OPERAND_TYPE_IMM32_32S_DISP32 },
|
OPERAND_TYPE_IMM32_32S_DISP32 },
|
||||||
{ "TLSLDM", { BFD_RELOC_386_TLS_LDM,
|
{ "TLSLDM", { BFD_RELOC_386_TLS_LDM,
|
||||||
0 },
|
_dummy_first_bfd_reloc_code_real },
|
||||||
OPERAND_TYPE_NONE },
|
OPERAND_TYPE_NONE },
|
||||||
{ "TLSLD", { 0,
|
{ "TLSLD", { _dummy_first_bfd_reloc_code_real,
|
||||||
BFD_RELOC_X86_64_TLSLD },
|
BFD_RELOC_X86_64_TLSLD },
|
||||||
OPERAND_TYPE_IMM32_32S_DISP32 },
|
OPERAND_TYPE_IMM32_32S_DISP32 },
|
||||||
{ "GOTTPOFF", { BFD_RELOC_386_TLS_IE_32,
|
{ "GOTTPOFF", { BFD_RELOC_386_TLS_IE_32,
|
||||||
@ -6050,17 +6050,17 @@ lex_got (enum bfd_reloc_code_real *reloc,
|
|||||||
BFD_RELOC_X86_64_TPOFF32 },
|
BFD_RELOC_X86_64_TPOFF32 },
|
||||||
OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
|
OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
|
||||||
{ "NTPOFF", { BFD_RELOC_386_TLS_LE,
|
{ "NTPOFF", { BFD_RELOC_386_TLS_LE,
|
||||||
0 },
|
_dummy_first_bfd_reloc_code_real },
|
||||||
OPERAND_TYPE_NONE },
|
OPERAND_TYPE_NONE },
|
||||||
{ "DTPOFF", { BFD_RELOC_386_TLS_LDO_32,
|
{ "DTPOFF", { BFD_RELOC_386_TLS_LDO_32,
|
||||||
BFD_RELOC_X86_64_DTPOFF32 },
|
BFD_RELOC_X86_64_DTPOFF32 },
|
||||||
|
|
||||||
OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
|
OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
|
||||||
{ "GOTNTPOFF",{ BFD_RELOC_386_TLS_GOTIE,
|
{ "GOTNTPOFF",{ BFD_RELOC_386_TLS_GOTIE,
|
||||||
0 },
|
_dummy_first_bfd_reloc_code_real },
|
||||||
OPERAND_TYPE_NONE },
|
OPERAND_TYPE_NONE },
|
||||||
{ "INDNTPOFF",{ BFD_RELOC_386_TLS_IE,
|
{ "INDNTPOFF",{ BFD_RELOC_386_TLS_IE,
|
||||||
0 },
|
_dummy_first_bfd_reloc_code_real },
|
||||||
OPERAND_TYPE_NONE },
|
OPERAND_TYPE_NONE },
|
||||||
{ "GOT", { BFD_RELOC_386_GOT32,
|
{ "GOT", { BFD_RELOC_386_GOT32,
|
||||||
BFD_RELOC_X86_64_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
|
/* Allocate and copy string. The trailing NUL shouldn't
|
||||||
be necessary, but be safe. */
|
be necessary, but be safe. */
|
||||||
tmpbuf = xmalloc (first + second + 2);
|
tmpbuf = (char *) xmalloc (first + second + 2);
|
||||||
memcpy (tmpbuf, input_line_pointer, first);
|
memcpy (tmpbuf, input_line_pointer, first);
|
||||||
if (second != 0 && *past_reloc != ' ')
|
if (second != 0 && *past_reloc != ' ')
|
||||||
/* Replace the relocation token with ' ', so that
|
/* Replace the relocation token with ' ', so that
|
||||||
@ -7104,7 +7104,7 @@ md_estimate_size_before_relax (fragP, segment)
|
|||||||
int old_fr_fix;
|
int old_fr_fix;
|
||||||
|
|
||||||
if (fragP->fr_var != NO_RELOC)
|
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)
|
else if (size == 2)
|
||||||
reloc_type = BFD_RELOC_16_PCREL;
|
reloc_type = BFD_RELOC_16_PCREL;
|
||||||
else
|
else
|
||||||
@ -7553,7 +7553,7 @@ parse_real_register (char *reg_string, char **end_op)
|
|||||||
if (*s == ')')
|
if (*s == ')')
|
||||||
{
|
{
|
||||||
*end_op = s + 1;
|
*end_op = s + 1;
|
||||||
r = hash_find (reg_hash, "st(0)");
|
r = (const reg_entry *) hash_find (reg_hash, "st(0)");
|
||||||
know (r);
|
know (r);
|
||||||
return r + fpr;
|
return r + fpr;
|
||||||
}
|
}
|
||||||
|
@ -63,6 +63,10 @@
|
|||||||
# define DWARF2_ADDR_SIZE(bfd) (bfd_arch_bits_per_address (bfd) / 8)
|
# define DWARF2_ADDR_SIZE(bfd) (bfd_arch_bits_per_address (bfd) / 8)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
struct cfi_escape_data {
|
||||||
|
struct cfi_escape_data *next;
|
||||||
|
expressionS exp;
|
||||||
|
};
|
||||||
|
|
||||||
struct cfi_insn_data
|
struct cfi_insn_data
|
||||||
{
|
{
|
||||||
@ -87,10 +91,7 @@ struct cfi_insn_data
|
|||||||
symbolS *lab2;
|
symbolS *lab2;
|
||||||
} ll;
|
} ll;
|
||||||
|
|
||||||
struct cfi_escape_data {
|
struct cfi_escape_data *esc;
|
||||||
struct cfi_escape_data *next;
|
|
||||||
expressionS exp;
|
|
||||||
} *esc;
|
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
unsigned reg, encoding;
|
unsigned reg, encoding;
|
||||||
@ -155,9 +156,11 @@ struct frch_cfi_data
|
|||||||
static struct fde_entry *
|
static struct fde_entry *
|
||||||
alloc_fde_entry (void)
|
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;
|
frchain_now->frch_cfi_data->cur_fde_data = fde;
|
||||||
*last_fde_data = fde;
|
*last_fde_data = fde;
|
||||||
last_fde_data = &fde->next;
|
last_fde_data = &fde->next;
|
||||||
@ -179,7 +182,8 @@ alloc_fde_entry (void)
|
|||||||
static struct cfi_insn_data *
|
static struct cfi_insn_data *
|
||||||
alloc_cfi_insn_data (void)
|
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;
|
struct fde_entry *cur_fde_data = frchain_now->frch_cfi_data->cur_fde_data;
|
||||||
|
|
||||||
*cur_fde_data->last = insn;
|
*cur_fde_data->last = insn;
|
||||||
@ -353,7 +357,7 @@ cfi_add_CFA_remember_state (void)
|
|||||||
|
|
||||||
cfi_add_CFA_insn (DW_CFA_remember_state);
|
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->cfa_offset = frchain_now->frch_cfi_data->cur_cfa_offset;
|
||||||
p->next = frchain_now->frch_cfi_data->cfa_save_stack;
|
p->next = frchain_now->frch_cfi_data->cfa_save_stack;
|
||||||
frchain_now->frch_cfi_data->cfa_save_stack = p;
|
frchain_now->frch_cfi_data->cfa_save_stack = p;
|
||||||
@ -637,7 +641,7 @@ dot_cfi_escape (int ignored ATTRIBUTE_UNUSED)
|
|||||||
tail = &head;
|
tail = &head;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
e = xmalloc (sizeof (*e));
|
e = (struct cfi_escape_data *) xmalloc (sizeof (*e));
|
||||||
do_parse_cons_expression (&e->exp, 1);
|
do_parse_cons_expression (&e->exp, 1);
|
||||||
*tail = e;
|
*tail = e;
|
||||||
tail = &e->next;
|
tail = &e->next;
|
||||||
@ -1454,7 +1458,7 @@ select_cie_for_fde (struct fde_entry *fde, struct cfi_insn_data **pfirst)
|
|||||||
fail:;
|
fail:;
|
||||||
}
|
}
|
||||||
|
|
||||||
cie = xmalloc (sizeof (struct cie_entry));
|
cie = (struct cie_entry *) xmalloc (sizeof (struct cie_entry));
|
||||||
cie->next = cie_root;
|
cie->next = cie_root;
|
||||||
cie_root = cie;
|
cie_root = cie;
|
||||||
cie->return_column = fde->return_column;
|
cie->return_column = fde->return_column;
|
||||||
|
@ -168,6 +168,10 @@ struct line_seg {
|
|||||||
|
|
||||||
/* Collects data for all line table entries during assembly. */
|
/* Collects data for all line table entries during assembly. */
|
||||||
static struct line_seg *all_segs;
|
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 {
|
struct file_entry {
|
||||||
const char *filename;
|
const char *filename;
|
||||||
@ -230,23 +234,25 @@ get_line_subseg (segT seg, subsegT subseg)
|
|||||||
static subsegT last_subseg;
|
static subsegT last_subseg;
|
||||||
static struct line_subseg *last_line_subseg;
|
static struct line_subseg *last_line_subseg;
|
||||||
|
|
||||||
struct line_seg **ps, *s;
|
struct line_seg *s;
|
||||||
struct line_subseg **pss, *ss;
|
struct line_subseg **pss, *ss;
|
||||||
|
|
||||||
if (seg == last_seg && subseg == last_subseg)
|
if (seg == last_seg && subseg == last_subseg)
|
||||||
return last_line_subseg;
|
return last_line_subseg;
|
||||||
|
|
||||||
for (ps = &all_segs; (s = *ps) != NULL; ps = &s->next)
|
s = (struct line_seg *) hash_find (all_segs_hash, seg->name);
|
||||||
if (s->seg == seg)
|
if (s == NULL)
|
||||||
goto found_seg;
|
{
|
||||||
|
|
||||||
s = (struct line_seg *) xmalloc (sizeof (*s));
|
s = (struct line_seg *) xmalloc (sizeof (*s));
|
||||||
s->next = NULL;
|
s->next = NULL;
|
||||||
s->seg = seg;
|
s->seg = seg;
|
||||||
s->head = NULL;
|
s->head = NULL;
|
||||||
*ps = s;
|
*last_seg_ptr = s;
|
||||||
|
last_seg_ptr = &s->next;
|
||||||
|
hash_insert (all_segs_hash, seg->name, s);
|
||||||
|
}
|
||||||
|
gas_assert (seg == s->seg);
|
||||||
|
|
||||||
found_seg:
|
|
||||||
for (pss = &s->head; (ss = *pss) != NULL ; pss = &ss->next)
|
for (pss = &s->head; (ss = *pss) != NULL ; pss = &ss->next)
|
||||||
{
|
{
|
||||||
if (ss->subseg == subseg)
|
if (ss->subseg == subseg)
|
||||||
@ -467,7 +473,7 @@ get_filenum (const char *filename, unsigned int num)
|
|||||||
xrealloc (dirs, (dir + 32) * sizeof (const char *));
|
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);
|
memcpy (dirs[dir], filename, dir_len);
|
||||||
dirs[dir][dir_len] = '\0';
|
dirs[dir][dir_len] = '\0';
|
||||||
dirs_in_use = dir + 1;
|
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);
|
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
|
/* Finish the dwarf2 debug sections. We emit .debug.line if there
|
||||||
were any .file/.loc directives, or --gdwarf2 was given, or if the
|
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,
|
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
|
/* True when we've seen a .loc directive recently. Used to avoid
|
||||||
doing work when there's nothing to do. */
|
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
|
/* 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
|
is seen. Unless the target is doing Something Weird, just call
|
||||||
dwarf2_emit_label. */
|
dwarf2_emit_label. */
|
||||||
extern bfd_boolean dwarf2_loc_mark_labels;
|
extern bfd_boolean dwarf2_loc_mark_labels;
|
||||||
|
|
||||||
|
extern void dwarf2_init (void);
|
||||||
|
|
||||||
extern void dwarf2_finish (void);
|
extern void dwarf2_finish (void);
|
||||||
|
|
||||||
extern int dwarf2dbg_estimate_size_before_relax (fragS *);
|
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;
|
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
|
/* This function is called from emit_expr. It looks for cases which
|
||||||
we can optimize.
|
we can optimize.
|
||||||
|
|
||||||
@ -245,18 +258,7 @@ check_eh_frame (expressionS *exp, unsigned int *pnbytes)
|
|||||||
{
|
{
|
||||||
struct frame_data
|
struct frame_data
|
||||||
{
|
{
|
||||||
enum frame_state
|
enum frame_state 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;
|
|
||||||
|
|
||||||
int cie_info_ok;
|
int cie_info_ok;
|
||||||
struct cie_info cie_info;
|
struct cie_info cie_info;
|
||||||
@ -324,7 +326,7 @@ check_eh_frame (expressionS *exp, unsigned int *pnbytes)
|
|||||||
case state_saw_size:
|
case state_saw_size:
|
||||||
case state_saw_cie_offset:
|
case state_saw_cie_offset:
|
||||||
/* Assume whatever form it appears in, it appears atomically. */
|
/* Assume whatever form it appears in, it appears atomically. */
|
||||||
d->state += 1;
|
d->state = (enum frame_state) (d->state + 1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case state_saw_pc_begin:
|
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 current_location (expressionS *);
|
||||||
static void clean_up_expression (expressionS * expressionP);
|
static void clean_up_expression (expressionS * expressionP);
|
||||||
static segT operand (expressionS *, enum expr_mode);
|
static segT operand (expressionS *, enum expr_mode);
|
||||||
static operatorT operator (int *);
|
static operatorT operatorf (int *);
|
||||||
|
|
||||||
extern const char EXP_CHARS[], FLT_CHARS[];
|
extern const char EXP_CHARS[], FLT_CHARS[];
|
||||||
|
|
||||||
@ -1228,9 +1228,9 @@ operand (expressionS *expressionP, enum expr_mode mode)
|
|||||||
|
|
||||||
#ifdef md_operator
|
#ifdef md_operator
|
||||||
{
|
{
|
||||||
operatorT operator = md_operator (name, 1, &c);
|
operatorT op = md_operator (name, 1, &c);
|
||||||
|
|
||||||
switch (operator)
|
switch (op)
|
||||||
{
|
{
|
||||||
case O_uminus:
|
case O_uminus:
|
||||||
*input_line_pointer = c;
|
*input_line_pointer = c;
|
||||||
@ -1250,14 +1250,14 @@ operand (expressionS *expressionP, enum expr_mode mode)
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (operator != O_absent && operator != O_illegal)
|
if (op != O_absent && op != O_illegal)
|
||||||
{
|
{
|
||||||
*input_line_pointer = c;
|
*input_line_pointer = c;
|
||||||
expr (9, expressionP, mode);
|
expr (9, expressionP, mode);
|
||||||
expressionP->X_add_symbol = make_expr_symbol (expressionP);
|
expressionP->X_add_symbol = make_expr_symbol (expressionP);
|
||||||
expressionP->X_op_symbol = NULL;
|
expressionP->X_op_symbol = NULL;
|
||||||
expressionP->X_add_number = 0;
|
expressionP->X_add_number = 0;
|
||||||
expressionP->X_op = operator;
|
expressionP->X_op = op;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1546,10 +1546,10 @@ expr_set_precedence (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
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));
|
gas_assert (op >= O_md1 && op < ARRAY_SIZE (op_rank));
|
||||||
op_rank[operator] = rank;
|
op_rank[op] = rank;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialize the expression parser. */
|
/* Initialize the expression parser. */
|
||||||
@ -1572,7 +1572,7 @@ expr_begin (void)
|
|||||||
Does not advance INPUT_LINE_POINTER. */
|
Does not advance INPUT_LINE_POINTER. */
|
||||||
|
|
||||||
static inline operatorT
|
static inline operatorT
|
||||||
operator (int *num_chars)
|
operatorf (int *num_chars)
|
||||||
{
|
{
|
||||||
int c;
|
int c;
|
||||||
operatorT ret;
|
operatorT ret;
|
||||||
@ -1732,7 +1732,7 @@ expr (int rankarg, /* Larger # is higher rank. */
|
|||||||
/* operand () gobbles spaces. */
|
/* operand () gobbles spaces. */
|
||||||
know (*input_line_pointer != ' ');
|
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)
|
while (op_left != O_illegal && op_rank[(int) op_left] > rank)
|
||||||
{
|
{
|
||||||
segT rightseg;
|
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
|
know (op_right == O_illegal || op_left == O_index
|
||||||
|| op_rank[(int) op_right] <= op_rank[(int) op_left]);
|
|| op_rank[(int) op_right] <= op_rank[(int) op_left]);
|
||||||
|
@ -69,7 +69,7 @@ frag_alloc (struct obstack *ob)
|
|||||||
(void) obstack_alloc (ob, 0);
|
(void) obstack_alloc (ob, 0);
|
||||||
oalign = obstack_alignment_mask (ob);
|
oalign = obstack_alignment_mask (ob);
|
||||||
obstack_alignment_mask (ob) = 0;
|
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;
|
obstack_alignment_mask (ob) = oalign;
|
||||||
memset (ptr, 0, SIZEOF_STRUCT_FRAG);
|
memset (ptr, 0, SIZEOF_STRUCT_FRAG);
|
||||||
return ptr;
|
return ptr;
|
||||||
|
@ -113,10 +113,10 @@ hash_new (void)
|
|||||||
|
|
||||||
size = get_gas_hash_table_size ();
|
size = get_gas_hash_table_size ();
|
||||||
|
|
||||||
ret = xmalloc (sizeof *ret);
|
ret = (struct hash_control *) xmalloc (sizeof *ret);
|
||||||
obstack_begin (&ret->memory, chunksize);
|
obstack_begin (&ret->memory, chunksize);
|
||||||
alloc = size * sizeof (struct hash_entry *);
|
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);
|
memset (ret->table, 0, alloc);
|
||||||
ret->size = size;
|
ret->size = size;
|
||||||
|
|
||||||
@ -237,7 +237,7 @@ hash_insert (struct hash_control *table, const char *key, void *value)
|
|||||||
++table->insertions;
|
++table->insertions;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
p = obstack_alloc (&table->memory, sizeof (*p));
|
p = (struct hash_entry *) obstack_alloc (&table->memory, sizeof (*p));
|
||||||
p->string = key;
|
p->string = key;
|
||||||
p->hash = hash;
|
p->hash = hash;
|
||||||
p->data = value;
|
p->data = value;
|
||||||
@ -274,7 +274,7 @@ hash_jam (struct hash_control *table, const char *key, void *value)
|
|||||||
++table->insertions;
|
++table->insertions;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
p = obstack_alloc (&table->memory, sizeof (*p));
|
p = (struct hash_entry *) obstack_alloc (&table->memory, sizeof (*p));
|
||||||
p->string = key;
|
p->string = key;
|
||||||
p->hash = hash;
|
p->hash = hash;
|
||||||
p->data = value;
|
p->data = value;
|
||||||
|
@ -165,7 +165,8 @@ input_scrub_push (char *saved_position)
|
|||||||
buffer_length = input_file_buffer_size ();
|
buffer_length = input_file_buffer_size ();
|
||||||
sb_index = -1;
|
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);
|
memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE);
|
||||||
|
|
||||||
return saved;
|
return saved;
|
||||||
@ -209,7 +210,8 @@ input_scrub_begin (void)
|
|||||||
|
|
||||||
buffer_length = input_file_buffer_size ();
|
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);
|
memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE);
|
||||||
|
|
||||||
/* Line number things. */
|
/* Line number things. */
|
||||||
@ -363,7 +365,7 @@ input_scrub_next_buffer (char **bufp)
|
|||||||
|
|
||||||
limoff = limit - buffer_start;
|
limoff = limit - buffer_start;
|
||||||
buffer_length += input_file_buffer_size ();
|
buffer_length += input_file_buffer_size ();
|
||||||
buffer_start = xrealloc (buffer_start,
|
buffer_start = (char *) xrealloc (buffer_start,
|
||||||
(BEFORE_SIZE
|
(BEFORE_SIZE
|
||||||
+ 2 * buffer_length
|
+ 2 * buffer_length
|
||||||
+ AFTER_SIZE));
|
+ AFTER_SIZE));
|
||||||
|
@ -130,6 +130,18 @@ typedef struct file_info_struct
|
|||||||
int at_end;
|
int at_end;
|
||||||
} file_info_type;
|
} 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
|
/* This structure remembers which line from which file goes into which
|
||||||
frag. */
|
frag. */
|
||||||
struct list_info_struct
|
struct list_info_struct
|
||||||
@ -160,16 +172,7 @@ struct list_info_struct
|
|||||||
/* Pointer to any error message associated with this line. */
|
/* Pointer to any error message associated with this line. */
|
||||||
char *message;
|
char *message;
|
||||||
|
|
||||||
enum
|
enum edict_enum edict;
|
||||||
{
|
|
||||||
EDICT_NONE,
|
|
||||||
EDICT_SBTTL,
|
|
||||||
EDICT_TITLE,
|
|
||||||
EDICT_NOLIST,
|
|
||||||
EDICT_LIST,
|
|
||||||
EDICT_NOLIST_NEXT,
|
|
||||||
EDICT_EJECT
|
|
||||||
} edict;
|
|
||||||
char *edict_arg;
|
char *edict_arg;
|
||||||
|
|
||||||
/* Nonzero if this line is to be omitted because it contains
|
/* Nonzero if this line is to be omitted because it contains
|
||||||
@ -260,7 +263,7 @@ file_info (const char *file_name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Make new entry. */
|
/* Make new entry. */
|
||||||
p = xmalloc (sizeof (file_info_type));
|
p = (file_info_type *) xmalloc (sizeof (file_info_type));
|
||||||
p->next = file_info_head;
|
p->next = file_info_head;
|
||||||
file_info_head = p;
|
file_info_head = p;
|
||||||
p->filename = xstrdup (file_name);
|
p->filename = xstrdup (file_name);
|
||||||
@ -352,7 +355,7 @@ listing_newline (char *ps)
|
|||||||
|
|
||||||
len = (copy - input_line_pointer) + 2;
|
len = (copy - input_line_pointer) + 2;
|
||||||
|
|
||||||
copy = xmalloc (len);
|
copy = (char *) xmalloc (len);
|
||||||
|
|
||||||
if (copy != NULL)
|
if (copy != NULL)
|
||||||
{
|
{
|
||||||
@ -1147,8 +1150,8 @@ listing_listing (char *name ATTRIBUTE_UNUSED)
|
|||||||
int show_listing = 1;
|
int show_listing = 1;
|
||||||
unsigned int width;
|
unsigned int width;
|
||||||
|
|
||||||
buffer = xmalloc (listing_rhs_width);
|
buffer = (char *) xmalloc (listing_rhs_width);
|
||||||
data_buffer = xmalloc (MAX_BYTES);
|
data_buffer = (char *) xmalloc (MAX_BYTES);
|
||||||
eject = 1;
|
eject = 1;
|
||||||
list = head->next;
|
list = head->next;
|
||||||
|
|
||||||
@ -1509,7 +1512,7 @@ listing_title (int depth)
|
|||||||
if (listing)
|
if (listing)
|
||||||
{
|
{
|
||||||
length = input_line_pointer - start;
|
length = input_line_pointer - start;
|
||||||
ttl = xmalloc (length + 1);
|
ttl = (char *) xmalloc (length + 1);
|
||||||
memcpy (ttl, start, length);
|
memcpy (ttl, start, length);
|
||||||
ttl[length] = 0;
|
ttl[length] = 0;
|
||||||
listing_tail->edict = depth ? EDICT_SBTTL : EDICT_TITLE;
|
listing_tail->edict = depth ? EDICT_SBTTL : EDICT_TITLE;
|
||||||
|
@ -393,7 +393,7 @@ get_any_string (int idx, sb *in, sb *out)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
char *br_buf = xmalloc(1);
|
char *br_buf = (char *) xmalloc(1);
|
||||||
char *in_br = br_buf;
|
char *in_br = br_buf;
|
||||||
|
|
||||||
*in_br = '\0';
|
*in_br = '\0';
|
||||||
@ -424,7 +424,7 @@ get_any_string (int idx, sb *in, sb *out)
|
|||||||
--in_br;
|
--in_br;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
br_buf = xmalloc(strlen(in_br) + 2);
|
br_buf = (char *) xmalloc(strlen(in_br) + 2);
|
||||||
strcpy(br_buf + 1, in_br);
|
strcpy(br_buf + 1, in_br);
|
||||||
free(in_br);
|
free(in_br);
|
||||||
in_br = br_buf;
|
in_br = br_buf;
|
||||||
@ -457,7 +457,7 @@ new_formal (void)
|
|||||||
{
|
{
|
||||||
formal_entry *formal;
|
formal_entry *formal;
|
||||||
|
|
||||||
formal = xmalloc (sizeof (formal_entry));
|
formal = (formal_entry *) xmalloc (sizeof (formal_entry));
|
||||||
|
|
||||||
sb_new (&formal->name);
|
sb_new (&formal->name);
|
||||||
sb_new (&formal->def);
|
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
|
/* We can only ask hash_delete to free memory if we are deleting
|
||||||
macros in reverse order to their definition.
|
macros in reverse order to their definition.
|
||||||
So just clear out the entry. */
|
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);
|
hash_jam (macro_hash, copy, NULL);
|
||||||
free_macro (macro);
|
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
|
name and its default value. Each time the macro is expanded, the
|
||||||
formals get the actual values attached to them. */
|
formals get the actual values attached to them. */
|
||||||
|
|
||||||
|
enum formal_type
|
||||||
|
{
|
||||||
|
FORMAL_OPTIONAL,
|
||||||
|
FORMAL_REQUIRED,
|
||||||
|
FORMAL_VARARG
|
||||||
|
};
|
||||||
|
|
||||||
/* Describe the formal arguments to a macro. */
|
/* Describe the formal arguments to a macro. */
|
||||||
|
|
||||||
typedef struct formal_struct {
|
typedef struct formal_struct {
|
||||||
@ -42,12 +49,7 @@ typedef struct formal_struct {
|
|||||||
sb def; /* The default value. */
|
sb def; /* The default value. */
|
||||||
sb actual; /* The actual argument (changed on each expansion). */
|
sb actual; /* The actual argument (changed on each expansion). */
|
||||||
int index; /* The index of the formal 0..formal_count - 1. */
|
int index; /* The index of the formal 0..formal_count - 1. */
|
||||||
enum formal_type
|
enum formal_type type; /* The kind of the formal. */
|
||||||
{
|
|
||||||
FORMAL_OPTIONAL,
|
|
||||||
FORMAL_REQUIRED,
|
|
||||||
FORMAL_VARARG
|
|
||||||
} type; /* The kind of the formal. */
|
|
||||||
} formal_entry;
|
} formal_entry;
|
||||||
|
|
||||||
/* Other values found in the index field of a formal_entry. */
|
/* Other values found in the index field of a formal_entry. */
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\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"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\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
|
that goes with this #APP There is one. The specs
|
||||||
guarantee it... */
|
guarantee it... */
|
||||||
tmp_len = buffer_limit - s;
|
tmp_len = buffer_limit - s;
|
||||||
tmp_buf = xmalloc (tmp_len + 1);
|
tmp_buf = (char *) xmalloc (tmp_len + 1);
|
||||||
memcpy (tmp_buf, s, tmp_len);
|
memcpy (tmp_buf, s, tmp_len);
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
@ -1050,7 +1050,7 @@ read_a_source_file (char *name)
|
|||||||
else
|
else
|
||||||
num = buffer_limit - buffer;
|
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);
|
memcpy (tmp_buf + tmp_len, buffer, num);
|
||||||
tmp_len += num;
|
tmp_len += num;
|
||||||
}
|
}
|
||||||
@ -1087,7 +1087,7 @@ read_a_source_file (char *name)
|
|||||||
break;
|
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_tmp = new_buf + new_length;
|
||||||
new_length += 100;
|
new_length += 100;
|
||||||
}
|
}
|
||||||
@ -2097,7 +2097,7 @@ s_vendor_attribute (int vendor)
|
|||||||
if (i == 0)
|
if (i == 0)
|
||||||
goto bad;
|
goto bad;
|
||||||
|
|
||||||
name = alloca (i + 1);
|
name = (char *) alloca (i + 1);
|
||||||
memcpy (name, s, i);
|
memcpy (name, s, i);
|
||||||
name[i] = '\0';
|
name[i] = '\0';
|
||||||
|
|
||||||
@ -3857,7 +3857,7 @@ s_reloc (int ignore ATTRIBUTE_UNUSED)
|
|||||||
int c;
|
int c;
|
||||||
struct reloc_list *reloc;
|
struct reloc_list *reloc;
|
||||||
|
|
||||||
reloc = xmalloc (sizeof (*reloc));
|
reloc = (struct reloc_list *) xmalloc (sizeof (*reloc));
|
||||||
|
|
||||||
if (flag_mri)
|
if (flag_mri)
|
||||||
stop = mri_comment_field (&stopc);
|
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
|
/* JF this next line is so demand_copy_C_string will return a
|
||||||
null terminated string. */
|
null terminated string. */
|
||||||
obstack_1grow (¬es, '\0');
|
obstack_1grow (¬es, '\0');
|
||||||
retval = obstack_finish (¬es);
|
retval = (char *) obstack_finish (¬es);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -5516,7 +5516,7 @@ s_incbin (int x ATTRIBUTE_UNUSED)
|
|||||||
{
|
{
|
||||||
int i;
|
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++)
|
for (i = 0; i < include_dir_count; i++)
|
||||||
{
|
{
|
||||||
@ -5586,7 +5586,7 @@ s_include (int arg ATTRIBUTE_UNUSED)
|
|||||||
{
|
{
|
||||||
char *filename;
|
char *filename;
|
||||||
int i;
|
int i;
|
||||||
FILE *try;
|
FILE *try_file;
|
||||||
char *path;
|
char *path;
|
||||||
|
|
||||||
if (!flag_m68k_mri)
|
if (!flag_m68k_mri)
|
||||||
@ -5613,22 +5613,23 @@ s_include (int arg ATTRIBUTE_UNUSED)
|
|||||||
}
|
}
|
||||||
|
|
||||||
obstack_1grow (¬es, '\0');
|
obstack_1grow (¬es, '\0');
|
||||||
filename = obstack_finish (¬es);
|
filename = (char *) obstack_finish (¬es);
|
||||||
while (!is_end_of_line[(unsigned char) *input_line_pointer])
|
while (!is_end_of_line[(unsigned char) *input_line_pointer])
|
||||||
++input_line_pointer;
|
++input_line_pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
demand_empty_rest_of_line ();
|
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++)
|
for (i = 0; i < include_dir_count; i++)
|
||||||
{
|
{
|
||||||
strcpy (path, include_dirs[i]);
|
strcpy (path, include_dirs[i]);
|
||||||
strcat (path, "/");
|
strcat (path, "/");
|
||||||
strcat (path, filename);
|
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;
|
goto gotit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ add_debug_prefix_map (const char *arg)
|
|||||||
as_fatal (_("invalid argument '%s' to -fdebug-prefix-map"), arg);
|
as_fatal (_("invalid argument '%s' to -fdebug-prefix-map"), arg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
map = xmalloc (sizeof (debug_prefix_map));
|
map = (struct debug_prefix_map *) xmalloc (sizeof (debug_prefix_map));
|
||||||
o = xstrdup (arg);
|
o = xstrdup (arg);
|
||||||
map->old_prefix = o;
|
map->old_prefix = o;
|
||||||
map->old_len = p - arg;
|
map->old_len = p - arg;
|
||||||
|
@ -498,7 +498,7 @@ stabs_generate_asm_file (void)
|
|||||||
char *dir2;
|
char *dir2;
|
||||||
|
|
||||||
dir = remap_debug_filename (getpwd ());
|
dir = remap_debug_filename (getpwd ());
|
||||||
dir2 = alloca (strlen (dir) + 2);
|
dir2 = (char *) alloca (strlen (dir) + 2);
|
||||||
sprintf (dir2, "%s%s", dir, "/");
|
sprintf (dir2, "%s%s", dir, "/");
|
||||||
generate_asm_file (N_SO, dir2);
|
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
|
/* Allocate enough space for the file name (possibly extended with
|
||||||
doubled up backslashes), the symbol name, and the other characters
|
doubled up backslashes), the symbol name, and the other characters
|
||||||
that make up a stabs file directive. */
|
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++ = '"';
|
*bufp++ = '"';
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ subseg_change (register segT seg, register int subseg)
|
|||||||
|
|
||||||
if (! seginfo)
|
if (! seginfo)
|
||||||
{
|
{
|
||||||
seginfo = xcalloc (1, sizeof (*seginfo));
|
seginfo = (segment_info_type *) xcalloc (1, sizeof (*seginfo));
|
||||||
seginfo->bfd_section = seg;
|
seginfo->bfd_section = seg;
|
||||||
bfd_set_section_userdata (stdoutput, seg, seginfo);
|
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. */
|
/* 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->frch_subseg = subseg;
|
||||||
newP->fix_root = NULL;
|
newP->fix_root = NULL;
|
||||||
newP->fix_tail = NULL;
|
newP->fix_tail = NULL;
|
||||||
@ -167,7 +167,7 @@ subseg_get (const char *segname, int force_new)
|
|||||||
if (! seginfo)
|
if (! seginfo)
|
||||||
{
|
{
|
||||||
secptr->output_section = secptr;
|
secptr->output_section = secptr;
|
||||||
seginfo = xcalloc (1, sizeof (*seginfo));
|
seginfo = (segment_info_type *) xcalloc (1, sizeof (*seginfo));
|
||||||
seginfo->bfd_section = secptr;
|
seginfo->bfd_section = secptr;
|
||||||
bfd_set_section_userdata (stdoutput, secptr, seginfo);
|
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. */
|
name_length = strlen (name) + 1; /* +1 for \0. */
|
||||||
obstack_grow (¬es, name, name_length);
|
obstack_grow (¬es, name, name_length);
|
||||||
ret = obstack_finish (¬es);
|
ret = (char *) obstack_finish (¬es);
|
||||||
|
|
||||||
#ifdef tc_canonicalize_symbol_name
|
#ifdef tc_canonicalize_symbol_name
|
||||||
ret = tc_canonicalize_symbol_name (ret);
|
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);
|
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. */
|
/* symbol must be born in some fixed state. This seems as good as any. */
|
||||||
memset (symbolP, 0, sizeof (symbolS));
|
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);
|
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_marker = NULL;
|
||||||
ret->lsy_name = name_copy;
|
ret->lsy_name = name_copy;
|
||||||
ret->lsy_section = section;
|
ret->lsy_section = section;
|
||||||
@ -563,7 +563,7 @@ symbol_clone (symbolS *orgsymP, int replace)
|
|||||||
orgsymP = local_symbol_convert ((struct local_symbol *) orgsymP);
|
orgsymP = local_symbol_convert ((struct local_symbol *) orgsymP);
|
||||||
bsymorg = orgsymP->bsym;
|
bsymorg = orgsymP->bsym;
|
||||||
|
|
||||||
newsymP = obstack_alloc (¬es, sizeof (*newsymP));
|
newsymP = (symbolS *) obstack_alloc (¬es, sizeof (*newsymP));
|
||||||
*newsymP = *orgsymP;
|
*newsymP = *orgsymP;
|
||||||
bsymnew = bfd_make_empty_symbol (bfd_asymbol_bfd (bsymorg));
|
bsymnew = bfd_make_empty_symbol (bfd_asymbol_bfd (bsymorg));
|
||||||
if (bsymnew == NULL)
|
if (bsymnew == NULL)
|
||||||
@ -1453,7 +1453,7 @@ static void
|
|||||||
resolve_local_symbol (const char *key ATTRIBUTE_UNUSED, void *value)
|
resolve_local_symbol (const char *key ATTRIBUTE_UNUSED, void *value)
|
||||||
{
|
{
|
||||||
if (value != NULL)
|
if (value != NULL)
|
||||||
resolve_symbol_value (value);
|
resolve_symbol_value ((symbolS *) value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Resolve all local symbols. */
|
/* Resolve all local symbols. */
|
||||||
@ -1603,7 +1603,7 @@ define_dollar_label (long label)
|
|||||||
{
|
{
|
||||||
dollar_labels = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long));
|
dollar_labels = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long));
|
||||||
dollar_label_instances = (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_max = DOLLAR_LABEL_BUMP_BY;
|
||||||
dollar_label_count = 0;
|
dollar_label_count = 0;
|
||||||
}
|
}
|
||||||
@ -1614,7 +1614,7 @@ define_dollar_label (long label)
|
|||||||
dollar_label_max * sizeof (long));
|
dollar_label_max * sizeof (long));
|
||||||
dollar_label_instances = (long *) xrealloc ((char *) dollar_label_instances,
|
dollar_label_instances = (long *) xrealloc ((char *) dollar_label_instances,
|
||||||
dollar_label_max * sizeof (long));
|
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 */
|
} /* if we needed to grow */
|
||||||
|
|
||||||
dollar_labels[dollar_label_count] = label;
|
dollar_labels[dollar_label_count] = label;
|
||||||
@ -1887,7 +1887,7 @@ decode_local_label_name (char *s)
|
|||||||
instance_number = (10 * instance_number) + *p - '0';
|
instance_number = (10 * instance_number) + *p - '0';
|
||||||
|
|
||||||
message_format = _("\"%d\" (instance number %d of a %s label)");
|
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);
|
sprintf (symbol_decode, message_format, label_number, instance_number, type);
|
||||||
|
|
||||||
return symbol_decode;
|
return symbol_decode;
|
||||||
|
@ -156,7 +156,7 @@ fix_new_internal (fragS *frag, /* Which frag? */
|
|||||||
|
|
||||||
n_fixups++;
|
n_fixups++;
|
||||||
|
|
||||||
fixP = obstack_alloc (¬es, sizeof (fixS));
|
fixP = (fixS *) obstack_alloc (¬es, sizeof (fixS));
|
||||||
|
|
||||||
fixP->fx_frag = frag;
|
fixP->fx_frag = frag;
|
||||||
fixP->fx_where = where;
|
fixP->fx_where = where;
|
||||||
@ -1170,7 +1170,7 @@ write_relocs (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
|
|||||||
rp = &r->next;
|
rp = &r->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
relocs = xcalloc (n, sizeof (arelent *));
|
relocs = (arelent **) xcalloc (n, sizeof (arelent *));
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
for (fixp = seginfo->fix_root; fixp != (fixS *) NULL; fixp = fixp->fx_next)
|
for (fixp = seginfo->fix_root; fixp != (fixS *) NULL; fixp = fixp->fx_next)
|
||||||
@ -1398,7 +1398,7 @@ set_symtab (void)
|
|||||||
int i;
|
int i;
|
||||||
bfd_size_type amt = (bfd_size_type) nsyms * sizeof (asymbol *);
|
bfd_size_type amt = (bfd_size_type) nsyms * sizeof (asymbol *);
|
||||||
|
|
||||||
asympp = bfd_alloc (stdoutput, amt);
|
asympp = (asymbol **) bfd_alloc (stdoutput, amt);
|
||||||
symp = symbol_rootP;
|
symp = symbol_rootP;
|
||||||
for (i = 0; i < nsyms; i++, symp = symbol_next (symp))
|
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>
|
2009-09-08 Cary Coutant <ccoutant@google.com>
|
||||||
|
|
||||||
* output.cc (Output_file::open): Add execute permission to empty file.
|
* 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>
|
2009-09-07 Tristan Gingold <gingold@adacore.com>
|
||||||
|
|
||||||
* po/gprof.pot: Regenerate.
|
* po/gprof.pot: Regenerate.
|
||||||
|
@ -319,7 +319,7 @@ print_exec_counts ()
|
|||||||
static void
|
static void
|
||||||
annotate_with_count (char *buf, unsigned int width, int line_num, PTR arg)
|
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;
|
Sym *b;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
static unsigned long last_count;
|
static unsigned long last_count;
|
||||||
@ -328,7 +328,7 @@ annotate_with_count (char *buf, unsigned int width, int line_num, PTR arg)
|
|||||||
b = NULL;
|
b = NULL;
|
||||||
|
|
||||||
if (line_num <= sf->num_lines)
|
if (line_num <= sf->num_lines)
|
||||||
b = sf->line[line_num - 1];
|
b = (Sym *) sf->line[line_num - 1];
|
||||||
|
|
||||||
if (!b)
|
if (!b)
|
||||||
{
|
{
|
||||||
@ -488,7 +488,7 @@ print_annotated_source ()
|
|||||||
{
|
{
|
||||||
if (sf->num_lines > 0)
|
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]));
|
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_lookup (&syms[EXCL_ANNO], sym->addr))))
|
||||||
{
|
{
|
||||||
sym->file->ncalls += sym->ncalls;
|
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)
|
if (!line_stats)
|
||||||
{
|
{
|
||||||
@ -552,7 +552,7 @@ print_annotated_source ()
|
|||||||
|
|
||||||
for (i = 0; i < table_len; ++i)
|
for (i = 0; i < table_len; ++i)
|
||||||
{
|
{
|
||||||
sym = sf->line[i];
|
sym = (Sym *) sf->line[i];
|
||||||
|
|
||||||
if (!sym || sym->ncalls == 0)
|
if (!sym || sym->ncalls == 0)
|
||||||
break;
|
break;
|
||||||
|
@ -217,7 +217,8 @@ pre_visit (Sym *parent)
|
|||||||
if (dfn_depth >= dfn_maxdepth)
|
if (dfn_depth >= dfn_maxdepth)
|
||||||
{
|
{
|
||||||
dfn_maxdepth += DFN_INCR_DEPTH;
|
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;
|
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. */
|
/* 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);
|
strcpy (symbol_map[count].file_name, dummy);
|
||||||
|
|
||||||
/* Now we need the function name. */
|
/* Now we need the function name. */
|
||||||
@ -148,7 +148,7 @@ read_function_mappings (const char *filename)
|
|||||||
if (!matches)
|
if (!matches)
|
||||||
parse_error (filename);
|
parse_error (filename);
|
||||||
tmp = strrchr (dummy, ' ') + 1;
|
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);
|
strcpy (symbol_map[count].function_name, tmp);
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
@ -227,7 +227,7 @@ core_init (const char * aout_name)
|
|||||||
long i;
|
long i;
|
||||||
|
|
||||||
new_size = (core_num_syms + synth_count + 1) * sizeof (*core_syms);
|
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;
|
symp = core_syms + core_num_syms;
|
||||||
core_num_syms += synth_count;
|
core_num_syms += synth_count;
|
||||||
for (i = 0; i < synth_count; i++)
|
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
|
/* Don't create a symtab entry for a function that has
|
||||||
a mapping to a file, unless it's the first function
|
a mapping to a file, unless it's the first function
|
||||||
in the file. */
|
in the file. */
|
||||||
found = bsearch (core_syms[i]->name, symbol_map, symbol_map_count,
|
found = (struct function_map *) bsearch (core_syms[i]->name, symbol_map,
|
||||||
sizeof (struct function_map), search_mapped_symbol);
|
symbol_map_count,
|
||||||
|
sizeof (struct function_map),
|
||||||
|
search_mapped_symbol);
|
||||||
if (found == NULL || found->is_first)
|
if (found == NULL || found->is_first)
|
||||||
++symtab.len;
|
++symtab.len;
|
||||||
}
|
}
|
||||||
@ -609,7 +611,8 @@ core_create_function_syms (void)
|
|||||||
continue;
|
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);
|
sizeof (struct function_map), search_mapped_symbol);
|
||||||
if (found && ! found->is_first)
|
if (found && ! found->is_first)
|
||||||
continue;
|
continue;
|
||||||
@ -726,8 +729,8 @@ core_create_line_syms (void)
|
|||||||
BFD would provide an iterator for enumerating all line infos. */
|
BFD would provide an iterator for enumerating all line infos. */
|
||||||
prev_name_len = PATH_MAX;
|
prev_name_len = PATH_MAX;
|
||||||
prev_filename_len = PATH_MAX;
|
prev_filename_len = PATH_MAX;
|
||||||
prev_name = xmalloc (prev_name_len);
|
prev_name = (char *) xmalloc (prev_name_len);
|
||||||
prev_filename = xmalloc (prev_filename_len);
|
prev_filename = (char *) xmalloc (prev_filename_len);
|
||||||
ltab.len = 0;
|
ltab.len = 0;
|
||||||
prev_line_num = 0;
|
prev_line_num = 0;
|
||||||
|
|
||||||
@ -751,7 +754,7 @@ core_create_line_syms (void)
|
|||||||
{
|
{
|
||||||
prev_name_len = len + 1024;
|
prev_name_len = len + 1024;
|
||||||
free (prev_name);
|
free (prev_name);
|
||||||
prev_name = xmalloc (prev_name_len);
|
prev_name = (char *) xmalloc (prev_name_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
strcpy (prev_name, dummy.name);
|
strcpy (prev_name, dummy.name);
|
||||||
@ -761,7 +764,7 @@ core_create_line_syms (void)
|
|||||||
{
|
{
|
||||||
prev_filename_len = len + 1024;
|
prev_filename_len = len + 1024;
|
||||||
free (prev_filename);
|
free (prev_filename);
|
||||||
prev_filename = xmalloc (prev_filename_len);
|
prev_filename = (char *) xmalloc (prev_filename_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
strcpy (prev_filename, filename);
|
strcpy (prev_filename, filename);
|
||||||
|
@ -493,13 +493,13 @@ gmon_out_read (const char *filename)
|
|||||||
if (!histograms)
|
if (!histograms)
|
||||||
{
|
{
|
||||||
num_histograms = 1;
|
num_histograms = 1;
|
||||||
histograms = xmalloc (sizeof (struct histogram));
|
histograms = (struct histogram *) xmalloc (sizeof (struct histogram));
|
||||||
histograms->lowpc = tmp.low_pc;
|
histograms->lowpc = tmp.low_pc;
|
||||||
histograms->highpc = tmp.high_pc;
|
histograms->highpc = tmp.high_pc;
|
||||||
histograms->num_bins = hist_num_bins;
|
histograms->num_bins = hist_num_bins;
|
||||||
hist_scale = (double)((tmp.high_pc - tmp.low_pc) / sizeof (UNIT))
|
hist_scale = (double)((tmp.high_pc - tmp.low_pc) / sizeof (UNIT))
|
||||||
/ hist_num_bins;
|
/ hist_num_bins;
|
||||||
histograms->sample = xmalloc (hist_num_bins * sizeof (int));
|
histograms->sample = (int *) xmalloc (hist_num_bins * sizeof (int));
|
||||||
memset (histograms->sample, 0,
|
memset (histograms->sample, 0,
|
||||||
hist_num_bins * sizeof (int));
|
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
|
/* This is new record. Add it to global array and allocate space for
|
||||||
the samples. */
|
the samples. */
|
||||||
histograms = xrealloc (histograms,
|
histograms = (struct histogram *)
|
||||||
sizeof (histogram) * (num_histograms + 1));
|
xrealloc (histograms, sizeof (histogram) * (num_histograms + 1));
|
||||||
memcpy (histograms + num_histograms,
|
memcpy (histograms + num_histograms,
|
||||||
&n_record, sizeof (histogram));
|
&n_record, sizeof (histogram));
|
||||||
record = &histograms[num_histograms];
|
record = &histograms[num_histograms];
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\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"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\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.
|
# 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.
|
# Christian Rose <menthos@menthos.com>, 2001, 2002, 2004.
|
||||||
# Daniel Nylander <po@danielnylander.se>, 2006, 2007.
|
# Daniel Nylander <po@danielnylander.se>, 2006, 2007, 2009.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gprof 2.17.90\n"
|
"Project-Id-Version: gprof 2.19.90\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
|
||||||
"POT-Creation-Date: 2007-05-15 16:49+0930\n"
|
"POT-Creation-Date: 2009-09-07 14:10+0200\n"
|
||||||
"PO-Revision-Date: 2007-08-24 13:42+0100\n"
|
"PO-Revision-Date: 2009-09-11 09:46+0100\n"
|
||||||
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
|
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
|
||||||
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
|
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
|
||||||
"MIME-Version: 1.0\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"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
#: alpha.c:102 mips.c:54
|
#: 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
|
#: basic_blocks.c:128 call_graph.c:89 hist.c:105
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: %s: unexpected end of file\n"
|
msgid "%s: %s: unexpected end of file\n"
|
||||||
msgstr "%s: %s: ov<EFBFBD>ntat filslut\n"
|
msgstr "%s: %s: oväntat filslut\n"
|
||||||
|
|
||||||
#: basic_blocks.c:196
|
#: basic_blocks.c:196
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
|
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
|
||||||
msgstr "%s: varning: ignorerar exekveringsr<EFBFBD>kning f<EFBFBD>r grundblock (anv<EFBFBD>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.
|
#. FIXME: This only works if bfd_vma is unsigned long.
|
||||||
#: basic_blocks.c:289 basic_blocks.c:299
|
#: 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
|
#: basic_blocks.c:290 basic_blocks.c:300
|
||||||
msgid "<unknown>"
|
msgid "<unknown>"
|
||||||
msgstr "<ok<EFBFBD>nd>"
|
msgstr "<okänd>"
|
||||||
|
|
||||||
#: basic_blocks.c:543
|
#: basic_blocks.c:543
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -66,7 +67,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"\n"
|
"\n"
|
||||||
"\n"
|
"\n"
|
||||||
"<EFBFBD>versta %d raderna:\n"
|
"Översta %d raderna:\n"
|
||||||
"\n"
|
"\n"
|
||||||
" Rad Antal\n"
|
" Rad Antal\n"
|
||||||
"\n"
|
"\n"
|
||||||
@ -114,18 +115,18 @@ msgstr "%9.2f Medelexekveringar per rad\n"
|
|||||||
#: call_graph.c:68
|
#: call_graph.c:68
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
|
msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
|
||||||
msgstr "[cg_tally] b<EFBFBD>ge fr<EFBFBD>n %s till %s traverserad %lu g<EFBFBD>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
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\t\t Call graph (explanation follows)\n"
|
"\t\t Call graph (explanation follows)\n"
|
||||||
"\n"
|
"\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"\t\t Angropsgraf (f<EFBFBD>rklaring f<EFBFBD>ljer)\n"
|
"\t\t Angropsgraf (förklaring följer)\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
||||||
#: cg_print.c:75
|
#: cg_print.c:76
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\t\t\tCall graph\n"
|
"\t\t\tCall graph\n"
|
||||||
@ -134,25 +135,25 @@ msgstr ""
|
|||||||
"\t\t\tAnropsgraf\n"
|
"\t\t\tAnropsgraf\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
||||||
#: cg_print.c:78 hist.c:466
|
#: cg_print.c:79 hist.c:466
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"granularity: each sample hit covers %ld byte(s)"
|
"granularity: each sample hit covers %ld byte(s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"\n"
|
"\n"
|
||||||
"uppl<EFBFBD>sning: varje stickprov t<EFBFBD>cker %ld byte"
|
"upplösning: varje stickprov täcker %ld byte"
|
||||||
|
|
||||||
#: cg_print.c:82
|
#: cg_print.c:83
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
" for %.2f%% of %.2f seconds\n"
|
" for %.2f%% of %.2f seconds\n"
|
||||||
"\n"
|
"\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" f<EFBFBD>r %.2f%% p<EFBFBD> %.2f sekunder\n"
|
" för %.2f%% på %.2f sekunder\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
||||||
#: cg_print.c:86
|
#: cg_print.c:87
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
" no time propagated\n"
|
" no time propagated\n"
|
||||||
@ -161,64 +162,64 @@ msgstr ""
|
|||||||
" ingen tid propagerad\n"
|
" ingen tid propagerad\n"
|
||||||
"\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"
|
msgid "called"
|
||||||
msgstr "anropad"
|
msgstr "anropad"
|
||||||
|
|
||||||
#: cg_print.c:95 cg_print.c:100
|
#: cg_print.c:96 cg_print.c:101
|
||||||
msgid "total"
|
msgid "total"
|
||||||
msgstr "totalt"
|
msgstr "totalt"
|
||||||
|
|
||||||
#: cg_print.c:95
|
#: cg_print.c:96
|
||||||
msgid "parents"
|
msgid "parents"
|
||||||
msgstr "f<EFBFBD>r<EFBFBD>ldrar"
|
msgstr "föräldrar"
|
||||||
|
|
||||||
#: cg_print.c:97 cg_print.c:98
|
#: cg_print.c:98 cg_print.c:99
|
||||||
msgid "index"
|
msgid "index"
|
||||||
msgstr "index"
|
msgstr "index"
|
||||||
|
|
||||||
#: cg_print.c:97
|
#: cg_print.c:98
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%time"
|
msgid "%time"
|
||||||
msgstr "%tid"
|
msgstr "%tid"
|
||||||
|
|
||||||
#: cg_print.c:97 cg_print.c:98
|
#: cg_print.c:98 cg_print.c:99
|
||||||
msgid "self"
|
msgid "self"
|
||||||
msgstr "sj<EFBFBD>lv"
|
msgstr "själv"
|
||||||
|
|
||||||
#: cg_print.c:97
|
#: cg_print.c:98
|
||||||
msgid "descendants"
|
msgid "descendants"
|
||||||
msgstr "<EFBFBD>ttlingar"
|
msgstr "ättlingar"
|
||||||
|
|
||||||
#: cg_print.c:98 hist.c:492
|
#: cg_print.c:99 hist.c:492
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "namn"
|
msgstr "namn"
|
||||||
|
|
||||||
#: cg_print.c:100
|
#: cg_print.c:101
|
||||||
msgid "children"
|
msgid "children"
|
||||||
msgstr "barn"
|
msgstr "barn"
|
||||||
|
|
||||||
#: cg_print.c:105
|
#: cg_print.c:106
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "index %% time self children called name\n"
|
msgid "index %% time self children called name\n"
|
||||||
msgstr "index %% tid sj<EFBFBD>lv barn anropad namn\n"
|
msgstr "index %% tid själv barn anropad namn\n"
|
||||||
|
|
||||||
#: cg_print.c:128
|
#: cg_print.c:129
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " <cycle %d as a whole> [%d]\n"
|
msgid " <cycle %d as a whole> [%d]\n"
|
||||||
msgstr " <hela cykel %d> [%d]\n"
|
msgstr " <hela cykel %d> [%d]\n"
|
||||||
|
|
||||||
#: cg_print.c:354
|
#: cg_print.c:355
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s <spontaneous>\n"
|
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"
|
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
|
#, c-format
|
||||||
msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s <spontaneous>\n"
|
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"
|
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
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Index by function name\n"
|
"Index by function name\n"
|
||||||
@ -227,152 +228,152 @@ msgstr ""
|
|||||||
"Index efter funktionsnamn\n"
|
"Index efter funktionsnamn\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
||||||
#: cg_print.c:646 cg_print.c:655
|
#: cg_print.c:647 cg_print.c:656
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "<cycle %d>"
|
msgid "<cycle %d>"
|
||||||
msgstr "<cykel %d>"
|
msgstr "<cykel %d>"
|
||||||
|
|
||||||
#: corefile.c:59
|
#: corefile.c:60
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: unable to parse mapping file %s.\n"
|
msgid "%s: unable to parse mapping file %s.\n"
|
||||||
msgstr "%s: kan inte tolka mappfilen %s.\n"
|
msgstr "%s: kan inte tolka mappfilen %s.\n"
|
||||||
|
|
||||||
#: corefile.c:72
|
#: corefile.c:84 corefile.c:496
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: could not open %s.\n"
|
msgid "%s: could not open %s.\n"
|
||||||
msgstr "%s: kunde inte <EFBFBD>ppna %s.\n"
|
msgstr "%s: kunde inte öppna %s.\n"
|
||||||
|
|
||||||
#: corefile.c:166
|
#: corefile.c:183
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: %s: not in executable format\n"
|
msgid "%s: %s: not in executable format\n"
|
||||||
msgstr "%s: %s: inte i ett k<EFBFBD>rbart format\n"
|
msgstr "%s: %s: inte i ett körbart format\n"
|
||||||
|
|
||||||
#: corefile.c:177
|
#: corefile.c:194
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: can't find .text section in %s\n"
|
msgid "%s: can't find .text section in %s\n"
|
||||||
msgstr "%s: kan inte hitta .text-sektion i %s\n"
|
msgstr "%s: kan inte hitta .text-sektion i %s\n"
|
||||||
|
|
||||||
#: corefile.c:252
|
#: corefile.c:269
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: ran out room for %lu bytes of text space\n"
|
msgid "%s: ran out room for %lu bytes of text space\n"
|
||||||
msgstr "%s: slut p<EFBFBD> utrymme f<EFBFBD>r %lu byte textutrymme\n"
|
msgstr "%s: slut på utrymme för %lu byte textutrymme\n"
|
||||||
|
|
||||||
#: corefile.c:266
|
#: corefile.c:283
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: can't do -c\n"
|
msgid "%s: can't do -c\n"
|
||||||
msgstr "%s: kan inte g<EFBFBD>ra -c\n"
|
msgstr "%s: kan inte göra -c\n"
|
||||||
|
|
||||||
#: corefile.c:305
|
#: corefile.c:322
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: -c not supported on architecture %s\n"
|
msgid "%s: -c not supported on architecture %s\n"
|
||||||
msgstr "%s: -c st<EFBFBD>ds inte p<EFBFBD> arkitekturen %s\n"
|
msgstr "%s: -c stöds inte på arkitekturen %s\n"
|
||||||
|
|
||||||
#: corefile.c:470
|
#: corefile.c:505 corefile.c:588
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: file `%s' has no symbols\n"
|
msgid "%s: file `%s' has no symbols\n"
|
||||||
msgstr "%s: filen \"%s\" har inga symboler\n"
|
msgstr "%s: filen \"%s\" har inga symboler\n"
|
||||||
|
|
||||||
#: corefile.c:772
|
#: corefile.c:848
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
|
msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
|
||||||
msgstr "%s: n<EFBFBD>gon r<EFBFBD>knade fel: ltab.len=%d ist<EFBFBD>llet f<EFBFBD>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
|
#, c-format
|
||||||
msgid "%s: address size has unexpected value of %u\n"
|
msgid "%s: address size has unexpected value of %u\n"
|
||||||
msgstr "%s: adresstorleken har ett ov<EFBFBD>ntat v<EFBFBD>rde p<EFBFBD> %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
|
#, c-format
|
||||||
msgid "%s: file too short to be a gmon file\n"
|
msgid "%s: file too short to be a gmon file\n"
|
||||||
msgstr "%s: filen <EFBFBD>r f<EFBFBD>r kort f<EFBFBD>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
|
#, c-format
|
||||||
msgid "%s: file `%s' has bad magic cookie\n"
|
msgid "%s: file `%s' has bad magic cookie\n"
|
||||||
msgstr "%s: filen \"%s\" har felaktigt magiskt tal\n"
|
msgstr "%s: filen \"%s\" har felaktigt magiskt tal\n"
|
||||||
|
|
||||||
#: gmon_io.c:341
|
#: gmon_io.c:340
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: file `%s' has unsupported version %d\n"
|
msgid "%s: file `%s' has unsupported version %d\n"
|
||||||
msgstr "%s: filen \"%s\" har version %d som inte st<EFBFBD>ds\n"
|
msgstr "%s: filen \"%s\" har version %d som inte stöds\n"
|
||||||
|
|
||||||
#: gmon_io.c:371
|
#: gmon_io.c:370
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
|
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
|
||||||
msgstr "%s: %s: hittade felaktig tagg %d (<EFBFBD>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
|
#, c-format
|
||||||
msgid "%s: profiling rate incompatible with first gmon file\n"
|
msgid "%s: profiling rate incompatible with first gmon file\n"
|
||||||
msgstr "%s: profileringshastighet <EFBFBD>r inkompatibel med f<EFBFBD>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
|
#, c-format
|
||||||
msgid "%s: incompatible with first gmon file\n"
|
msgid "%s: incompatible with first gmon file\n"
|
||||||
msgstr "%s: inkompatibel med f<EFBFBD>rsta gmon-filen\n"
|
msgstr "%s: inkompatibel med första gmon-filen\n"
|
||||||
|
|
||||||
#: gmon_io.c:516
|
#: gmon_io.c:518
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: file '%s' does not appear to be in gmon.out format\n"
|
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"
|
msgstr "%s: filen \"%s\" verkar inte vara i gmon.out-format\n"
|
||||||
|
|
||||||
# Man brukar tala om "bins" i hashtabeller
|
# Man brukar tala om "bins" i hashtabeller
|
||||||
#
|
#
|
||||||
#: gmon_io.c:529
|
#: gmon_io.c:531
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: unexpected EOF after reading %d/%d bins\n"
|
msgid "%s: unexpected EOF after reading %d/%d bins\n"
|
||||||
msgstr "%s: ov<EFBFBD>ntat filslut efter l<EFBFBD>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
|
#, c-format
|
||||||
msgid "time is in ticks, not seconds\n"
|
msgid "time is in ticks, not seconds\n"
|
||||||
msgstr "tiden <EFBFBD>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
|
#, c-format
|
||||||
msgid "%s: don't know how to deal with file format %d\n"
|
msgid "%s: don't know how to deal with file format %d\n"
|
||||||
msgstr "%s: vet inte hur fileformat %d ska hanteras\n"
|
msgstr "%s: vet inte hur fileformat %d ska hanteras\n"
|
||||||
|
|
||||||
#: gmon_io.c:576
|
#: gmon_io.c:578
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "File `%s' (version %d) contains:\n"
|
msgid "File `%s' (version %d) contains:\n"
|
||||||
msgstr "Filen \"%s\" (version %d) inneh<EFBFBD>ller:\n"
|
msgstr "Filen \"%s\" (version %d) innehåller:\n"
|
||||||
|
|
||||||
#: gmon_io.c:579
|
#: gmon_io.c:581
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "\t%d histogram record\n"
|
msgid "\t%d histogram record\n"
|
||||||
msgstr "\t%d histogrampost\n"
|
msgstr "\t%d histogrampost\n"
|
||||||
|
|
||||||
#: gmon_io.c:580
|
#: gmon_io.c:582
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "\t%d histogram records\n"
|
msgid "\t%d histogram records\n"
|
||||||
msgstr "\t%d histogramposter\n"
|
msgstr "\t%d histogramposter\n"
|
||||||
|
|
||||||
#: gmon_io.c:582
|
#: gmon_io.c:584
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "\t%d call-graph record\n"
|
msgid "\t%d call-graph record\n"
|
||||||
msgstr "\t%d anropsgrafpost\n"
|
msgstr "\t%d anropsgrafpost\n"
|
||||||
|
|
||||||
#: gmon_io.c:583
|
#: gmon_io.c:585
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "\t%d call-graph records\n"
|
msgid "\t%d call-graph records\n"
|
||||||
msgstr "\t%d anropsgrafposter\n"
|
msgstr "\t%d anropsgrafposter\n"
|
||||||
|
|
||||||
#: gmon_io.c:585
|
#: gmon_io.c:587
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "\t%d basic-block count record\n"
|
msgid "\t%d basic-block count record\n"
|
||||||
msgstr "\t%d grundblocksr<EFBFBD>kningspost\n"
|
msgstr "\t%d grundblocksräkningspost\n"
|
||||||
|
|
||||||
#: gmon_io.c:586
|
#: gmon_io.c:588
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "\t%d basic-block count records\n"
|
msgid "\t%d basic-block count records\n"
|
||||||
msgstr "\t%d grundblocksr<EFBFBD>kningsposter\n"
|
msgstr "\t%d grundblocksräkningsposter\n"
|
||||||
|
|
||||||
#: gprof.c:158
|
#: gprof.c:159
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
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[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n"
|
||||||
"\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n"
|
"\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n"
|
||||||
"\t[--[no-]flat-profile[=name]] [--[no-]graph[=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[--no-static] [--print-path] [--separate-files]\n"
|
||||||
"\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n"
|
"\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n"
|
||||||
"\t[--version] [--width=n] [--ignore-non-functions]\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"
|
"\t[image-file] [profile-file...]\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Anv<EFBFBD>ndning: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I kataloger]\n"
|
"Användning: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqSQZ][name]] [-I kataloger]\n"
|
||||||
"\t[-d[num]] [-k fr<EFBFBD>n/till] [-m min_antal] [-t tabell_l<EFBFBD>ngd]\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-]annotated-source[=namn]] [--[no-]exec-counts[=namn]]\n"
|
||||||
"\t[--[no-]flat-profile[=namn]] [--[no-]graph[=namn]]\n"
|
"\t[--[no-]flat-profile[=namn]] [--[no-]graph[=namn]]\n"
|
||||||
"\t[--[no-]time=namn] [--all-lines] [--brief] [--debug[=niv<EFBFBD>]]\n"
|
"\t[--[no-]time=namn] [--all-lines] [--brief] [--debug[=nivå]]\n"
|
||||||
"\t[--function-ordering] [--file-ordering]\n"
|
"\t[--function-ordering] [--file-ordering]\n"
|
||||||
"\t[--directory-path=kataloger] [--display-unused-functions]\n"
|
"\t[--directory-path=kataloger] [--display-unused-functions]\n"
|
||||||
"\t[--file-format=namn] [--file-info] [--help] [--line] [--min-count=n]\n"
|
"\t[--file-format=namn] [--file-info] [--help] [--line] [--min-count=n]\n"
|
||||||
"\t[--no-static] [--print-path] [--separate-files]\n"
|
"\t[--no-static] [--print-path] [--separate-files]\n"
|
||||||
"\t[--static-call-graph] [--sum] [--table-length=l<EFBFBD>ngd] [--traditional]\n"
|
"\t[--static-call-graph] [--sum] [--table-length=längd] [--traditional]\n"
|
||||||
"\t[--version] [--width=n] [--ignore-non-functions]\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"
|
"\t[bildfil] [profilfil...]\n"
|
||||||
|
|
||||||
#: gprof.c:174
|
#: gprof.c:175
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Report bugs to %s\n"
|
msgid "Report bugs to %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Rapportera fel till %s,\n"
|
"Rapportera fel till %s,\n"
|
||||||
"Rapportera synpunkter p<EFBFBD> <20>vers<EFBFBD>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
|
#, c-format
|
||||||
msgid "%s: debugging not supported; -d ignored\n"
|
msgid "%s: debugging not supported; -d ignored\n"
|
||||||
msgstr "%s: fels<EFBFBD>kning st<EFBFBD>ds inte; -d ignorerades\n"
|
msgstr "%s: felsökning stöds inte; -d ignorerades\n"
|
||||||
|
|
||||||
#: gprof.c:330
|
#: gprof.c:331
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: unknown file format %s\n"
|
msgid "%s: unknown file format %s\n"
|
||||||
msgstr "%s: ok<EFBFBD>nt filformat %s\n"
|
msgstr "%s: okänt filformat %s\n"
|
||||||
|
|
||||||
#. This output is intended to follow the GNU standards document.
|
#. This output is intended to follow the GNU standards document.
|
||||||
#: gprof.c:414
|
#: gprof.c:419
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "GNU gprof %s\n"
|
msgid "GNU gprof %s\n"
|
||||||
msgstr "GNU gprof %s\n"
|
msgstr "GNU gprof %s\n"
|
||||||
|
|
||||||
#: gprof.c:415
|
#: gprof.c:420
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
|
msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
|
||||||
msgstr "Baserat p<EFBFBD> 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
|
#, c-format
|
||||||
msgid "This program is free software. This program has absolutely no warranty.\n"
|
msgid "This program is free software. This program has absolutely no warranty.\n"
|
||||||
msgstr "Detta program <EFBFBD>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
|
#, c-format
|
||||||
msgid "%s: unknown demangling style `%s'\n"
|
msgid "%s: unknown demangling style `%s'\n"
|
||||||
msgstr "%s: ok<EFBFBD>nd avmanglingsstil \"%s\"\n"
|
msgstr "%s: okänd avmanglingsstil \"%s\"\n"
|
||||||
|
|
||||||
#: gprof.c:477
|
#: gprof.c:482
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
|
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"
|
msgstr "%s: Endast en av --function-ordering och --file-ordering kan anges.\n"
|
||||||
|
|
||||||
#: gprof.c:527
|
#: gprof.c:534
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: sorry, file format `prof' is not yet supported\n"
|
msgid "%s: sorry, file format `prof' is not yet supported\n"
|
||||||
msgstr "%s: tyv<EFBFBD>rr, filformatet \"prof\" st<EFBFBD>ds inte <EFBFBD>n\n"
|
msgstr "%s: tyvärr, filformatet \"prof\" stöds inte än\n"
|
||||||
|
|
||||||
#: gprof.c:581
|
#: gprof.c:588
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: gmon.out file is missing histogram\n"
|
msgid "%s: gmon.out file is missing histogram\n"
|
||||||
msgstr "%s: gmon.out-filen saknar histogram\n"
|
msgstr "%s: gmon.out-filen saknar histogram\n"
|
||||||
|
|
||||||
#: gprof.c:588
|
#: gprof.c:595
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: gmon.out file is missing call-graph data\n"
|
msgid "%s: gmon.out file is missing call-graph data\n"
|
||||||
msgstr "%s: gmon.out-filen saknar anropsgrafdata\n"
|
msgstr "%s: gmon.out-filen saknar anropsgrafdata\n"
|
||||||
@ -465,8 +466,8 @@ msgid ""
|
|||||||
"%s: from '%s'\n"
|
"%s: from '%s'\n"
|
||||||
"%s: to '%s'\n"
|
"%s: to '%s'\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s: dimensionsenhet <EFBFBD>ndrades mellan histogramposter\n"
|
"%s: dimensionsenhet ändrades mellan histogramposter\n"
|
||||||
"%s: fr<EFBFBD>n \"%s\"\n"
|
"%s: från \"%s\"\n"
|
||||||
"%s: till \"%s\"\n"
|
"%s: till \"%s\"\n"
|
||||||
|
|
||||||
#: hist.c:143
|
#: hist.c:143
|
||||||
@ -476,8 +477,8 @@ msgid ""
|
|||||||
"%s: from '%c'\n"
|
"%s: from '%c'\n"
|
||||||
"%s: to '%c'\n"
|
"%s: to '%c'\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s: dimensionsf<EFBFBD>rkortning <EFBFBD>ndrades mellan histogramposter\n"
|
"%s: dimensionsförkortning ändrades mellan histogramposter\n"
|
||||||
"%s: fr<EFBFBD>n \"%c\"\n"
|
"%s: från \"%c\"\n"
|
||||||
"%s: till \"%c\"\n"
|
"%s: till \"%c\"\n"
|
||||||
|
|
||||||
#: hist.c:157
|
#: hist.c:157
|
||||||
@ -488,12 +489,12 @@ msgstr "%s: olika skalor i histogramposter"
|
|||||||
#: hist.c:194
|
#: hist.c:194
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: overlapping histogram records\n"
|
msgid "%s: overlapping histogram records\n"
|
||||||
msgstr "%s: <EFBFBD>verlappande histogramposter\n"
|
msgstr "%s: överlappande histogramposter\n"
|
||||||
|
|
||||||
#: hist.c:228
|
#: hist.c:228
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
|
msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
|
||||||
msgstr "%s: %s: ov<EFBFBD>ntat filslut efter l<EFBFBD>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
|
#: hist.c:462
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -506,7 +507,7 @@ msgid ""
|
|||||||
" for %.2f%% of %.2f %s\n"
|
" for %.2f%% of %.2f %s\n"
|
||||||
"\n"
|
"\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" f<EFBFBD>r %.2f%% av %.2f %s\n"
|
" för %.2f%% av %.2f %s\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
||||||
#: hist.c:476
|
#: hist.c:476
|
||||||
@ -516,7 +517,7 @@ msgid ""
|
|||||||
"Each sample counts as %g %s.\n"
|
"Each sample counts as %g %s.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"\n"
|
"\n"
|
||||||
"Varje stickprov r<EFBFBD>knas som %g %s.\n"
|
"Varje stickprov räknas som %g %s.\n"
|
||||||
|
|
||||||
#: hist.c:481
|
#: hist.c:481
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -533,7 +534,7 @@ msgstr "kumulativ"
|
|||||||
|
|
||||||
#: hist.c:488
|
#: hist.c:488
|
||||||
msgid "self "
|
msgid "self "
|
||||||
msgstr "sj<EFBFBD>lv"
|
msgstr "själv"
|
||||||
|
|
||||||
#: hist.c:488
|
#: hist.c:488
|
||||||
msgid "total "
|
msgid "total "
|
||||||
@ -568,14 +569,14 @@ msgstr "Platt profil:\n"
|
|||||||
#: hist.c:705
|
#: hist.c:705
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: found a symbol that covers several histogram records"
|
msgid "%s: found a symbol that covers several histogram records"
|
||||||
msgstr "%s: hittade en symbol som t<EFBFBD>cker in flera histogramposter"
|
msgstr "%s: hittade en symbol som täcker in flera histogramposter"
|
||||||
|
|
||||||
#: mips.c:71
|
#: mips.c:71
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "[find_call] 0x%lx: jal"
|
msgid "[find_call] 0x%lx: jal"
|
||||||
msgstr "[find_call] 0x%lx: jal"
|
msgstr "[find_call] 0x%lx: jal"
|
||||||
|
|
||||||
#: mips.c:96
|
#: mips.c:99
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "[find_call] 0x%lx: jalr\n"
|
msgid "[find_call] 0x%lx: jalr\n"
|
||||||
msgstr "[find_call] 0x%lx: jalr\n"
|
msgstr "[find_call] 0x%lx: jalr\n"
|
||||||
@ -596,7 +597,7 @@ msgid " <cycle %d>"
|
|||||||
msgstr " <cykel %d>"
|
msgstr " <cykel %d>"
|
||||||
|
|
||||||
#~ msgid "%s: `%s' is incompatible with first gmon file\n"
|
#~ msgid "%s: `%s' is incompatible with first gmon file\n"
|
||||||
#~ msgstr "%s: \"%s\" <EFBFBD>r inkompatibel med f<EFBFBD>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"
|
#~ msgid "%s: bfd_vma has unexpected size of %ld bytes\n"
|
||||||
#~ msgstr "%s: bfd_vma har en ov<EFBFBD>ntad storlek p<EFBFBD> %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);
|
fprintf (ofp, _("*** File %s:\n"), sf->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
annotation = xmalloc (max_width + 1);
|
annotation = (char *) xmalloc (max_width + 1);
|
||||||
line_num = 1;
|
line_num = 1;
|
||||||
new_line = TRUE;
|
new_line = TRUE;
|
||||||
|
|
||||||
|
@ -29,23 +29,25 @@
|
|||||||
#include "sym_ids.h"
|
#include "sym_ids.h"
|
||||||
#include "corefile.h"
|
#include "corefile.h"
|
||||||
|
|
||||||
static struct sym_id
|
|
||||||
{
|
|
||||||
struct sym_id *next;
|
|
||||||
char *spec; /* Parsing modifies this. */
|
|
||||||
Table_Id which_table;
|
|
||||||
bfd_boolean has_right;
|
|
||||||
|
|
||||||
struct match
|
struct match
|
||||||
{
|
{
|
||||||
int prev_index; /* Index of prev match. */
|
int prev_index; /* Index of prev match. */
|
||||||
Sym *prev_match; /* Previous match. */
|
Sym *prev_match; /* Previous match. */
|
||||||
Sym *first_match; /* Chain of all matches. */
|
Sym *first_match; /* Chain of all matches. */
|
||||||
Sym sym;
|
Sym sym;
|
||||||
}
|
};
|
||||||
left, right;
|
|
||||||
}
|
struct sym_id
|
||||||
*id_list;
|
{
|
||||||
|
struct sym_id *next;
|
||||||
|
char *spec; /* Parsing modifies this. */
|
||||||
|
Table_Id which_table;
|
||||||
|
bfd_boolean has_right;
|
||||||
|
|
||||||
|
struct match left, right;
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct sym_id *id_list;
|
||||||
|
|
||||||
static void parse_spec
|
static void parse_spec
|
||||||
(char *, Sym *);
|
(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>
|
2009-09-09 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* scripttempl/aix.sc: Only provide ENTRY on final link.
|
* 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)
|
|| (bfd_get_file_flags (entry->the_bfd) & DYNAMIC) == 0)
|
||||||
return FALSE;
|
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. */
|
/* Continue on with normal load_symbols processing. */
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -428,7 +429,7 @@ fragment <<EOF
|
|||||||
&& (bfd_elf_get_dyn_lib_class (needed->by) & DYN_NO_ADD_NEEDED) != 0)
|
&& (bfd_elf_get_dyn_lib_class (needed->by) & DYN_NO_ADD_NEEDED) != 0)
|
||||||
link_class |= DYN_NO_NEEDED | DYN_NO_ADD_NEEDED;
|
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. */
|
/* Add this file into the symbol table. */
|
||||||
if (! bfd_link_add_symbols (abfd, &link_info))
|
if (! bfd_link_add_symbols (abfd, &link_info))
|
||||||
@ -930,7 +931,7 @@ static bfd_boolean
|
|||||||
gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
|
gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
|
||||||
{
|
{
|
||||||
const struct elf_backend_data *bed = get_elf_backend_data (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;
|
elf_tdata (abfd)->after_write_object_contents_info;
|
||||||
asection *asec;
|
asection *asec;
|
||||||
Elf_Internal_Shdr *i_shdr;
|
Elf_Internal_Shdr *i_shdr;
|
||||||
@ -950,13 +951,13 @@ gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
|
|||||||
if (i_shdr->contents == NULL)
|
if (i_shdr->contents == NULL)
|
||||||
{
|
{
|
||||||
if (asec->contents == NULL)
|
if (asec->contents == NULL)
|
||||||
asec->contents = xmalloc (asec->size);
|
asec->contents = (unsigned char *) xmalloc (asec->size);
|
||||||
contents = asec->contents;
|
contents = asec->contents;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
contents = i_shdr->contents + asec->output_offset;
|
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 = offsetof (Elf_External_Note, name[sizeof "GNU"]);
|
||||||
size = (size + 3) & -(bfd_size_type) 4;
|
size = (size + 3) & -(bfd_size_type) 4;
|
||||||
id_bits = contents + size;
|
id_bits = contents + size;
|
||||||
@ -1075,7 +1076,8 @@ gld${EMULATION_NAME}_after_open (void)
|
|||||||
if (s != NULL && bfd_set_section_alignment (abfd, s, 2))
|
if (s != NULL && bfd_set_section_alignment (abfd, s, 2))
|
||||||
{
|
{
|
||||||
struct elf_obj_tdata *t = elf_tdata (link_info.output_bfd);
|
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->style = link_info.emit_note_gnu_build_id;
|
||||||
b->sec = s;
|
b->sec = s;
|
||||||
@ -1453,7 +1455,7 @@ ${ELF_INTERPRETER_SET_DEFAULT}
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
sz = s->size;
|
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,
|
if (! bfd_get_section_contents (is->the_bfd, s, msg,
|
||||||
(file_ptr) 0, sz))
|
(file_ptr) 0, sz))
|
||||||
einfo ("%F%B: Can't read contents of section .gnu.warning: %E\n",
|
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 LONG_SIZE (4)
|
||||||
#define QUAD_SIZE (8)
|
#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 {
|
typedef struct {
|
||||||
/* 1 => assign space to common symbols even if `relocatable_output'. */
|
/* 1 => assign space to common symbols even if `relocatable_output'. */
|
||||||
bfd_boolean force_common_definition;
|
bfd_boolean force_common_definition;
|
||||||
@ -161,24 +177,14 @@ typedef struct {
|
|||||||
bfd_boolean accept_unknown_input_arch;
|
bfd_boolean accept_unknown_input_arch;
|
||||||
|
|
||||||
/* Big or little endian as set on command line. */
|
/* 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. */
|
/* -Bsymbolic and -Bsymbolic-functions, as set on command line. */
|
||||||
enum
|
enum symbolic_enum symbolic;
|
||||||
{
|
|
||||||
symbolic_unset = 0,
|
|
||||||
symbolic,
|
|
||||||
symbolic_functions,
|
|
||||||
} symbolic;
|
|
||||||
|
|
||||||
/* --dynamic-list, --dynamic-list-cpp-new, --dynamic-list-cpp-typeinfo
|
/* --dynamic-list, --dynamic-list-cpp-new, --dynamic-list-cpp-typeinfo
|
||||||
and --dynamic-list FILE, as set on command line. */
|
and --dynamic-list FILE, as set on command line. */
|
||||||
enum
|
enum dynamic_list_enum dynamic_list;
|
||||||
{
|
|
||||||
dynamic_list_unset = 0,
|
|
||||||
dynamic_list_data,
|
|
||||||
dynamic_list
|
|
||||||
} dynamic_list;
|
|
||||||
|
|
||||||
/* Name of runtime interpreter to invoke. */
|
/* Name of runtime interpreter to invoke. */
|
||||||
char *interpreter;
|
char *interpreter;
|
||||||
|
16
ld/ldcref.c
16
ld/ldcref.c
@ -179,7 +179,7 @@ add_cref (const char *name,
|
|||||||
|
|
||||||
if (r == NULL)
|
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)
|
if (r == NULL)
|
||||||
einfo (_("%X%P: cref alloc failed: %E\n"));
|
einfo (_("%X%P: cref alloc failed: %E\n"));
|
||||||
r->next = h->refs;
|
r->next = h->refs;
|
||||||
@ -324,7 +324,7 @@ handle_asneeded_cref (bfd *abfd ATTRIBUTE_UNUSED,
|
|||||||
static bfd_boolean
|
static bfd_boolean
|
||||||
cref_fill_array (struct cref_hash_entry *h, void *data)
|
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);
|
ASSERT (h->demangled == NULL);
|
||||||
h->demangled = bfd_demangle (link_info.output_bfd, h->root.string,
|
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
|
static int
|
||||||
cref_sort_array (const void *a1, const void *a2)
|
cref_sort_array (const void *a1, const void *a2)
|
||||||
{
|
{
|
||||||
const struct cref_hash_entry * const *p1 = a1;
|
const struct cref_hash_entry * const *p1 =
|
||||||
const struct cref_hash_entry * const *p2 = a2;
|
(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);
|
return strcmp ((*p1)->demangled, (*p2)->demangled);
|
||||||
}
|
}
|
||||||
@ -378,7 +380,7 @@ output_cref (FILE *fp)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
csyms = xmalloc (cref_symcount * sizeof (*csyms));
|
csyms = (struct cref_hash_entry **) xmalloc (cref_symcount * sizeof (*csyms));
|
||||||
|
|
||||||
csym_fill = csyms;
|
csym_fill = csyms;
|
||||||
cref_hash_traverse (&cref_table, cref_fill_array, &csym_fill);
|
cref_hash_traverse (&cref_table, cref_fill_array, &csym_fill);
|
||||||
@ -602,7 +604,7 @@ check_refs (const char *name,
|
|||||||
static void
|
static void
|
||||||
check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
|
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;
|
asection *outsec;
|
||||||
const char *outsecname;
|
const char *outsecname;
|
||||||
asection *outdefsec;
|
asection *outdefsec;
|
||||||
@ -649,7 +651,7 @@ check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
|
|||||||
if (relsize == 0)
|
if (relsize == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
relpp = xmalloc (relsize);
|
relpp = (arelent **) xmalloc (relsize);
|
||||||
relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
|
relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
|
||||||
if (relcount < 0)
|
if (relcount < 0)
|
||||||
einfo (_("%B%F: could not read relocs: %E\n"), abfd);
|
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)
|
if (p == NULL)
|
||||||
{
|
{
|
||||||
p = xmalloc (sizeof (struct set_info));
|
p = (struct set_info *) xmalloc (sizeof (struct set_info));
|
||||||
p->next = sets;
|
p->next = sets;
|
||||||
sets = p;
|
sets = p;
|
||||||
p->h = h;
|
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->next = NULL;
|
||||||
e->name = name;
|
e->name = name;
|
||||||
e->section = section;
|
e->section = section;
|
||||||
@ -153,8 +153,10 @@ ctor_prio (const char *name)
|
|||||||
static int
|
static int
|
||||||
ctor_cmp (const void *p1, const void *p2)
|
ctor_cmp (const void *p1, const void *p2)
|
||||||
{
|
{
|
||||||
const struct set_element * const *pe1 = p1;
|
const struct set_element * const *pe1 =
|
||||||
const struct set_element * const *pe2 = p2;
|
(const struct set_element * const *) p1;
|
||||||
|
const struct set_element * const *pe2 =
|
||||||
|
(const struct set_element * const *) p2;
|
||||||
const char *n1;
|
const char *n1;
|
||||||
const char *n2;
|
const char *n2;
|
||||||
int prio1;
|
int prio1;
|
||||||
@ -223,7 +225,7 @@ ldctor_build_sets (void)
|
|||||||
for (e = p->elements; e != NULL; e = e->next)
|
for (e = p->elements; e != NULL; e = e->next)
|
||||||
++c;
|
++c;
|
||||||
|
|
||||||
array = xmalloc (c * sizeof *array);
|
array = (struct set_element **) xmalloc (c * sizeof *array);
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
for (e = p->elements; e != NULL; e = e->next)
|
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;
|
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.node_code = '=';
|
||||||
n->assign.type.lineno = src->type.lineno;
|
n->assign.type.lineno = src->type.lineno;
|
||||||
n->assign.type.node_class = etree_provide;
|
n->assign.type.node_class = etree_provide;
|
||||||
@ -963,7 +963,7 @@ exp_assert (etree_type *exp, const char *message)
|
|||||||
{
|
{
|
||||||
etree_type *n;
|
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.node_code = '!';
|
||||||
n->assert_s.type.lineno = exp->type.lineno;
|
n->assert_s.type.lineno = exp->type.lineno;
|
||||||
n->assert_s.type.node_class = etree_assert;
|
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 *dst;
|
||||||
unsigned char *s;
|
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;
|
fill->size = (len + 1) / 2;
|
||||||
dst = fill->data;
|
dst = fill->data;
|
||||||
s = (unsigned char *) expld.result.str;
|
s = (unsigned char *) expld.result.str;
|
||||||
@ -1120,7 +1120,7 @@ exp_get_fill (etree_type *tree, fill_type *def, char *name)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fill = xmalloc (4 + sizeof (*fill) - 1);
|
fill = (fill_type *) xmalloc (4 + sizeof (*fill) - 1);
|
||||||
val = expld.result.value;
|
val = expld.result.value;
|
||||||
fill->data[0] = (val >> 24) & 0xff;
|
fill->data[0] = (val >> 24) & 0xff;
|
||||||
fill->data[1] = (val >> 16) & 0xff;
|
fill->data[1] = (val >> 16) & 0xff;
|
||||||
|
42
ld/ldexp.h
42
ld/ldexp.h
@ -30,10 +30,7 @@ typedef struct {
|
|||||||
bfd_boolean valid_p;
|
bfd_boolean valid_p;
|
||||||
} etree_value_type;
|
} etree_value_type;
|
||||||
|
|
||||||
typedef struct {
|
enum node_tree_enum {
|
||||||
int node_code;
|
|
||||||
unsigned int lineno;
|
|
||||||
enum {
|
|
||||||
etree_binary,
|
etree_binary,
|
||||||
etree_trinary,
|
etree_trinary,
|
||||||
etree_unary,
|
etree_unary,
|
||||||
@ -44,7 +41,12 @@ typedef struct {
|
|||||||
etree_value,
|
etree_value,
|
||||||
etree_assert,
|
etree_assert,
|
||||||
etree_rel
|
etree_rel
|
||||||
} node_class;
|
};
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int node_code;
|
||||||
|
unsigned int lineno;
|
||||||
|
enum node_tree_enum node_class;
|
||||||
} node_type;
|
} node_type;
|
||||||
|
|
||||||
typedef union etree_union {
|
typedef union etree_union {
|
||||||
@ -100,6 +102,21 @@ typedef enum {
|
|||||||
|
|
||||||
union lang_statement_union;
|
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 {
|
struct ldexp_control {
|
||||||
/* Modify expression evaluation depending on this. */
|
/* Modify expression evaluation depending on this. */
|
||||||
lang_phase_type phase;
|
lang_phase_type phase;
|
||||||
@ -117,22 +134,11 @@ struct ldexp_control {
|
|||||||
|
|
||||||
/* State machine and results for DATASEG. */
|
/* State machine and results for DATASEG. */
|
||||||
struct {
|
struct {
|
||||||
enum {
|
enum phase_enum phase;
|
||||||
exp_dataseg_none,
|
|
||||||
exp_dataseg_align_seen,
|
|
||||||
exp_dataseg_relro_seen,
|
|
||||||
exp_dataseg_end_seen,
|
|
||||||
exp_dataseg_relro_adjust,
|
|
||||||
exp_dataseg_adjust
|
|
||||||
} phase;
|
|
||||||
|
|
||||||
bfd_vma base, min_base, relro_end, end, pagesize, maxpagesize;
|
bfd_vma base, min_base, relro_end, end, pagesize, maxpagesize;
|
||||||
|
|
||||||
enum {
|
enum relro_enum relro;
|
||||||
exp_dataseg_relro_none,
|
|
||||||
exp_dataseg_relro_start,
|
|
||||||
exp_dataseg_relro_end,
|
|
||||||
} relro;
|
|
||||||
|
|
||||||
union lang_statement_union *relro_start_stat;
|
union lang_statement_union *relro_start_stat;
|
||||||
union lang_statement_union *relro_end_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
|
static bfd_boolean
|
||||||
section_iterator_callback (bfd *bfd ATTRIBUTE_UNUSED, asection *s, void *data)
|
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)
|
if (d->found_section != NULL)
|
||||||
{
|
{
|
||||||
@ -452,7 +452,7 @@ output_section_callback_fast (lang_wild_statement_type *ptr,
|
|||||||
if (unique_section_p (section))
|
if (unique_section_p (section))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
node = xmalloc (sizeof (lang_section_bst_type));
|
node = (lang_section_bst_type *) xmalloc (sizeof (lang_section_bst_type));
|
||||||
node->left = 0;
|
node->left = 0;
|
||||||
node->right = 0;
|
node->right = 0;
|
||||||
node->section = section;
|
node->section = section;
|
||||||
@ -813,7 +813,9 @@ walk_wild_file (lang_wild_statement_type *s,
|
|||||||
lang_input_statement. */
|
lang_input_statement. */
|
||||||
if (member->usrdata != NULL)
|
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);
|
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)
|
if (entry == NULL)
|
||||||
{
|
{
|
||||||
entry = bfd_hash_allocate (table, sizeof (*ret));
|
entry = (struct bfd_hash_entry *) bfd_hash_allocate (table,
|
||||||
|
sizeof (*ret));
|
||||||
if (entry == NULL)
|
if (entry == NULL)
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
@ -1296,7 +1299,7 @@ lang_memory_region_alias (const char * alias, const char * region_name)
|
|||||||
alias);
|
alias);
|
||||||
|
|
||||||
/* Add alias to region name list. */
|
/* 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->name = xstrdup (alias);
|
||||||
n->next = region->name_list.next;
|
n->next = region->name_list.next;
|
||||||
region->name_list.next = n;
|
region->name_list.next = n;
|
||||||
@ -1717,8 +1720,8 @@ lang_insert_orphan (asection *s,
|
|||||||
|
|
||||||
os_tail = ((lang_output_section_statement_type **)
|
os_tail = ((lang_output_section_statement_type **)
|
||||||
lang_output_section_statement.tail);
|
lang_output_section_statement.tail);
|
||||||
os = lang_enter_output_section_statement (secname, address, 0, NULL, NULL,
|
os = lang_enter_output_section_statement (secname, address, normal_section,
|
||||||
NULL, constraint);
|
NULL, NULL, NULL, constraint);
|
||||||
|
|
||||||
ps = NULL;
|
ps = NULL;
|
||||||
if (config.build_constructors && *os_tail == os)
|
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 fat_user_section_struct *ud;
|
||||||
struct map_symbol_def *def;
|
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)
|
if (! ud)
|
||||||
{
|
{
|
||||||
/* ??? What do we have to do to initialize this beforehand? */
|
/* ??? What do we have to do to initialize this beforehand? */
|
||||||
/* The first time we get here is bfd_abs_section... */
|
/* The first time we get here is bfd_abs_section... */
|
||||||
init_map_userdata (0, hash_entry->u.def.section, 0);
|
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)
|
else if (!ud->map_symbol_def_tail)
|
||||||
ud->map_symbol_def_tail = &ud->map_symbol_def_head;
|
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;
|
def->entry = hash_entry;
|
||||||
*(ud->map_symbol_def_tail) = def;
|
*(ud->map_symbol_def_tail) = def;
|
||||||
ud->map_symbol_def_tail = &def->next;
|
ud->map_symbol_def_tail = &def->next;
|
||||||
@ -2139,7 +2144,7 @@ exp_init_os (etree_type *exp)
|
|||||||
static void
|
static void
|
||||||
section_already_linked (bfd *abfd, asection *sec, void *data)
|
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
|
/* If we are only reading symbols from this object, then we want to
|
||||||
discard all sections. */
|
discard all sections. */
|
||||||
@ -2528,9 +2533,9 @@ add_excluded_libs (const char *list)
|
|||||||
end = strpbrk (p, ",:");
|
end = strpbrk (p, ",:");
|
||||||
if (end == NULL)
|
if (end == NULL)
|
||||||
end = p + strlen (p);
|
end = p + strlen (p);
|
||||||
entry = xmalloc (sizeof (*entry));
|
entry = (struct excluded_lib *) xmalloc (sizeof (*entry));
|
||||||
entry->next = excluded_libs;
|
entry->next = excluded_libs;
|
||||||
entry->name = xmalloc (end - p + 1);
|
entry->name = (char *) xmalloc (end - p + 1);
|
||||||
memcpy (entry->name, p, end - p);
|
memcpy (entry->name, p, end - p);
|
||||||
entry->name[end - p] = '\0';
|
entry->name[end - p] = '\0';
|
||||||
excluded_libs = entry;
|
excluded_libs = entry;
|
||||||
@ -2751,7 +2756,7 @@ wild (lang_wild_statement_type *s,
|
|||||||
static int
|
static int
|
||||||
get_target (const bfd_target *target, void *data)
|
get_target (const bfd_target *target, void *data)
|
||||||
{
|
{
|
||||||
const char *sought = data;
|
const char *sought = (const char *) data;
|
||||||
|
|
||||||
return strcmp (target->name, sought) == 0;
|
return strcmp (target->name, sought) == 0;
|
||||||
}
|
}
|
||||||
@ -2798,8 +2803,8 @@ name_compare (char *first, char *second)
|
|||||||
char *copy2;
|
char *copy2;
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
copy1 = xmalloc (strlen (first) + 1);
|
copy1 = (char *) xmalloc (strlen (first) + 1);
|
||||||
copy2 = xmalloc (strlen (second) + 1);
|
copy2 = (char *) xmalloc (strlen (second) + 1);
|
||||||
|
|
||||||
/* Convert the names to lower case. */
|
/* Convert the names to lower case. */
|
||||||
stricpy (copy1, first);
|
stricpy (copy1, first);
|
||||||
@ -2837,7 +2842,7 @@ static const bfd_target *winner;
|
|||||||
static int
|
static int
|
||||||
closest_target_match (const bfd_target *target, void *data)
|
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
|
if (command_line.endian == ENDIAN_BIG
|
||||||
&& target->byteorder != BFD_ENDIAN_BIG)
|
&& target->byteorder != BFD_ENDIAN_BIG)
|
||||||
@ -3932,7 +3937,7 @@ print_input_statement (lang_input_statement_type *statm)
|
|||||||
static bfd_boolean
|
static bfd_boolean
|
||||||
print_one_symbol (struct bfd_link_hash_entry *hash_entry, void *ptr)
|
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
|
if ((hash_entry->type == bfd_link_hash_defined
|
||||||
|| hash_entry->type == bfd_link_hash_defweak)
|
|| hash_entry->type == bfd_link_hash_defweak)
|
||||||
@ -3970,7 +3975,8 @@ hash_entry_addr_cmp (const void *a, const void *b)
|
|||||||
static void
|
static void
|
||||||
print_all_symbols (asection *sec)
|
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 map_symbol_def *def;
|
||||||
struct bfd_link_hash_entry **entries;
|
struct bfd_link_hash_entry **entries;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
@ -3981,8 +3987,8 @@ print_all_symbols (asection *sec)
|
|||||||
*ud->map_symbol_def_tail = 0;
|
*ud->map_symbol_def_tail = 0;
|
||||||
|
|
||||||
/* Sort the symbols by address. */
|
/* Sort the symbols by address. */
|
||||||
entries = obstack_alloc (&map_obstack,
|
entries = (struct bfd_link_hash_entry **)
|
||||||
ud->map_symbol_def_count * sizeof (*entries));
|
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++)
|
for (i = 0, def = ud->map_symbol_def_head; def; def = def->next, i++)
|
||||||
entries[i] = def->entry;
|
entries[i] = def->entry;
|
||||||
@ -4419,7 +4425,8 @@ insert_pad (lang_statement_union_type **ptr,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Make a new padding statement, linked into existing chain. */
|
/* 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;
|
pad->header.next = *ptr;
|
||||||
*ptr = pad;
|
*ptr = pad;
|
||||||
pad->header.type = lang_padding_statement_enum;
|
pad->header.type = lang_padding_statement_enum;
|
||||||
@ -4535,7 +4542,7 @@ lang_check_section_addresses (void)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
amt = bfd_count_sections (link_info.output_bfd) * sizeof (asection *);
|
amt = bfd_count_sections (link_info.output_bfd) * sizeof (asection *);
|
||||||
sections = xmalloc (amt);
|
sections = (asection **) xmalloc (amt);
|
||||||
|
|
||||||
/* Scan all sections in the output list. */
|
/* Scan all sections in the output list. */
|
||||||
count = 0;
|
count = 0;
|
||||||
@ -5465,7 +5472,7 @@ lang_set_startof (void)
|
|||||||
struct bfd_link_hash_entry *h;
|
struct bfd_link_hash_entry *h;
|
||||||
|
|
||||||
secname = bfd_get_section_name (link_info.output_bfd, s);
|
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);
|
sprintf (buf, ".startof.%s", secname);
|
||||||
h = bfd_link_hash_lookup (link_info.hash, buf, FALSE, FALSE, TRUE);
|
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;
|
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->next = NULL;
|
||||||
n->name = name;
|
n->name = name;
|
||||||
n->type = exp_get_value_int (type, 0, "program header type");
|
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;
|
lang_output_section_statement_type *os;
|
||||||
|
|
||||||
alc = 10;
|
alc = 10;
|
||||||
secs = xmalloc (alc * sizeof (asection *));
|
secs = (asection **) xmalloc (alc * sizeof (asection *));
|
||||||
last = NULL;
|
last = NULL;
|
||||||
|
|
||||||
for (l = lang_phdr_list; l != NULL; l = l->next)
|
for (l = lang_phdr_list; l != NULL; l = l->next)
|
||||||
@ -6856,7 +6863,8 @@ lang_record_phdrs (void)
|
|||||||
if (c >= alc)
|
if (c >= alc)
|
||||||
{
|
{
|
||||||
alc *= 2;
|
alc *= 2;
|
||||||
secs = xrealloc (secs, alc * sizeof (asection *));
|
secs = (asection **) xrealloc (secs,
|
||||||
|
alc * sizeof (asection *));
|
||||||
}
|
}
|
||||||
secs[c] = os->bfd_section;
|
secs[c] = os->bfd_section;
|
||||||
++c;
|
++c;
|
||||||
@ -6910,7 +6918,7 @@ lang_add_nocrossref (lang_nocrossref_type *l)
|
|||||||
{
|
{
|
||||||
struct lang_nocrossrefs *n;
|
struct lang_nocrossrefs *n;
|
||||||
|
|
||||||
n = xmalloc (sizeof *n);
|
n = (struct lang_nocrossrefs *) xmalloc (sizeof *n);
|
||||||
n->next = nocrossref_list;
|
n->next = nocrossref_list;
|
||||||
n->list = l;
|
n->list = l;
|
||||||
nocrossref_list = n;
|
nocrossref_list = n;
|
||||||
@ -6972,7 +6980,7 @@ lang_enter_overlay_section (const char *name)
|
|||||||
overlay_vma = exp_nameop (ADDR, name);
|
overlay_vma = exp_nameop (ADDR, name);
|
||||||
|
|
||||||
/* Remember the section. */
|
/* Remember the section. */
|
||||||
n = xmalloc (sizeof *n);
|
n = (struct overlay_list *) xmalloc (sizeof *n);
|
||||||
n->os = current_section;
|
n->os = current_section;
|
||||||
n->next = overlay_list;
|
n->next = overlay_list;
|
||||||
overlay_list = n;
|
overlay_list = n;
|
||||||
@ -7008,20 +7016,20 @@ lang_leave_overlay_section (fill_type *fill,
|
|||||||
|
|
||||||
/* Define the magic symbols. */
|
/* Define the magic symbols. */
|
||||||
|
|
||||||
clean = xmalloc (strlen (name) + 1);
|
clean = (char *) xmalloc (strlen (name) + 1);
|
||||||
s2 = clean;
|
s2 = clean;
|
||||||
for (s1 = name; *s1 != '\0'; s1++)
|
for (s1 = name; *s1 != '\0'; s1++)
|
||||||
if (ISALNUM (*s1) || *s1 == '_')
|
if (ISALNUM (*s1) || *s1 == '_')
|
||||||
*s2++ = *s1;
|
*s2++ = *s1;
|
||||||
*s2 = '\0';
|
*s2 = '\0';
|
||||||
|
|
||||||
buf = xmalloc (strlen (clean) + sizeof "__load_start_");
|
buf = (char *) xmalloc (strlen (clean) + sizeof "__load_start_");
|
||||||
sprintf (buf, "__load_start_%s", clean);
|
sprintf (buf, "__load_start_%s", clean);
|
||||||
lang_add_assignment (exp_provide (buf,
|
lang_add_assignment (exp_provide (buf,
|
||||||
exp_nameop (LOADADDR, name),
|
exp_nameop (LOADADDR, name),
|
||||||
FALSE));
|
FALSE));
|
||||||
|
|
||||||
buf = xmalloc (strlen (clean) + sizeof "__load_stop_");
|
buf = (char *) xmalloc (strlen (clean) + sizeof "__load_stop_");
|
||||||
sprintf (buf, "__load_stop_%s", clean);
|
sprintf (buf, "__load_stop_%s", clean);
|
||||||
lang_add_assignment (exp_provide (buf,
|
lang_add_assignment (exp_provide (buf,
|
||||||
exp_binop ('+',
|
exp_binop ('+',
|
||||||
@ -7087,7 +7095,7 @@ lang_leave_overlay (etree_type *lma_expr,
|
|||||||
{
|
{
|
||||||
lang_nocrossref_type *nc;
|
lang_nocrossref_type *nc;
|
||||||
|
|
||||||
nc = xmalloc (sizeof *nc);
|
nc = (lang_nocrossref_type *) xmalloc (sizeof *nc);
|
||||||
nc->name = l->os->name;
|
nc->name = l->os->name;
|
||||||
nc->next = nocrossref;
|
nc->next = nocrossref;
|
||||||
nocrossref = nc;
|
nocrossref = nc;
|
||||||
@ -7148,7 +7156,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
|
|||||||
if (head->mask & BFD_ELF_VERSION_C_TYPE)
|
if (head->mask & BFD_ELF_VERSION_C_TYPE)
|
||||||
{
|
{
|
||||||
e.pattern = sym;
|
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)
|
while (expr && strcmp (expr->pattern, sym) == 0)
|
||||||
if (expr->mask == BFD_ELF_VERSION_C_TYPE)
|
if (expr->mask == BFD_ELF_VERSION_C_TYPE)
|
||||||
goto out_ret;
|
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)
|
if (head->mask & BFD_ELF_VERSION_CXX_TYPE)
|
||||||
{
|
{
|
||||||
e.pattern = cxx_sym;
|
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)
|
while (expr && strcmp (expr->pattern, cxx_sym) == 0)
|
||||||
if (expr->mask == BFD_ELF_VERSION_CXX_TYPE)
|
if (expr->mask == BFD_ELF_VERSION_CXX_TYPE)
|
||||||
goto out_ret;
|
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)
|
if (head->mask & BFD_ELF_VERSION_JAVA_TYPE)
|
||||||
{
|
{
|
||||||
e.pattern = java_sym;
|
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)
|
while (expr && strcmp (expr->pattern, java_sym) == 0)
|
||||||
if (expr->mask == BFD_ELF_VERSION_JAVA_TYPE)
|
if (expr->mask == BFD_ELF_VERSION_JAVA_TYPE)
|
||||||
goto out_ret;
|
goto out_ret;
|
||||||
@ -7226,7 +7237,7 @@ realsymbol (const char *pattern)
|
|||||||
{
|
{
|
||||||
const char *p;
|
const char *p;
|
||||||
bfd_boolean changed = FALSE, backslash = FALSE;
|
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)
|
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;
|
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->globals.list = globals;
|
||||||
ret->locals.list = locals;
|
ret->locals.list = locals;
|
||||||
ret->match = lang_vers_match;
|
ret->match = lang_vers_match;
|
||||||
@ -7328,7 +7339,8 @@ static int version_index;
|
|||||||
static hashval_t
|
static hashval_t
|
||||||
version_expr_head_hash (const void *p)
|
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);
|
return htab_hash_string (e->pattern);
|
||||||
}
|
}
|
||||||
@ -7336,8 +7348,10 @@ version_expr_head_hash (const void *p)
|
|||||||
static int
|
static int
|
||||||
version_expr_head_eq (const void *p1, const void *p2)
|
version_expr_head_eq (const void *p1, const void *p2)
|
||||||
{
|
{
|
||||||
const struct bfd_elf_version_expr *e1 = p1;
|
const struct bfd_elf_version_expr *e1 =
|
||||||
const struct bfd_elf_version_expr *e2 = p2;
|
(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;
|
return strcmp (e1->pattern, e2->pattern) == 0;
|
||||||
}
|
}
|
||||||
@ -7372,13 +7386,13 @@ lang_finalize_version_expr_head (struct bfd_elf_version_expr_head *head)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
void **loc = htab_find_slot (head->htab, e, INSERT);
|
void **loc = htab_find_slot ((htab_t) head->htab, e, INSERT);
|
||||||
|
|
||||||
if (*loc)
|
if (*loc)
|
||||||
{
|
{
|
||||||
struct bfd_elf_version_expr *e1, *last;
|
struct bfd_elf_version_expr *e1, *last;
|
||||||
|
|
||||||
e1 = *loc;
|
e1 = (struct bfd_elf_version_expr *) *loc;
|
||||||
last = NULL;
|
last = NULL;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
@ -7463,7 +7477,8 @@ lang_register_vers_node (const char *name,
|
|||||||
|
|
||||||
if (t->locals.htab && e1->literal)
|
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)
|
while (e2 && strcmp (e1->pattern, e2->pattern) == 0)
|
||||||
{
|
{
|
||||||
if (e1->mask == e2->mask)
|
if (e1->mask == e2->mask)
|
||||||
@ -7489,7 +7504,8 @@ lang_register_vers_node (const char *name,
|
|||||||
|
|
||||||
if (t->globals.htab && e1->literal)
|
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)
|
while (e2 && strcmp (e1->pattern, e2->pattern) == 0)
|
||||||
{
|
{
|
||||||
if (e1->mask == e2->mask)
|
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_deps *ret;
|
||||||
struct bfd_elf_version_tree *t;
|
struct bfd_elf_version_tree *t;
|
||||||
|
|
||||||
ret = xmalloc (sizeof *ret);
|
ret = (struct bfd_elf_version_deps *) xmalloc (sizeof *ret);
|
||||||
ret->next = list;
|
ret->next = list;
|
||||||
|
|
||||||
for (t = lang_elf_version_info; t != NULL; t = t->next)
|
for (t = lang_elf_version_info; t != NULL; t = t->next)
|
||||||
@ -7563,7 +7579,7 @@ lang_do_version_exports_section (void)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
len = sec->size;
|
len = sec->size;
|
||||||
contents = xmalloc (len);
|
contents = (char *) xmalloc (len);
|
||||||
if (!bfd_get_section_contents (is->the_bfd, sec, contents, 0, len))
|
if (!bfd_get_section_contents (is->the_bfd, sec, contents, 0, len))
|
||||||
einfo (_("%X%P: unable to read .exports section contents\n"), sec);
|
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)
|
if (strcmp (ent->name, name) == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ent = xmalloc (sizeof *ent);
|
ent = (struct unique_sections *) xmalloc (sizeof *ent);
|
||||||
ent->name = xstrdup (name);
|
ent->name = xstrdup (name);
|
||||||
ent->next = unique_section_list;
|
ent->next = unique_section_list;
|
||||||
unique_section_list = ent;
|
unique_section_list = ent;
|
||||||
@ -7617,7 +7633,7 @@ lang_append_dynamic_list (struct bfd_elf_version_expr *dynamic)
|
|||||||
{
|
{
|
||||||
struct bfd_elf_dynamic_list *d;
|
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->head.list = dynamic;
|
||||||
d->match = lang_vers_match;
|
d->match = lang_vers_match;
|
||||||
link_info.dynamic_list = d;
|
link_info.dynamic_list = d;
|
||||||
|
10
ld/ldlang.h
10
ld/ldlang.h
@ -66,9 +66,6 @@ typedef struct memory_region_struct
|
|||||||
bfd_boolean had_full_message;
|
bfd_boolean had_full_message;
|
||||||
} lang_memory_region_type;
|
} lang_memory_region_type;
|
||||||
|
|
||||||
typedef struct lang_statement_header_struct
|
|
||||||
{
|
|
||||||
union lang_statement_union *next;
|
|
||||||
enum statement_enum
|
enum statement_enum
|
||||||
{
|
{
|
||||||
lang_output_section_statement_enum,
|
lang_output_section_statement_enum,
|
||||||
@ -87,7 +84,12 @@ typedef struct lang_statement_header_struct
|
|||||||
lang_group_statement_enum,
|
lang_group_statement_enum,
|
||||||
lang_insert_statement_enum,
|
lang_insert_statement_enum,
|
||||||
lang_constructors_statement_enum
|
lang_constructors_statement_enum
|
||||||
} type;
|
};
|
||||||
|
|
||||||
|
typedef struct lang_statement_header_struct
|
||||||
|
{
|
||||||
|
union lang_statement_union *next;
|
||||||
|
enum statement_enum type;
|
||||||
} lang_statement_header_type;
|
} lang_statement_header_type;
|
||||||
|
|
||||||
typedef struct
|
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;
|
static const int ld_bufsz = 8193;
|
||||||
size_t n;
|
size_t n;
|
||||||
char *buf = xmalloc (ld_bufsz);
|
char *buf = (char *) xmalloc (ld_bufsz);
|
||||||
|
|
||||||
rewind (saved_script_handle);
|
rewind (saved_script_handle);
|
||||||
while ((n = fread (buf, 1, ld_bufsz - 1, saved_script_handle)) > 0)
|
while ((n = fread (buf, 1, ld_bufsz - 1, saved_script_handle)) > 0)
|
||||||
@ -503,9 +503,9 @@ main (int argc, char **argv)
|
|||||||
FILE *src;
|
FILE *src;
|
||||||
FILE *dst;
|
FILE *dst;
|
||||||
const int bsize = 4096;
|
const int bsize = 4096;
|
||||||
char *buf = xmalloc (bsize);
|
char *buf = (char *) xmalloc (bsize);
|
||||||
int l;
|
int l;
|
||||||
char *dst_name = xmalloc (len + 5);
|
char *dst_name = (char *) xmalloc (len + 5);
|
||||||
|
|
||||||
strcpy (dst_name, output_filename);
|
strcpy (dst_name, output_filename);
|
||||||
strcat (dst_name, ".exe");
|
strcat (dst_name, ".exe");
|
||||||
@ -540,7 +540,7 @@ main (int argc, char **argv)
|
|||||||
if (config.stats)
|
if (config.stats)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_SBRK
|
#ifdef HAVE_SBRK
|
||||||
char *lim = sbrk (0);
|
char *lim = (char *) sbrk (0);
|
||||||
#endif
|
#endif
|
||||||
long run_time = get_run_time () - start_time;
|
long run_time = get_run_time () - start_time;
|
||||||
|
|
||||||
@ -672,7 +672,8 @@ add_ysym (const char *name)
|
|||||||
{
|
{
|
||||||
if (link_info.notice_hash == NULL)
|
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,
|
if (!bfd_hash_table_init_n (link_info.notice_hash,
|
||||||
bfd_hash_newfunc,
|
bfd_hash_newfunc,
|
||||||
sizeof (struct bfd_hash_entry),
|
sizeof (struct bfd_hash_entry),
|
||||||
@ -691,7 +692,8 @@ add_wrap (const char *name)
|
|||||||
{
|
{
|
||||||
if (link_info.wrap_hash == NULL)
|
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,
|
if (!bfd_hash_table_init_n (link_info.wrap_hash,
|
||||||
bfd_hash_newfunc,
|
bfd_hash_newfunc,
|
||||||
sizeof (struct bfd_hash_entry),
|
sizeof (struct bfd_hash_entry),
|
||||||
@ -724,13 +726,14 @@ add_keepsyms_file (const char *filename)
|
|||||||
return;
|
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,
|
if (!bfd_hash_table_init (link_info.keep_hash, bfd_hash_newfunc,
|
||||||
sizeof (struct bfd_hash_entry)))
|
sizeof (struct bfd_hash_entry)))
|
||||||
einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
|
einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
|
||||||
|
|
||||||
bufsize = 100;
|
bufsize = 100;
|
||||||
buf = xmalloc (bufsize);
|
buf = (char *) xmalloc (bufsize);
|
||||||
|
|
||||||
c = getc (file);
|
c = getc (file);
|
||||||
while (c != EOF)
|
while (c != EOF)
|
||||||
@ -749,7 +752,7 @@ add_keepsyms_file (const char *filename)
|
|||||||
if (len >= bufsize)
|
if (len >= bufsize)
|
||||||
{
|
{
|
||||||
bufsize *= 2;
|
bufsize *= 2;
|
||||||
buf = xrealloc (buf, bufsize);
|
buf = (char *) xrealloc (buf, bufsize);
|
||||||
}
|
}
|
||||||
c = getc (file);
|
c = getc (file);
|
||||||
}
|
}
|
||||||
@ -780,7 +783,8 @@ add_archive_element (struct bfd_link_info *info,
|
|||||||
{
|
{
|
||||||
lang_input_statement_type *input;
|
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->filename = abfd->filename;
|
||||||
input->local_sym_name = abfd->filename;
|
input->local_sym_name = abfd->filename;
|
||||||
input->the_bfd = abfd;
|
input->the_bfd = abfd;
|
||||||
@ -1127,7 +1131,7 @@ warning_callback (struct bfd_link_info *info ATTRIBUTE_UNUSED,
|
|||||||
static void
|
static void
|
||||||
warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
|
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;
|
long relsize;
|
||||||
arelent **relpp;
|
arelent **relpp;
|
||||||
long relcount;
|
long relcount;
|
||||||
@ -1142,7 +1146,7 @@ warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
|
|||||||
if (relsize == 0)
|
if (relsize == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
relpp = xmalloc (relsize);
|
relpp = (arelent **) xmalloc (relsize);
|
||||||
relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
|
relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
|
||||||
if (relcount < 0)
|
if (relcount < 0)
|
||||||
einfo (_("%B%F: could not read relocs: %E\n"), abfd);
|
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. */
|
/* Only warn once about a particular undefined symbol. */
|
||||||
if (hash == NULL)
|
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,
|
if (!bfd_hash_table_init (hash, bfd_hash_newfunc,
|
||||||
sizeof (struct bfd_hash_entry)))
|
sizeof (struct bfd_hash_entry)))
|
||||||
einfo (_("%F%P: bfd_hash_table_init failed: %E\n"));
|
einfo (_("%F%P: bfd_hash_table_init failed: %E\n"));
|
||||||
@ -1376,7 +1381,7 @@ notice (struct bfd_link_info *info,
|
|||||||
if (name == NULL)
|
if (name == NULL)
|
||||||
{
|
{
|
||||||
if (command_line.cref || nocrossref_list != 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;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ build_link_order (lang_statement_union_type *statement)
|
|||||||
|
|
||||||
link_order->type = bfd_data_link_order;
|
link_order->type = bfd_data_link_order;
|
||||||
link_order->offset = statement->data_statement.output_offset;
|
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;
|
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->offset = rs->output_offset;
|
||||||
link_order->size = bfd_get_reloc_size (rs->howto);
|
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->reloc = rs->reloc;
|
||||||
link_order->u.reloc.p->addend = rs->addend_value;
|
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
|
/* Invent a section name from the section name and a dotted numeric
|
||||||
suffix. */
|
suffix. */
|
||||||
len = strlen (name);
|
len = strlen (name);
|
||||||
tname = xmalloc (len + 1);
|
tname = (char *) xmalloc (len + 1);
|
||||||
memcpy (tname, name, len + 1);
|
memcpy (tname, name, len + 1);
|
||||||
/* Remove a dotted number suffix, from a previous split link. */
|
/* Remove a dotted number suffix, from a previous split link. */
|
||||||
while (len && ISDIGIT (tname[len-1]))
|
while (len && ISDIGIT (tname[len-1]))
|
||||||
|
53
ld/lexsup.c
53
ld/lexsup.c
@ -172,18 +172,7 @@ enum option_values
|
|||||||
/* The long options. This structure is used for both the option
|
/* The long options. This structure is used for both the option
|
||||||
parsing and the help text. */
|
parsing and the help text. */
|
||||||
|
|
||||||
struct ld_option
|
enum control_enum {
|
||||||
{
|
|
||||||
/* The long option information. */
|
|
||||||
struct option opt;
|
|
||||||
/* The short option with the same meaning ('\0' if none). */
|
|
||||||
char shortopt;
|
|
||||||
/* The name of the argument (NULL if none). */
|
|
||||||
const char *arg;
|
|
||||||
/* 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. */
|
/* Use one dash before long option name. */
|
||||||
ONE_DASH,
|
ONE_DASH,
|
||||||
/* Use two dashes before long option name. */
|
/* Use two dashes before long option name. */
|
||||||
@ -200,7 +189,20 @@ struct ld_option
|
|||||||
EXACTLY_TWO_DASHES,
|
EXACTLY_TWO_DASHES,
|
||||||
/* Don't mention this option in --help output. */
|
/* Don't mention this option in --help output. */
|
||||||
NO_HELP
|
NO_HELP
|
||||||
} control;
|
};
|
||||||
|
|
||||||
|
struct ld_option
|
||||||
|
{
|
||||||
|
/* The long option information. */
|
||||||
|
struct option opt;
|
||||||
|
/* The short option with the same meaning ('\0' if none). */
|
||||||
|
char shortopt;
|
||||||
|
/* The name of the argument (NULL if none). */
|
||||||
|
const char *arg;
|
||||||
|
/* The documentation string. If this is NULL, this is a synonym for
|
||||||
|
the previous option. */
|
||||||
|
const char *doc;
|
||||||
|
enum control_enum control;
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct ld_option ld_options[] =
|
static const struct ld_option ld_options[] =
|
||||||
@ -590,9 +592,11 @@ parse_args (unsigned argc, char **argv)
|
|||||||
int last_optind;
|
int last_optind;
|
||||||
enum report_method how_to_report_unresolved_symbols = RM_GENERATE_ERROR;
|
enum report_method how_to_report_unresolved_symbols = RM_GENERATE_ERROR;
|
||||||
|
|
||||||
shortopts = xmalloc (OPTION_COUNT * 3 + 2);
|
shortopts = (char *) xmalloc (OPTION_COUNT * 3 + 2);
|
||||||
longopts = xmalloc (sizeof (*longopts) * (OPTION_COUNT + 1));
|
longopts = (struct option *)
|
||||||
really_longopts = xmalloc (sizeof (*really_longopts) * (OPTION_COUNT + 1));
|
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
|
/* Starting the short option string with '-' is for programs that
|
||||||
expect options and other ARGV-elements in any order and that care about
|
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;
|
char *n;
|
||||||
|
|
||||||
n = xmalloc (strlen (argv[i]) + 20);
|
n = (char *) xmalloc (strlen (argv[i]) + 20);
|
||||||
sprintf (n, "--library=%s", argv[i] + 2);
|
sprintf (n, "--library=%s", argv[i] + 2);
|
||||||
argv[i] = n;
|
argv[i] = n;
|
||||||
}
|
}
|
||||||
@ -833,7 +837,8 @@ parse_args (unsigned argc, char **argv)
|
|||||||
case 'f':
|
case 'f':
|
||||||
if (command_line.auxiliary_filters == NULL)
|
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[0] = optarg;
|
||||||
command_line.auxiliary_filters[1] = NULL;
|
command_line.auxiliary_filters[1] = NULL;
|
||||||
}
|
}
|
||||||
@ -845,8 +850,8 @@ parse_args (unsigned argc, char **argv)
|
|||||||
c = 0;
|
c = 0;
|
||||||
for (p = command_line.auxiliary_filters; *p != NULL; p++)
|
for (p = command_line.auxiliary_filters; *p != NULL; p++)
|
||||||
++c;
|
++c;
|
||||||
command_line.auxiliary_filters
|
command_line.auxiliary_filters = (char **)
|
||||||
= xrealloc (command_line.auxiliary_filters,
|
xrealloc (command_line.auxiliary_filters,
|
||||||
(c + 2) * sizeof (char *));
|
(c + 2) * sizeof (char *));
|
||||||
command_line.auxiliary_filters[c] = optarg;
|
command_line.auxiliary_filters[c] = optarg;
|
||||||
command_line.auxiliary_filters[c + 1] = NULL;
|
command_line.auxiliary_filters[c + 1] = NULL;
|
||||||
@ -1092,7 +1097,7 @@ parse_args (unsigned argc, char **argv)
|
|||||||
|
|
||||||
if (cp == NULL)
|
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,
|
sprintf (buf, "%s%c%s", command_line.rpath,
|
||||||
config.rpath_separator, optarg);
|
config.rpath_separator, optarg);
|
||||||
free (command_line.rpath);
|
free (command_line.rpath);
|
||||||
@ -1107,7 +1112,7 @@ parse_args (unsigned argc, char **argv)
|
|||||||
{
|
{
|
||||||
char *buf;
|
char *buf;
|
||||||
|
|
||||||
buf = xmalloc (strlen (command_line.rpath_link)
|
buf = (char *) xmalloc (strlen (command_line.rpath_link)
|
||||||
+ strlen (optarg)
|
+ strlen (optarg)
|
||||||
+ 2);
|
+ 2);
|
||||||
sprintf (buf, "%s%c%s", command_line.rpath_link,
|
sprintf (buf, "%s%c%s", command_line.rpath_link,
|
||||||
@ -1224,7 +1229,7 @@ parse_args (unsigned argc, char **argv)
|
|||||||
/* We must copy the section name as set_section_start
|
/* We must copy the section name as set_section_start
|
||||||
doesn't do it for us. */
|
doesn't do it for us. */
|
||||||
len = optarg2 - optarg;
|
len = optarg2 - optarg;
|
||||||
sec_name = xmalloc (len);
|
sec_name = (char *) xmalloc (len);
|
||||||
memcpy (sec_name, optarg, len - 1);
|
memcpy (sec_name, optarg, len - 1);
|
||||||
sec_name[len - 1] = 0;
|
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
|
/* There was no existing value so we must create a new segment
|
||||||
entry. */
|
entry. */
|
||||||
seg = stat_alloc (sizeof (*seg));
|
seg = (segment_type *) stat_alloc (sizeof (*seg));
|
||||||
seg->name = name;
|
seg->name = name;
|
||||||
seg->value = val;
|
seg->value = val;
|
||||||
seg->used = FALSE;
|
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 = &((*ptr)->next);
|
||||||
}
|
}
|
||||||
|
|
||||||
*ptr = xmalloc (sizeof (struct section_name_struct));
|
*ptr = (struct section_name_struct *)
|
||||||
|
xmalloc (sizeof (struct section_name_struct));
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,10 +207,10 @@ mri_draw_tree (void)
|
|||||||
base = p->vma ? p->vma : exp_nameop (NAME, ".");
|
base = p->vma ? p->vma : exp_nameop (NAME, ".");
|
||||||
|
|
||||||
lang_enter_output_section_statement (p->name, base,
|
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);
|
align, subalign, NULL, 0);
|
||||||
base = 0;
|
base = 0;
|
||||||
tmp = xmalloc (sizeof *tmp);
|
tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
|
||||||
tmp->next = NULL;
|
tmp->next = NULL;
|
||||||
tmp->spec.name = p->name;
|
tmp->spec.name = p->name;
|
||||||
tmp->spec.exclude_name_list = NULL;
|
tmp->spec.exclude_name_list = NULL;
|
||||||
@ -220,7 +221,7 @@ mri_draw_tree (void)
|
|||||||
for (aptr = alias; aptr; aptr = aptr->next)
|
for (aptr = alias; aptr; aptr = aptr->next)
|
||||||
if (strcmp (aptr->alias, p->name) == 0)
|
if (strcmp (aptr->alias, p->name) == 0)
|
||||||
{
|
{
|
||||||
tmp = xmalloc (sizeof *tmp);
|
tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
|
||||||
tmp->next = NULL;
|
tmp->next = NULL;
|
||||||
tmp->spec.name = aptr->name;
|
tmp->spec.name = aptr->name;
|
||||||
tmp->spec.exclude_name_list = NULL;
|
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 ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\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"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -5907,13 +5907,15 @@ byte_re_match_2_internal (struct re_pattern_buffer *bufp,
|
|||||||
/* If we haven't matched the entire string, and we want the
|
/* If we haven't matched the entire string, and we want the
|
||||||
longest match, try backtracking. */
|
longest match, try backtracking. */
|
||||||
if (d != end_match_2)
|
if (d != end_match_2)
|
||||||
|
{
|
||||||
|
/* 1 if this match is the best seen so far. */
|
||||||
|
boolean best_match_p;
|
||||||
|
|
||||||
{
|
{
|
||||||
/* 1 if this match ends in the same string (string1 or string2)
|
/* 1 if this match ends in the same string (string1 or string2)
|
||||||
as the best previous match. */
|
as the best previous match. */
|
||||||
boolean same_str_p = (FIRST_STRING_P (match_end)
|
boolean same_str_p = (FIRST_STRING_P (match_end)
|
||||||
== MATCHING_IN_FIRST_STRING);
|
== 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
|
/* AIX compiler got confused when this was combined
|
||||||
with the previous declaration. */
|
with the previous declaration. */
|
||||||
@ -5923,7 +5925,7 @@ byte_re_match_2_internal (struct re_pattern_buffer *bufp,
|
|||||||
best_match_p = !MATCHING_IN_FIRST_STRING;
|
best_match_p = !MATCHING_IN_FIRST_STRING;
|
||||||
|
|
||||||
DEBUG_PRINT1 ("backtracking.\n");
|
DEBUG_PRINT1 ("backtracking.\n");
|
||||||
|
}
|
||||||
if (!FAIL_STACK_EMPTY ())
|
if (!FAIL_STACK_EMPTY ())
|
||||||
{ /* More failure points to try. */
|
{ /* 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>
|
2009-09-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||||||
|
|
||||||
* s390-dis.c (print_insn_s390): Avoid 'long long'.
|
* s390-dis.c (print_insn_s390): Avoid 'long long'.
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\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"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
Reference in New Issue
Block a user