Dobry den,<div>  mel jste pravdu, problem se vyskytoval v map souboru, kde se za _kernel_end umistily sekce <b>text.unlikely</b>, coz jsem nasel, ze jsou informace napr. pouzivane pri volbe kompilatoru: <span style="font-family: monospace; font-size: medium; ">-freorder-functions. </span>Nicmene pridani sekce *(.text.unlikely) hned za *(.text) v kernel.lds pomohlo vyresit problem.</div>
<div><br></div><div>S pozdravem,</div><div>Martin<br><br><div class="gmail_quote">2011/12/5 Martin Decky <span dir="ltr"><<a href="mailto:decky@d3s.mff.cuni.cz">decky@d3s.mff.cuni.cz</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hezky den,<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
   prevzali jsem kostru Kalosta, kde se pro stanoveni konce assembleru<br>
jadra umisti promenna _kernel_end. Puvodne je umistena v malloc.c, kde<br>
je jejich external.<br>
</blockquote>
<br></div>
Myslim, ze si uplne nerozumime. Promenna _kernel_end neni nikde ve zdrojaku umistena, samotna promenna neni nikde vubec deklarovana. V hlavickovem souboru malloc.h je pouze deklarace jejiho symbolu, ale adresa toho symbolu se nastavi az linkerem diky linker skriptu.<br>

<br>
Pokud jste promennou _kernel_end nekde deklarovali, tak to samozrejme nebude fungovat.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
V prubehu vyvoje jadra jsem pridaval hodne souboru,<br>
ktere jsou zavisle ci zavisi na malloc.h a _kernel_end se posunul<br>
dovnitr jadra, tj. jiz neukazuje na konec kernelu. Poznal jsem to podle<br>
velikosti binarky, ktera je nahravana do MSIMu. Podle objdumpu nyni<br>
adresa, kam ukazuje _kernel_end je adresa funkce panic(), ktere je<br>
inlinovana na spouse mist v jadre. S linker scriptem nebylo nijak<br>
manipulovano, pouze se pridavali nove soubory do makefilu.<br>
</blockquote>
<br></div>
S inlinovam ten problem nema urcite nic spolecneho. Stejne jako to neni primarne problem s pridavanim dalsich souboru, protoze linker skript by mel zajistit, ze _kernel_end bude az za vsemi vstupnimi sekcemi obsahujici kod a data ze vsech souboru.<br>

<br>
Podivejte se do souboru kernel.map, kde je videt, kam se linkuji jednotlive vstupni sekce. Jedina moznost, ktera me napada, jak by se mohlo stat to, co popisujete, je to, ze se nekde vyrobila nejaka nova kodova nebo datova vstupni sekce, ktera pri linkovani nejak skoncila za tou vystupni sekci .kernel. Ale i to mi prijde dost nepravdepodobne. Kazdopadne kernel.map by Vam mel rict vic.<br>

<br>
<br>
M.D.<br>
<br>
______________________________<u></u>_________________<br>
OSy mailing list<br>
<a href="mailto:OSy@d3s.mff.cuni.cz" target="_blank">OSy@d3s.mff.cuni.cz</a><br>
<a href="https://d3s.mff.cuni.cz/mailman/listinfo/osy" target="_blank">https://d3s.mff.cuni.cz/<u></u>mailman/listinfo/osy</a><br>
</blockquote></div><br></div>