Submitted By: Jim Gifford (jim at linuxfromscratch dot org) Date: 10-29-2007 Initial Package Version: 2.18 Origin: Upstream Upstream Status: Applied Description: This is a branch update for binutils-2.18, and should be rechecked periodically. diff -Naur binutils-2.18.orig/bfd/ChangeLog binutils-2.18/bfd/ChangeLog --- binutils-2.18.orig/bfd/ChangeLog 2007-08-28 13:20:54.000000000 -0700 +++ binutils-2.18/bfd/ChangeLog 2007-10-27 01:57:02.000000000 -0700 @@ -1,3 +1,45 @@ +2007-10-27 Daniel Jacobowitz + + * elfxx-mips.c (mips_elf_sort_hash_table_f): Handle forced + local symbols specially. + (mips_elf_set_global_got_offset): Skip forced local symbols. + +2007-10-25 Joseph Myers + + * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Do not add + PT_NULL header when not linking. + +2007-10-25 Daniel Jacobowitz + + * elf.c (assign_file_positions_for_load_sections): Trust + p_align_valid. + (copy_elf_program_header): Copy PT_NULL segments. + +2007-10-12 Daniel Jacobowitz + + * elfxx-mips.c (mips_elf_sort_hash_table_f): Handle forced + local symbols specially. + (mips_elf_set_global_got_offset): Skip forced local symbols. + +2007-09-14 Alan Modra + + * opncls.c (find_separate_debug_file): Ensure bfd_set_error has + been called on all error return paths. + (bfd_fill_in_gnu_debuglink_section): Use bfd_malloc, not malloc. + Clear padding after filename + +2007-09-14 Alan Modra + + * format.c (bfd_check_format_matches): Record matching targets even + when "matching" is NULL to allow bfd_associated_vector matches. + Consolidate error return code. Consolidate ok return code. Always + restore original target and format on error. + +2007-08-28 Daniel Jacobowitz + + * Makefile.am (RELEASE): Unset. + * Makefile.in: Regenerated. + 2007-08-28 Daniel Jacobowitz * configure.in (VERSION): Update. diff -Naur binutils-2.18.orig/bfd/elf.c binutils-2.18/bfd/elf.c --- binutils-2.18.orig/bfd/elf.c 2007-08-28 10:19:33.000000000 -0700 +++ binutils-2.18/bfd/elf.c 2007-10-25 08:31:26.000000000 -0700 @@ -4082,10 +4082,10 @@ p->p_align = maxpagesize; } - else if (m->count == 0) - p->p_align = 1 << bed->s->log_file_align; else if (m->p_align_valid) p->p_align = m->p_align; + else if (m->count == 0) + p->p_align = 1 << bed->s->log_file_align; else p->p_align = 0; @@ -5563,10 +5563,6 @@ asection *first_section = NULL; asection *lowest_section = NULL; - /* FIXME: Do we need to copy PT_NULL segment? */ - if (segment->p_type == PT_NULL) - continue; - /* Compute how many sections are in this segment. */ for (section = ibfd->sections, section_count = 0; section != NULL; diff -Naur binutils-2.18.orig/bfd/elfxx-mips.c binutils-2.18/bfd/elfxx-mips.c --- binutils-2.18.orig/bfd/elfxx-mips.c 2007-08-24 07:01:08.000000000 -0700 +++ binutils-2.18/bfd/elfxx-mips.c 2007-10-26 10:58:52.000000000 -0700 @@ -2797,7 +2797,8 @@ /* Global symbols that need GOT entries that are not explicitly referenced are marked with got offset 2. Those that are referenced get a 1, and those that don't need GOT entries get - -1. */ + -1. Forced local symbols may also be marked with got offset 1, + but are never given global GOT entries. */ if (h->root.got.offset == 2) { BFD_ASSERT (h->tls_type == GOT_NORMAL); @@ -2806,7 +2807,7 @@ hsd->low = (struct elf_link_hash_entry *) h; h->root.dynindx = hsd->max_unref_got_dynindx++; } - else if (h->root.got.offset != 1) + else if (h->root.got.offset != 1 || h->forced_local) h->root.dynindx = hsd->max_non_got_dynindx++; else { @@ -3269,6 +3270,7 @@ if (entry->abfd != NULL && entry->symndx == -1 && entry->d.h->root.dynindx != -1 + && !entry->d.h->forced_local && entry->d.h->tls_type == GOT_NORMAL) { if (g) @@ -9325,7 +9327,7 @@ bfd_boolean _bfd_mips_elf_modify_segment_map (bfd *abfd, - struct bfd_link_info *info ATTRIBUTE_UNUSED) + struct bfd_link_info *info) { asection *s; struct elf_segment_map *m, **pm; @@ -9550,8 +9552,12 @@ header instead, and avoid the need to move any sections. There is a long tradition of allocating spare dynamic tags, so allocating a spare program header seems like a natural - extension. */ - if (!SGI_COMPAT (abfd) + extension. + + If INFO is NULL, we may be copying an already prelinked binary + with objcopy or strip, so do not add this header. */ + if (info != NULL + && !SGI_COMPAT (abfd) && bfd_get_section_by_name (abfd, ".dynamic")) { for (pm = &elf_tdata (abfd)->segment_map; *pm != NULL; pm = &(*pm)->next) diff -Naur binutils-2.18.orig/bfd/format.c binutils-2.18/bfd/format.c --- binutils-2.18.orig/bfd/format.c 2007-08-06 12:59:36.000000000 -0700 +++ binutils-2.18/bfd/format.c 2007-10-12 07:09:21.000000000 -0700 @@ -125,6 +125,9 @@ int match_count; int ar_match_index; + if (matching != NULL) + *matching = NULL; + if (!bfd_read_p (abfd) || (unsigned int) abfd->format >= (unsigned int) bfd_type_end) { @@ -141,11 +144,10 @@ match_count = 0; ar_match_index = _bfd_target_vector_entries; - if (matching) + if (matching != NULL || *bfd_associated_vector != NULL) { bfd_size_type amt; - *matching = NULL; amt = sizeof (*matching_vector) * 2 * _bfd_target_vector_entries; matching_vector = bfd_malloc (amt); if (!matching_vector) @@ -162,31 +164,12 @@ if (!abfd->target_defaulted) { if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) /* rewind! */ - { - if (matching) - free (matching_vector); - return FALSE; - } + goto err_ret; right_targ = BFD_SEND_FMT (abfd, _bfd_check_format, (abfd)); if (right_targ) - { - abfd->xvec = right_targ; /* Set the target as returned. */ - - if (matching) - free (matching_vector); - - /* If the file was opened for update, then `output_has_begun' - some time ago when the file was created. Do not recompute - sections sizes or alignments in _bfd_set_section_contents. - We can not set this flag until after checking the format, - because it will interfere with creation of BFD sections. */ - if (abfd->direction == both_direction) - abfd->output_has_begun = TRUE; - - return TRUE; /* File position has moved, BTW. */ - } + goto ok_ret; /* For a long time the code has dropped through to check all targets if the specified target was wrong. I don't know why, @@ -201,17 +184,7 @@ this sort, I changed this test to check only for the binary target. */ if (format == bfd_archive && save_targ == &binary_vec) - { - abfd->xvec = save_targ; - abfd->format = bfd_unknown; - - if (matching) - free (matching_vector); - - bfd_set_error (bfd_error_file_not_recognized); - - return FALSE; - } + goto err_unrecog; } for (target = bfd_target_vector; *target != NULL; target++) @@ -227,11 +200,7 @@ abfd->xvec = *target; /* Change BFD's target temporarily. */ if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - { - if (matching) - free (matching_vector); - return FALSE; - } + goto err_ret; /* If _bfd_check_format neglects to set bfd_error, assume bfd_error_wrong_format. We didn't used to even pay any @@ -255,9 +224,8 @@ break; } - if (matching) + if (matching_vector) matching_vector[match_count] = temp; - match_count++; } else if ((err = bfd_get_error ()) == bfd_error_wrong_object_format @@ -268,20 +236,12 @@ no better matches. */ if (ar_right_targ != bfd_default_vector[0]) ar_right_targ = *target; - if (matching) + if (matching_vector) matching_vector[ar_match_index] = *target; ar_match_index++; } else if (err != bfd_error_wrong_format) - { - abfd->xvec = save_targ; - abfd->format = bfd_unknown; - - if (matching) - free (matching_vector); - - return FALSE; - } + goto err_ret; } if (match_count == 0) @@ -297,16 +257,14 @@ { match_count = ar_match_index - _bfd_target_vector_entries; - if (matching && match_count > 1) + if (matching_vector && match_count > 1) memcpy (matching_vector, matching_vector + _bfd_target_vector_entries, sizeof (*matching_vector) * match_count); } } - if (match_count > 1 - && bfd_associated_vector != NULL - && matching) + if (match_count > 1) { const bfd_target * const *assoc = bfd_associated_vector; @@ -328,11 +286,9 @@ if (match_count == 1) { + ok_ret: abfd->xvec = right_targ; /* Change BFD's target permanently. */ - if (matching) - free (matching_vector); - /* If the file was opened for update, then `output_has_begun' some time ago when the file was created. Do not recompute sections sizes or alignments in _bfd_set_section_contents. @@ -341,37 +297,39 @@ if (abfd->direction == both_direction) abfd->output_has_begun = TRUE; + if (matching_vector) + free (matching_vector); return TRUE; /* File position has moved, BTW. */ } - abfd->xvec = save_targ; /* Restore original target type. */ - abfd->format = bfd_unknown; /* Restore original format. */ - if (match_count == 0) { + err_unrecog: bfd_set_error (bfd_error_file_not_recognized); - - if (matching) + err_ret: + abfd->xvec = save_targ; + abfd->format = bfd_unknown; + if (matching_vector) free (matching_vector); + return FALSE; } - else - { - bfd_set_error (bfd_error_file_ambiguously_recognized); - if (matching) + abfd->xvec = save_targ; /* Restore original target type. */ + abfd->format = bfd_unknown; /* Restore original format. */ + bfd_set_error (bfd_error_file_ambiguously_recognized); + + if (matching) + { + *matching = (char **) matching_vector; + matching_vector[match_count] = NULL; + /* Return target names. This is a little nasty. Maybe we + should do another bfd_malloc? */ + while (--match_count >= 0) { - *matching = (char **) matching_vector; - matching_vector[match_count] = NULL; - /* Return target names. This is a little nasty. Maybe we - should do another bfd_malloc? */ - while (--match_count >= 0) - { - const char *name = matching_vector[match_count]->name; - *(const char **) &matching_vector[match_count] = name; - } + const char *name = matching_vector[match_count]->name; + *(const char **) &matching_vector[match_count] = name; } } - return FALSE; } diff -Naur binutils-2.18.orig/bfd/opncls.c binutils-2.18/bfd/opncls.c --- binutils-2.18.orig/bfd/opncls.c 2007-08-06 12:59:39.000000000 -0700 +++ binutils-2.18/bfd/opncls.c 2007-10-12 07:10:28.000000000 -0700 @@ -1216,46 +1216,48 @@ char *debugfile; unsigned long crc32; int i; + size_t dirlen; BFD_ASSERT (abfd); if (debug_file_directory == NULL) debug_file_directory = "."; /* BFD may have been opened from a stream. */ - if (! abfd->filename) - return NULL; + if (abfd->filename == NULL) + { + bfd_set_error (bfd_error_invalid_operation); + return NULL; + } basename = get_debug_link_info (abfd, & crc32); if (basename == NULL) return NULL; - if (strlen (basename) < 1) + if (basename[0] == '\0') { free (basename); + bfd_set_error (bfd_error_no_debug_section); return NULL; } - dir = strdup (abfd->filename); + for (dirlen = strlen (abfd->filename); dirlen > 0; dirlen--) + if (IS_DIR_SEPARATOR (abfd->filename[dirlen - 1])) + break; + + dir = bfd_malloc (dirlen + 1); if (dir == NULL) { free (basename); return NULL; } - BFD_ASSERT (strlen (dir) != 0); - - /* Strip off filename part. */ - for (i = strlen (dir) - 1; i >= 0; i--) - if (IS_DIR_SEPARATOR (dir[i])) - break; + memcpy (dir, abfd->filename, dirlen); + dir[dirlen] = '\0'; - dir[i + 1] = '\0'; - BFD_ASSERT (dir[i] == '/' || dir[0] == '\0'); - - debugfile = malloc (strlen (debug_file_directory) + 1 - + strlen (dir) - + strlen (".debug/") - + strlen (basename) - + 1); + debugfile = bfd_malloc (strlen (debug_file_directory) + 1 + + dirlen + + strlen (".debug/") + + strlen (basename) + + 1); if (debugfile == NULL) { free (basename); @@ -1434,6 +1436,7 @@ FILE * handle; static unsigned char buffer[8 * 1024]; size_t count; + size_t filelen; if (abfd == NULL || sect == NULL || filename == NULL) { @@ -1463,21 +1466,22 @@ now that we no longer need them. */ filename = lbasename (filename); - debuglink_size = strlen (filename) + 1; + filelen = strlen (filename); + debuglink_size = filelen + 1; debuglink_size += 3; debuglink_size &= ~3; debuglink_size += 4; - contents = malloc (debuglink_size); + contents = bfd_malloc (debuglink_size); if (contents == NULL) { /* XXX Should we delete the section from the bfd ? */ - bfd_set_error (bfd_error_no_memory); return FALSE; } - strcpy (contents, filename); crc_offset = debuglink_size - 4; + memcpy (contents, filename, filelen); + memset (contents + filelen, 0, crc_offset - filelen); bfd_put_32 (abfd, crc32, contents + crc_offset); diff -Naur binutils-2.18.orig/bfd/version.h binutils-2.18/bfd/version.h --- binutils-2.18.orig/bfd/version.h 2007-08-28 10:19:33.000000000 -0700 +++ binutils-2.18/bfd/version.h 2007-10-28 16:00:10.000000000 -0700 @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20070828 +#define BFD_VERSION_DATE 20071029 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff -Naur binutils-2.18.orig/config.sub binutils-2.18/config.sub --- binutils-2.18.orig/config.sub 2007-08-06 13:00:30.000000000 -0700 +++ binutils-2.18/config.sub 2007-08-29 01:58:58.000000000 -0700 @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. -timestamp='2007-04-29' +timestamp='2007-08-29' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -479,6 +479,10 @@ basic_machine=cr16c-unknown os=-elf ;; + cr16) + basic_machine=cr16-unknown + os=-elf + ;; crds | unos) basic_machine=m68k-crds ;; diff -Naur binutils-2.18.orig/configure binutils-2.18/configure --- binutils-2.18.orig/configure 2007-08-06 13:29:40.000000000 -0700 +++ binutils-2.18/configure 2007-10-12 07:03:20.000000000 -0700 @@ -6128,7 +6128,7 @@ # For an installed makeinfo, we require it to be from texinfo 4.4 or # higher, else we use the "missing" dummy. if ${MAKEINFO} --version \ - | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then + | egrep 'texinfo[^0-9]*(4\.([4-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then : else MAKEINFO="$MISSING makeinfo" diff -Naur binutils-2.18.orig/configure.ac binutils-2.18/configure.ac --- binutils-2.18.orig/configure.ac 2007-08-28 13:24:26.000000000 -0700 +++ binutils-2.18/configure.ac 2007-10-12 07:03:20.000000000 -0700 @@ -158,7 +158,7 @@ # know that we are building the simulator. # binutils, gas and ld appear in that order because it makes sense to run # "make check" in that particular order. -host_tools="byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools" +host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools" # libgcj represents the runtime libraries only used by gcj. libgcj="target-libffi \ @@ -2403,7 +2403,7 @@ # For an installed makeinfo, we require it to be from texinfo 4.4 or # higher, else we use the "missing" dummy. if ${MAKEINFO} --version \ - | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then + | egrep 'texinfo[^0-9]*(4\.([4-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then : else MAKEINFO="$MISSING makeinfo" diff -Naur binutils-2.18.orig/gprof/ChangeLog binutils-2.18/gprof/ChangeLog --- binutils-2.18.orig/gprof/ChangeLog 2007-08-24 07:04:53.000000000 -0700 +++ binutils-2.18/gprof/ChangeLog 2007-08-30 06:31:50.000000000 -0700 @@ -1,3 +1,7 @@ +2007-08-30 Nick Clifton + + * po/fi.po: Updated Finnish translation. + 2007-08-24 Daniel Jacobowitz * po/sv.po: Updated Swedish translation. diff -Naur binutils-2.18.orig/gprof/po/fi.po binutils-2.18/gprof/po/fi.po --- binutils-2.18.orig/gprof/po/fi.po 2007-08-11 06:17:01.000000000 -0700 +++ binutils-2.18/gprof/po/fi.po 2007-08-30 06:31:50.000000000 -0700 @@ -8,7 +8,7 @@ "Project-Id-Version: gprof 2.17.90\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-05-15 16:49+0930\n" -"PO-Revision-Date: 2007-08-10 16:17+0300\n" +"PO-Revision-Date: 2007-08-29 20:12+0300\n" "Last-Translator: Jorma Karvonen \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" @@ -23,17 +23,17 @@ #: alpha.c:107 mips.c:59 #, c-format msgid "[find_call] %s: 0x%lx to 0x%lx\n" -msgstr "[find_call] %s: 0x%lx to 0x%lx\n" +msgstr "[etsi_kutsu] %s: 0x%lx arvoon 0x%lx\n" #: alpha.c:129 #, c-format msgid "[find_call] 0x%lx: jsr%s \n" -msgstr "[find_call] 0x%lx: jsr%s \n" +msgstr "[etsi_kutsu] 0x%lx: jsr%s-käsky \n" #: alpha.c:139 #, c-format msgid "[find_call] 0x%lx: bsr" -msgstr "[find_call] 0x%lx: bsr" +msgstr "[etsi_kutsu] 0x%lx: bsr-käsky" # ensimmäinen %s whoami, toinen %s filename #: basic_blocks.c:128 call_graph.c:89 hist.c:105 @@ -51,7 +51,7 @@ #: basic_blocks.c:289 basic_blocks.c:299 #, c-format msgid "%s:%d: (%s:0x%lx) %lu executions\n" -msgstr "%s:%d: (%s:0x%lx) %lu suorituksia\n" +msgstr "%s:%d: (%s:0x%lx) %lu suoritusta\n" #: basic_blocks.c:290 basic_blocks.c:300 msgid "" @@ -125,7 +125,7 @@ "\t\t Call graph (explanation follows)\n" "\n" msgstr "" -"\t\t Kutsugrafiikka (selitys seuraa)\n" +"\t\t Kutsugraafi (selitys seuraa)\n" "\n" #: cg_print.c:75 @@ -134,7 +134,7 @@ "\t\t\tCall graph\n" "\n" msgstr "" -"\t\t\tKutsugrafiikka\n" +"\t\t\tKutsugraafi\n" "\n" #: cg_print.c:78 hist.c:466 @@ -256,7 +256,7 @@ #: corefile.c:177 #, c-format msgid "%s: can't find .text section in %s\n" -msgstr "%s: ei löydy \".text\"-lohkoa kohteesta %s\n" +msgstr "%s: ei löydy ”.text”-lohkoa kohteesta %s\n" #: corefile.c:252 #, c-format @@ -276,7 +276,7 @@ #: corefile.c:470 #, c-format msgid "%s: file `%s' has no symbols\n" -msgstr "%s: tiedostossa \"%s\" ei ole symboleja\n" +msgstr "%s: tiedostossa ”%s” ei ole symboleja\n" #: corefile.c:772 #, c-format @@ -296,12 +296,12 @@ #: gmon_io.c:330 gmon_io.c:459 #, c-format msgid "%s: file `%s' has bad magic cookie\n" -msgstr "%s: tiedostossa \"%s\" on virheellinen maaginen pipari\n" +msgstr "%s: tiedostossa ”%s” on virheellinen maaginen pipari\n" #: gmon_io.c:341 #, c-format msgid "%s: file `%s' has unsupported version %d\n" -msgstr "%s: tiedostossa \"%s\" on tukematon versio %d\n" +msgstr "%s: tiedostossa ”%s” on tukematon versio %d\n" #: gmon_io.c:371 #, c-format @@ -321,12 +321,12 @@ #: gmon_io.c:516 #, c-format msgid "%s: file '%s' does not appear to be in gmon.out format\n" -msgstr "%s: tiedosto \"%s\" ei vaikuta olevan \"gmon.out\"-muotoinen\n" +msgstr "%s: tiedosto ”%s” ei vaikuta olevan ”gmon.out”-muotoinen\n" #: gmon_io.c:529 #, c-format msgid "%s: unexpected EOF after reading %d/%d bins\n" -msgstr "%s: odottamaton tiedoston loppumerkki \"%d/%d bins\"-lukemisen jälkeen\n" +msgstr "%s: odottamaton tiedoston loppumerkki ”%d/%d bins”-lukemisen jälkeen\n" #: gmon_io.c:563 #, c-format @@ -341,7 +341,7 @@ #: gmon_io.c:576 #, c-format msgid "File `%s' (version %d) contains:\n" -msgstr "Tiedosto \"%s\" (versio %d) sisältää:\n" +msgstr "Tiedosto ”%s” (versio %d) sisältää:\n" #: gmon_io.c:579 #, c-format @@ -356,12 +356,12 @@ #: gmon_io.c:582 #, c-format msgid "\t%d call-graph record\n" -msgstr "\t%d kutsugrafiikkatietue\n" +msgstr "\t%d kutsugraafitietue\n" #: gmon_io.c:583 #, c-format msgid "\t%d call-graph records\n" -msgstr "\t%d kutsugrafiikkatietueet\n" +msgstr "\t%d kutsugraafitietueet\n" #: gmon_io.c:585 #, c-format @@ -407,12 +407,12 @@ #: gprof.c:174 #, c-format msgid "Report bugs to %s\n" -msgstr "Raportoi virheestä osoitteeseen %s\n" +msgstr "Lähetä raportit ohjelmistovioista (englanniksi) osoitteeseen %s\n" #: gprof.c:250 #, c-format msgid "%s: debugging not supported; -d ignored\n" -msgstr "%s: debuggausta ei tueta; -d ei oteta huomioon\n" +msgstr "%s: debuggausta ei tueta; -d:tä ei oteta huomioon\n" #: gprof.c:330 #, c-format @@ -428,7 +428,7 @@ #: gprof.c:415 #, c-format msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n" -msgstr "Perustuu BSD gprof, copyright 1983 Regents of the University of California.\n" +msgstr "Perustuu BSD:n gprofiin, copyright 1983 Regents of the University of California.\n" #: gprof.c:416 #, c-format @@ -438,27 +438,27 @@ #: gprof.c:457 #, c-format msgid "%s: unknown demangling style `%s'\n" -msgstr "%s: tuntematon eheytystyyli \"%s\"\n" +msgstr "%s: tuntematon eheytystyyli ”%s”\n" #: gprof.c:477 #, c-format msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n" -msgstr "%s: Vain joko \"--function-ordering\" tai \"--file-ordering\" saadaan määritellä.\n" +msgstr "%s: Vain joko ”--function-ordering” tai ”--file-ordering” saadaan määritellä.\n" #: gprof.c:527 #, c-format msgid "%s: sorry, file format `prof' is not yet supported\n" -msgstr "%s: valitettavasti tiedostomuotoa \"prof\" ei vielä tueta\n" +msgstr "%s: valitettavasti tiedostomuotoa ”prof” ei vielä tueta\n" #: gprof.c:581 #, c-format msgid "%s: gmon.out file is missing histogram\n" -msgstr "%s: \"gmon.out\"-tiedosto puuttuu histogrammista\n" +msgstr "%s: ”gmon.out”-tiedosto puuttuu histogrammista\n" #: gprof.c:588 #, c-format msgid "%s: gmon.out file is missing call-graph data\n" -msgstr "%s: \"gmon.out\"-tiedosto puuttuu kutsugrafiikkadatasta\n" +msgstr "%s: ”gmon.out”-tiedosto puuttuu kutsugraafidatasta\n" #: hist.c:133 #, c-format @@ -468,8 +468,8 @@ "%s: to '%s'\n" msgstr "" "%s: mittasuhdeyksikkö muuttui histogrammitietueiden välillä\n" -"%s: arvosta \"%s\"\n" -"%s: arvoon \"%s\"\n" +"%s: arvosta ”%s”\n" +"%s: arvoon ”%s”\n" #: hist.c:143 #, c-format @@ -479,8 +479,8 @@ "%s: to '%c'\n" msgstr "" "%s: mittasuhdelyhenne muuttui histogrammitietueiden välillä\n" -"%s: arvosta \"%c\"\n" -"%s: arvoon \"%c\"\n" +"%s: arvosta ”%c”\n" +"%s: arvoon ”%c”\n" #: hist.c:157 #, c-format @@ -508,7 +508,7 @@ " for %.2f%% of %.2f %s\n" "\n" msgstr "" -" kohteelle %.2f%% of %.2f %s\n" +" kohteelle %.2f%% / %.2f %s\n" "\n" #: hist.c:476 @@ -526,7 +526,7 @@ " no time accumulated\n" "\n" msgstr "" -" ei akkumuloitunutta aikaa\n" +" ei kerääntynyttä aikaa\n" "\n" #: hist.c:488 @@ -575,17 +575,17 @@ #: mips.c:71 #, c-format msgid "[find_call] 0x%lx: jal" -msgstr "[find_call] 0x%lx: jal-käsky" +msgstr "[etsi_kutsu] 0x%lx: jal-käsky" #: mips.c:96 #, c-format msgid "[find_call] 0x%lx: jalr\n" -msgstr "[find_call] 0x%lx: jalr-käsky (epäsuora kutsu)\n" +msgstr "[etsi_kutsu] 0x%lx: jalr-käsky (epäsuora kutsu)\n" #: source.c:162 #, c-format msgid "%s: could not locate `%s'\n" -msgstr "%s: ei voitu paikantaa \"%s\"\n" +msgstr "%s: ei voitu paikantaa ”%s”\n" #: source.c:237 #, c-format