# translation of gprof-2.19.90.po to Finnish
# Copyright © 2007, 2009 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
# Jorma Karvonen <karvjorm@users.sf.net>, 2007.
# Jorma Karvonen <karvonen.jorma@gmail.com>, 2009
#
msgid ""
msgstr ""
"Project-Id-Version: gprof 2.19.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2009-09-07 14:10+0200\n"
"PO-Revision-Date: 2009-09-14 15:52+0200\n"
"Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: KBabel 1.11.2\n"

#: alpha.c:102 mips.c:54
msgid "<indirect child>"
msgstr "<epäsuora lapsi>"

#: alpha.c:107 mips.c:59
#, c-format
msgid "[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 <indirect_child>\n"
msgstr "[etsi_kutsu] 0x%lx: jsr%s-käsky <epäsuora_lapsi>\n"

#: alpha.c:139
#, c-format
msgid "[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
#, c-format
msgid "%s: %s: unexpected end of file\n"
msgstr "%s: %s: tiedoston odottamaton loppu\n"

#  basic-block record
#: basic_blocks.c:196
#, c-format
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
msgstr "%s: varoitus: ei oteta huomioon peruslohkotietueen suorituslukumäärää (käytä -l tai --line)\n"

#. FIXME: This only works if bfd_vma is unsigned long.
#: 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 suoritusta\n"

#: basic_blocks.c:290 basic_blocks.c:300
msgid "<unknown>"
msgstr "<tuntematon>"

#: basic_blocks.c:543
#, c-format
msgid ""
"\n"
"\n"
"Top %d Lines:\n"
"\n"
"     Line      Count\n"
"\n"
msgstr ""
"\n"
"\n"
"Ensimmäiset %d riviä:\n"
"\n"
"     Rivi      Lukumäärä\n"
"\n"

#: basic_blocks.c:567
#, c-format
msgid ""
"\n"
"Execution Summary:\n"
"\n"
msgstr ""
"\n"
"Suoritusyhteenveto:\n"
"\n"

#: basic_blocks.c:568
#, c-format
msgid "%9ld   Executable lines in this file\n"
msgstr "%9ld   Tämän tiedoston suoritettavat rivit\n"

#: basic_blocks.c:570
#, c-format
msgid "%9ld   Lines executed\n"
msgstr "%9ld   Suoritetut rivit\n"

#: basic_blocks.c:571
#, c-format
msgid "%9.2f   Percent of the file executed\n"
msgstr "%9.2f   Suoritetun tiedoston prosentti\n"

#: basic_blocks.c:575
#, c-format
msgid ""
"\n"
"%9lu   Total number of line executions\n"
msgstr ""
"\n"
"%9lu   Yhteensä suoritusrivejä\n"

#: basic_blocks.c:577
#, c-format
msgid "%9.2f   Average executions per line\n"
msgstr "%9.2f   Keskimäärin suorituksia riviä kohden\n"

#: call_graph.c:68
#, c-format
msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
msgstr "[cg_tally] kaarisektori vanhempinimestä %s lapsinimeen %s käyty lävitse %lu kertaa\n"

#: cg_print.c:74
#, c-format
msgid ""
"\t\t     Call graph (explanation follows)\n"
"\n"
msgstr ""
"\t\t     Kutsugraafi (selitys seuraa)\n"
"\n"

#: cg_print.c:76
#, c-format
msgid ""
"\t\t\tCall graph\n"
"\n"
msgstr ""
"\t\t\tKutsugraafi\n"
"\n"

#: cg_print.c:79 hist.c:466
#, c-format
msgid ""
"\n"
"granularity: each sample hit covers %ld byte(s)"
msgstr ""
"\n"
"hienosyisyys: jokainen näyteosuma kattaa %ld tavua"

#: cg_print.c:83
#, c-format
msgid ""
" for %.2f%% of %.2f seconds\n"
"\n"
msgstr ""
" aika: %.2f%% / %.2f sekuntia\n"
"\n"

#: cg_print.c:87
#, c-format
msgid ""
" no time propagated\n"
"\n"
msgstr ""
" ei aikaa kulunut\n"
"\n"

#: cg_print.c:96 cg_print.c:99 cg_print.c:101
msgid "called"
msgstr "kutsuttu"

#: cg_print.c:96 cg_print.c:101
msgid "total"
msgstr "yhteensä"

#: cg_print.c:96
msgid "parents"
msgstr "vanhemmat"

#: cg_print.c:98 cg_print.c:99
msgid "index"
msgstr "indeksi"

#  Tässä on ilmeisesti virhe ja prosenttimerkin pitäisi jäädä pois. Kyseinen kohta on seuraava:
#  _("index"), _("%time"), _("self"), _("descendants"),
#  _("called"), _("self"), _("name"), _("index"));
#: cg_print.c:98
#, c-format
msgid "%time"
msgstr "%time"

#: cg_print.c:98 cg_print.c:99
msgid "self"
msgstr "itse"

#: cg_print.c:98
msgid "descendants"
msgstr "jälkeläiset"

#: cg_print.c:99 hist.c:492
msgid "name"
msgstr "nimi"

#: cg_print.c:101
msgid "children"
msgstr "lapset"

#: cg_print.c:106
#, c-format
msgid "index %% time    self  children    called     name\n"
msgstr "indeksi %% aika    itse  lapset    kutsuttu     nimi\n"

#: cg_print.c:129
#, c-format
msgid " <cycle %d as a whole> [%d]\n"
msgstr " <jakso %d kokonaisena> [%d]\n"

#: cg_print.c:355
#, c-format
msgid "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s     <spontaneous>\n"
msgstr "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s     <spontaani>\n"

#: cg_print.c:356
#, c-format
msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s     <spontaneous>\n"
msgstr "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s     <spontaani>\n"

#: cg_print.c:590
#, c-format
msgid ""
"Index by function name\n"
"\n"
msgstr ""
"Indeksi funktionimittäin\n"
"\n"

#: cg_print.c:647 cg_print.c:656
#, c-format
msgid "<cycle %d>"
msgstr "<jakso %d>"

#: corefile.c:60
#, c-format
msgid "%s: unable to parse mapping file %s.\n"
msgstr "%s: mappaustiedostoa %s ei voi jäsentää.\n"

#: corefile.c:84 corefile.c:496
#, c-format
msgid "%s: could not open %s.\n"
msgstr "%s: ei voitu avata tiedostoa %s.\n"

#: corefile.c:183
#, c-format
msgid "%s: %s: not in executable format\n"
msgstr "%s: %s: ei ole suoritustiedostomuotoinen\n"

#: corefile.c:194
#, c-format
msgid "%s: can't find .text section in %s\n"
msgstr "%s: ei löydy ”.text”-lohkoa kohteesta %s\n"

#: corefile.c:269
#, c-format
msgid "%s: ran out room for %lu bytes of text space\n"
msgstr "%s: ei ollut tilaa %lu tavun tekstitilalle\n"

#: corefile.c:283
#, c-format
msgid "%s: can't do -c\n"
msgstr "%s: ei voi tehdä -c\n"

#: corefile.c:322
#, c-format
msgid "%s: -c not supported on architecture %s\n"
msgstr "%s: -c ei ole tuettu arkkitehtuurissa %s\n"

#: corefile.c:505 corefile.c:588
#, c-format
msgid "%s: file `%s' has no symbols\n"
msgstr "%s: tiedostossa ”%s” ei ole symboleja\n"

#: corefile.c:848
#, c-format
msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
msgstr "%s: joku laski väärin: ltab.len=%d eikä %ld\n"

#: gmon_io.c:84
#, c-format
msgid "%s: address size has unexpected value of %u\n"
msgstr "%s: osoitekoossa on odottamaton arvo %u\n"

#: gmon_io.c:319 gmon_io.c:415
#, c-format
msgid "%s: file too short to be a gmon file\n"
msgstr "%s: tiedosto on liian lyhyt, jotta se olisi gmon-tiedosto\n"

#: gmon_io.c:329 gmon_io.c:458
#, c-format
msgid "%s: file `%s' has bad magic cookie\n"
msgstr "%s: tiedostossa ”%s” on virheellinen maaginen pipari\n"

#: gmon_io.c:340
#, c-format
msgid "%s: file `%s' has unsupported version %d\n"
msgstr "%s: tiedostossa ”%s” on tukematon versio %d\n"

#: gmon_io.c:370
#, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
msgstr "%s: %s: virheellinen tunniste %d löytyi (tiedosto rikkinäinen?)\n"

#: gmon_io.c:437
#, c-format
msgid "%s: profiling rate incompatible with first gmon file\n"
msgstr "%s: profilointinopeus ei ole yhteensopiva ensimmäisen gmon-tiedoston kanssa\n"

#: gmon_io.c:488
#, c-format
msgid "%s: incompatible with first gmon file\n"
msgstr "%s: ei ole yhteensopiva ensimmäisen gmon-tiedoston kanssa\n"

#: gmon_io.c:518
#, 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"

#: gmon_io.c:531
#, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n"
msgstr "%s: odottamaton tiedoston loppumerkki ”%d/%d bins”-lukemisen jälkeen\n"

#: gmon_io.c:565
#, c-format
msgid "time is in ticks, not seconds\n"
msgstr "aika on ticks-yksikköinä, ei sekunteina\n"

#: gmon_io.c:571 gmon_io.c:748
#, c-format
msgid "%s: don't know how to deal with file format %d\n"
msgstr "%s: ei tiedetä, kuinka tiedostomuotoa %d pitää käsitellä\n"

#: gmon_io.c:578
#, c-format
msgid "File `%s' (version %d) contains:\n"
msgstr "Tiedosto ”%s” (versio %d) sisältää:\n"

#: gmon_io.c:581
#, c-format
msgid "\t%d histogram record\n"
msgstr "\t%d histogrammitietue\n"

#: gmon_io.c:582
#, c-format
msgid "\t%d histogram records\n"
msgstr "\t%d histogrammitietueet\n"

#: gmon_io.c:584
#, c-format
msgid "\t%d call-graph record\n"
msgstr "\t%d kutsugraafitietue\n"

#: gmon_io.c:585
#, c-format
msgid "\t%d call-graph records\n"
msgstr "\t%d kutsugraafitietueet\n"

#: gmon_io.c:587
#, c-format
msgid "\t%d basic-block count record\n"
msgstr "\t%d peruslohkolukumäärätietue\n"

#: gmon_io.c:588
#, c-format
msgid "\t%d basic-block count records\n"
msgstr "\t%d peruslohkolukumäärätietueet\n"

#: gprof.c:159
#, c-format
msgid ""
"Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqSQZ][name]] [-I dirs]\n"
"\t[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n"
"\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n"
"\t[--[no-]flat-profile[=name]] [--[no-]graph[=name]]\n"
"\t[--[no-]time=name] [--all-lines] [--brief] [--debug[=level]]\n"
"\t[--function-ordering] [--file-ordering]\n"
"\t[--directory-path=dirs] [--display-unused-functions]\n"
"\t[--file-format=name] [--file-info] [--help] [--line] [--min-count=n]\n"
"\t[--no-static] [--print-path] [--separate-files]\n"
"\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n"
"\t[--version] [--width=n] [--ignore-non-functions]\n"
"\t[--demangle[=STYLE]] [--no-demangle] [--external-symbol-table=name] [@FILE]\n"
"\t[image-file] [profile-file...]\n"
msgstr ""
"Käyttö: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][nimi]] [-I hakemistot]\n"
"\t[-d[num]] [-k kohteesta/kohteeseen] [-m minimilukumäärä] [-t taulupituus]\n"
"\t[--[no-]annotated-source[=nimi]] [--[no-]exec-counts[=nimi]]\n"
"\t[--[no-]flat-profile[=nimi]] [--[no-]graph[=nimi]]\n"
"\t[--[no-]time=nimi] [--all-lines] [--brief] [--debug[=taso]]\n"
"\t[--function-ordering] [--file-ordering]\n"
"\t[--directory-path=hakemistot] [--display-unused-functions]\n"
"\t[--file-format=nimi] [--file-info] [--help] [--line] [--min-count=n]\n"
"\t[--no-static] [--print-path] [--separate-files]\n"
"\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n"
"\t[--version] [--width=n] [--ignore-non-functions]\n"
"\t[--demangle[=TYYLI]] [--no-demangle] [--external-symbol-table=name] [@TIEDOSTO]\n"
"\t[vedostiedosto] [profiilitiedosto...]\n"

#: gprof.c:175
#, c-format
msgid "Report bugs to %s\n"
msgstr "Lähetä raportit ohjelmistovioista (englanniksi) osoitteeseen %s\n"

#: gprof.c:251
#, c-format
msgid "%s: debugging not supported; -d ignored\n"
msgstr "%s: debuggausta ei tueta; -d:tä ei oteta huomioon\n"

#: gprof.c:331
#, c-format
msgid "%s: unknown file format %s\n"
msgstr "%s: tuntematon tiedostomuoto %s\n"

#. This output is intended to follow the GNU standards document.
#: gprof.c:419
#, c-format
msgid "GNU gprof %s\n"
msgstr "GNU gprof %s\n"

#: gprof.c:420
#, c-format
msgid "Based on 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:421
#, c-format
msgid "This program is free software.  This program has absolutely no warranty.\n"
msgstr "Tämä ohjelma on vapaa ohjelmisto. Tällä ohjelmalla ei ehdottomasti ole mitään takuuta.\n"

#: gprof.c:462
#, c-format
msgid "%s: unknown demangling style `%s'\n"
msgstr "%s: tuntematon eheytystyyli ”%s”\n"

#: gprof.c:482
#, 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"

#: gprof.c:534
#, c-format
msgid "%s: sorry, file format `prof' is not yet supported\n"
msgstr "%s: valitettavasti tiedostomuotoa ”prof” ei vielä tueta\n"

#: gprof.c:588
#, c-format
msgid "%s: gmon.out file is missing histogram\n"
msgstr "%s: ”gmon.out”-tiedosto puuttuu histogrammista\n"

#: gprof.c:595
#, c-format
msgid "%s: gmon.out file is missing call-graph data\n"
msgstr "%s: ”gmon.out”-tiedosto puuttuu kutsugraafidatasta\n"

#: hist.c:133
#, c-format
msgid ""
"%s: dimension unit changed between histogram records\n"
"%s: from '%s'\n"
"%s: to '%s'\n"
msgstr ""
"%s: mittasuhdeyksikkö muuttui histogrammitietueiden välillä\n"
"%s: arvosta ”%s”\n"
"%s: arvoon ”%s”\n"

#: hist.c:143
#, c-format
msgid ""
"%s: dimension abbreviation changed between histogram records\n"
"%s: from '%c'\n"
"%s: to '%c'\n"
msgstr ""
"%s: mittasuhdelyhenne muuttui histogrammitietueiden välillä\n"
"%s: arvosta ”%c”\n"
"%s: arvoon ”%c”\n"

#: hist.c:157
#, c-format
msgid "%s: different scales in histogram records"
msgstr "%s: histogrammitietueissa on erilaiset skaalat"

#: hist.c:194
#, c-format
msgid "%s: overlapping histogram records\n"
msgstr "%s: histogrammitietueet menevät päällekkäin\n"

#: hist.c:228
#, c-format
msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
msgstr "%s: %s: odottamaton tiedoston loppumerkki, kun oli luettu %u kaikkiaan %u näytteestä\n"

#: hist.c:462
#, c-format
msgid "%c%c/call"
msgstr "%c%c/kutsu"

#: hist.c:470
#, c-format
msgid ""
" for %.2f%% of %.2f %s\n"
"\n"
msgstr ""
" kohteelle %.2f%% / %.2f %s\n"
"\n"

#: hist.c:476
#, c-format
msgid ""
"\n"
"Each sample counts as %g %s.\n"
msgstr ""
"\n"
"Jokainen näyte lasketaan arvona %g %s.\n"

#: hist.c:481
#, c-format
msgid ""
" no time accumulated\n"
"\n"
msgstr ""
" ei kerääntynyttä aikaa\n"
"\n"

#: hist.c:488
msgid "cumulative"
msgstr "kumulatiivinen"

#: hist.c:488
msgid "self  "
msgstr "itse  "

#: hist.c:488
msgid "total "
msgstr "yhteensä "

#: hist.c:491
msgid "time"
msgstr "aika"

#: hist.c:491
msgid "calls"
msgstr "kutsut"

#: hist.c:580
#, c-format
msgid ""
"\n"
"\n"
"\n"
"flat profile:\n"
msgstr ""
"\n"
"\n"
"\n"
"litteä profiili:\n"

#: hist.c:586
#, c-format
msgid "Flat profile:\n"
msgstr "Litteä profiili:\n"

#: hist.c:705
#, c-format
msgid "%s: found a symbol that covers several histogram records"
msgstr "%s: löydetty symboli, joka kattaa useita histogrammitietueita"

#: mips.c:71
#, c-format
msgid "[find_call] 0x%lx: jal"
msgstr "[etsi_kutsu] 0x%lx: jal-käsky"

#: mips.c:99
#, c-format
msgid "[find_call] 0x%lx: jalr\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"

#: source.c:237
#, c-format
msgid "*** File %s:\n"
msgstr "*** Tiedosto %s:\n"

#: utils.c:99
#, c-format
msgid " <cycle %d>"
msgstr " <jakso %d>"
