http://wiki.wowresource.eu/index.php?title=Kompilace_32-bit_MaNGOSu_na_64-bit_Linuxu&feed=atom&action=history
Kompilace 32-bit MaNGOSu na 64-bit Linuxu - Historie editací
2024-03-29T07:18:37Z
Historie editací této stránky
MediaWiki 1.30.2
http://wiki.wowresource.eu/index.php?title=Kompilace_32-bit_MaNGOSu_na_64-bit_Linuxu&diff=1231&oldid=prev
Chronos: související
2009-06-18T19:48:55Z
<p>související</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr style="vertical-align: top;" lang="cs">
<td colspan="2" style="background-color: white; color:black; text-align: center;">← Starší verze</td>
<td colspan="2" style="background-color: white; color:black; text-align: center;">Verze z 18. 6. 2009, 19:48</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l3" >Řádek 3:</td>
<td colspan="2" class="diff-lineno">Řádek 3:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Počítačová platforma není dána pouze architekturou procesoru jako i386, i686, athlon64, c2d, atd.), ale také velikostí použitých registrů a adres (32-bit, 64-bit). Proto i v případě změny datové šířky registrů se jedná o tzv. cross compiling neboli křížové překládání. To lze popsat jako překlad aplikace pro jednu platformu na jiné.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Počítačová platforma není dána pouze architekturou procesoru jako i386, i686, athlon64, c2d, atd.), ale také velikostí použitých registrů a adres (32-bit, 64-bit). Proto i v případě změny datové šířky registrů se jedná o tzv. cross compiling neboli křížové překládání. To lze popsat jako překlad aplikace pro jednu platformu na jiné.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">=</del>=Jak na to<del class="diffchange diffchange-inline">=</del>=</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>=Jak na to=</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Předpokládejme, že používáme 64-bit distribuci Fedora (aktuálně verze 8). Tato distribuce umožňuje běh jak 32-bit tak 64-bit aplikací a při instalaci knihoven z oficiálních balíčkových repozitářů se instalují obě verze. V systému jsou binární knihovny umístěny samostatně v adresářích /lib a /lib64 a knihovny ve zdrojové podobě v adresářích /usr/lib a /usr/lib64.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Předpokládejme, že používáme 64-bit distribuci Fedora (aktuálně verze 8). Tato distribuce umožňuje běh jak 32-bit tak 64-bit aplikací a při instalaci knihoven z oficiálních balíčkových repozitářů se instalují obě verze. V systému jsou binární knihovny umístěny samostatně v adresářích /lib a /lib64 a knihovny ve zdrojové podobě v adresářích /usr/lib a /usr/lib64.</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l43" >Řádek 43:</td>
<td colspan="2" class="diff-lineno">Řádek 43:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div></pre></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div></pre></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">=</del>=Přínos<del class="diffchange diffchange-inline">=</del>=</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>=Přínos=</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Emulátor MaNGOS nepodporuje správně 64-bit platformy. Přesněji jedná se o knihovny G3D použité pro výpočty funkce Line-of-sight a práce s vmap soubory. Tato nekompatibilita způsobuje časté selhávání serveru a jeho ukončování obecnou chybou Segmentation fault. Konkrétně se jedná o chybu  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Emulátor MaNGOS nepodporuje správně 64-bit platformy. Přesněji jedná se o knihovny G3D použité pro výpočty funkce Line-of-sight a práce s vmap soubory. Tato nekompatibilita způsobuje časté selhávání serveru a jeho ukončování obecnou chybou Segmentation fault. Konkrétně se jedná o chybu  </div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l49" >Řádek 49:</td>
<td colspan="2" class="diff-lineno">Řádek 49:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Vypnutí vmap jako funkce je nežádoucí a tak zkompilování jako 32-bit aplikace řeší uspokojivě tento problém, čímž se v jednom případě zvýšil uptime serveru z 3-5 hodin na 20-30 hodin při špičkově až 140 hráči online.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Vypnutí vmap jako funkce je nežádoucí a tak zkompilování jako 32-bit aplikace řeší uspokojivě tento problém, čímž se v jednom případě zvýšil uptime serveru z 3-5 hodin na 20-30 hodin při špičkově až 140 hráči online.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>==Externí odkazy<del class="diffchange diffchange-inline">=</del>=</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>=<ins class="diffchange diffchange-inline">Související=</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">[[MaNGOS pod Linuxem]]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>=Externí odkazy=</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.wowresource.eu/index.php?showtopic=7372 Diskuse k tomuto návoud na wowresource.eu]</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.wowresource.eu/index.php?showtopic=7372 Diskuse k tomuto návoud na wowresource.eu]</div></td></tr>
</table>
Chronos
http://wiki.wowresource.eu/index.php?title=Kompilace_32-bit_MaNGOSu_na_64-bit_Linuxu&diff=527&oldid=prev
Chronos: LDFLAGS jako export
2008-03-15T11:02:05Z
<p>LDFLAGS jako export</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr style="vertical-align: top;" lang="cs">
<td colspan="2" style="background-color: white; color:black; text-align: center;">← Starší verze</td>
<td colspan="2" style="background-color: white; color:black; text-align: center;">Verze z 15. 3. 2008, 11:02</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l34" >Řádek 34:</td>
<td colspan="2" class="diff-lineno">Řádek 34:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>export CXXFLAGS="-march=athlon64 -m32 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>export CXXFLAGS="-march=athlon64 -m32 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>export LIBS="-L/usr/lib/mysql"</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>export LIBS="-L/usr/lib/mysql"</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">export LDFLAGS="-m32 -L/usr/lib"</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>autoreconf --install --force</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>autoreconf --install --force</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --with-python --enable-cli --enable-ra --datadir=/opt/mangos <del class="diffchange diffchange-inline">LDFLAGS="-m32 -L/usr/lib"</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --with-python --enable-cli --enable-ra --datadir=/opt/mangos</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>#make clean</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>#make clean</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>make</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>make</div></td></tr>
</table>
Chronos
http://wiki.wowresource.eu/index.php?title=Kompilace_32-bit_MaNGOSu_na_64-bit_Linuxu&diff=500&oldid=prev
BLuma: + kategorie
2008-03-09T09:58:49Z
<p>+ kategorie</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr style="vertical-align: top;" lang="cs">
<td colspan="2" style="background-color: white; color:black; text-align: center;">← Starší verze</td>
<td colspan="2" style="background-color: white; color:black; text-align: center;">Verze z 9. 3. 2008, 09:58</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l53" >Řádek 53:</td>
<td colspan="2" class="diff-lineno">Řádek 53:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.mangosproject.org/forum/index.php?showtopic=18660 Související diskuse na fóru mangosproject.org]</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>* [http://www.mangosproject.org/forum/index.php?showtopic=18660 Související diskuse na fóru mangosproject.org]</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Kategorie:MaNGOS Problémy]]</ins></div></td></tr>
</table>
BLuma
http://wiki.wowresource.eu/index.php?title=Kompilace_32-bit_MaNGOSu_na_64-bit_Linuxu&diff=498&oldid=prev
Chronos: Přidání odkazu na diskusi.
2008-03-09T09:47:06Z
<p>Přidání odkazu na diskusi.</p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr style="vertical-align: top;" lang="cs">
<td colspan="2" style="background-color: white; color:black; text-align: center;">← Starší verze</td>
<td colspan="2" style="background-color: white; color:black; text-align: center;">Verze z 9. 3. 2008, 09:47</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l50" >Řádek 50:</td>
<td colspan="2" class="diff-lineno">Řádek 50:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>==Externí odkazy==</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>==Externí odkazy==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[http://www.mangosproject.org/forum/index.php?showtopic=18660 Související diskuse na fóru mangosproject.org]</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">* [http://www.wowresource.eu/index.php?showtopic=7372 Diskuse k tomuto návoud na wowresource.eu]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">* </ins>[http://www.mangosproject.org/forum/index.php?showtopic=18660 Související diskuse na fóru mangosproject.org]</div></td></tr>
</table>
Chronos
http://wiki.wowresource.eu/index.php?title=Kompilace_32-bit_MaNGOSu_na_64-bit_Linuxu&diff=497&oldid=prev
Chronos: Nová stránka: Opěrační systém GNU/Linux a překladač GNU/gcc umožňují běh 32-bit alikací na 64-bit systému. To se může hodit v případě, kdy daná aplikace správně nepodporuje 64-...
2008-03-09T09:45:08Z
<p>Nová stránka: Opěrační systém GNU/Linux a překladač GNU/gcc umožňují běh 32-bit alikací na 64-bit systému. To se může hodit v případě, kdy daná aplikace správně nepodporuje 64-...</p>
<p><b>Nová stránka</b></p><div>Opěrační systém GNU/Linux a překladač GNU/gcc umožňují běh 32-bit alikací na 64-bit systému. To se může hodit v případě, kdy daná aplikace správně nepodporuje 64-bit platformu jako je to v případě WoW emulátoru MaNGOS. Přitom rozdíl ve výkonu 32-bit a 64-bit aplikací není nijak výrazný a hlavní výhodou použití 64-bit systému zůstává možnost adresovat více než 4 GB fyzické operační paměti. <br />
<br />
Počítačová platforma není dána pouze architekturou procesoru jako i386, i686, athlon64, c2d, atd.), ale také velikostí použitých registrů a adres (32-bit, 64-bit). Proto i v případě změny datové šířky registrů se jedná o tzv. cross compiling neboli křížové překládání. To lze popsat jako překlad aplikace pro jednu platformu na jiné.<br />
<br />
==Jak na to==<br />
<br />
Předpokládejme, že používáme 64-bit distribuci Fedora (aktuálně verze 8). Tato distribuce umožňuje běh jak 32-bit tak 64-bit aplikací a při instalaci knihoven z oficiálních balíčkových repozitářů se instalují obě verze. V systému jsou binární knihovny umístěny samostatně v adresářích /lib a /lib64 a knihovny ve zdrojové podobě v adresářích /usr/lib a /usr/lib64.<br />
Dále potřebujeme mít zdrojové kódy MaNGOSu, které lze stáhnout z SVN repozitáře.<br />
<br />
Vycházejme z následujícího kompilačního skriptu:<br />
<pre><br />
#!/bin/sh<br />
cd trunk<br />
export CFLAGS="-march=athlon64 -m64 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"<br />
export CXXFLAGS="-march=athlon64 -m64 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"<br />
<br />
autoreconf --install --force<br />
./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --with-python --enable-cli --enable-ra --datadir=/opt/mangos<br />
#make clean<br />
make<br />
make install<br />
</pre><br />
<br />
Tento skript obsahuje nastavení pro překlad do 64-bit verze a plno dalších nastavení, které nás v tuto chvíli nezajímají. Pokud chceme provést překlad 32-bit verze jsou por nás podstatné tyto změny:<br />
* Musíme změnit parametr -m64 na '''-m32''', který přímo určuje bitovou šířku adresování paměti.<br />
* Musíme přidat do řádku s příkazem configure cestu k umístění 32-bit knihoven a tedy doplnit na konec text '''LDFLAGS="-m32 -L/usr/lib"'''.<br />
* Je potřeba přidat před povel configure řádek '''export LIBS="-L/usr/lib/mysql"''', který určí umístění 32-bit knihoven mysql klienta.<br />
<br />
Po provedení změn skript vypadá takto:<br />
<pre><br />
#!/bin/sh<br />
cd trunk<br />
export CFLAGS="-march=athlon64 -m32 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"<br />
export CXXFLAGS="-march=athlon64 -m32 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"<br />
export LIBS="-L/usr/lib/mysql"<br />
<br />
autoreconf --install --force<br />
./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --with-python --enable-cli --enable-ra --datadir=/opt/mangos LDFLAGS="-m32 -L/usr/lib"<br />
#make clean<br />
make<br />
make install<br />
</pre><br />
<br />
==Přínos==<br />
<br />
Emulátor MaNGOS nepodporuje správně 64-bit platformy. Přesněji jedná se o knihovny G3D použité pro výpočty funkce Line-of-sight a práce s vmap soubory. Tato nekompatibilita způsobuje časté selhávání serveru a jeho ukončování obecnou chybou Segmentation fault. Konkrétně se jedná o chybu <br />
<pre>VMAP::MapTree::unloadMap</pre> zjištěnou pomocí gdb (GNU Debugger).<br />
Vypnutí vmap jako funkce je nežádoucí a tak zkompilování jako 32-bit aplikace řeší uspokojivě tento problém, čímž se v jednom případě zvýšil uptime serveru z 3-5 hodin na 20-30 hodin při špičkově až 140 hráči online.<br />
<br />
==Externí odkazy==<br />
<br />
[http://www.mangosproject.org/forum/index.php?showtopic=18660 Související diskuse na fóru mangosproject.org]</div>
Chronos