Jump to content
  • Announcements

    • Xmat

      Pravidlo pro postování v TTT

      Do sekce Tipy, triky, tutoriály nepatří žádné dotazy.   Postujte sem vaše návody, tipy a různé další věci jež uznáte za vhodné sdělit zdejšímu osazenstvu, ale veškeré dotazy směřujte do sekce Všeobecná diskuse.
    • Replik

      Seznam návodů a důležitých témat v této sekci

      Pro lepší přehlednost jsem vytvořil tento seznam, který vás, méně zkušené, lépe provede touto sekcí. Věřím, že zde najdete, co hledáte. Vypsané jsou návody, které jsou oficiálně uznané jako návody. Běžné diskuze, které neposkytují postupy a rady zvěřejněny nejsou.   Instalace vlastního MaNGOS Serveru Díky těmto návodům budete (měli by jste být) schopni vytvořit a následně spustit váš vlastní server. Nastavení je pro verze s i bez datadisku.   Instalace MaNGOS Serveru (bez datadisku TBC) - Autor Benny Instalace MaNGOS Serveru (s datadiskem TBC) - Autor Malfik Instalace MaNGOS Serveru v prostředí Linux - Autor charlie Instalace MaNGOS Serveru v prostředí Linux - Autor kupkoid   Chyby a jejich řešení při přihlašování k serveru - Autor Cybe   Zálohování uživatelských dat   Dávkový soubor (BAT soubor) pro vytvoření SQL záloh - Autor Replik   Kompilování - tvoření vlastních release (revizí)   Tvorba kompilací pro Win32 (MangoScript) - Autor bLuma   Ostatní - těžko zařaditelné, ale neznamená to, že nejsou dobré   VIP Systém - Autor charlie Tvorba Webových stránek pro MaNGOS - Autor zahuba Tvorba teleportačních NPC (MangoScript) - Autor Replik Registrační web (původně předělaná SPORA) Funkční pro Antrix i MaNGOS - Autor Replik Nastavení a spuštění Minimanager pro MaNGOS - Autor BlackMartin Nastavení MaNGOS Website - Autor Artorius   Samozřejmě jsou zde i jiné návody, ale tyto jsou nejvíce používané, proto věřím, že vám budou nápomocné. Tuto sekci budeme upravovat podle potřeby. Pokud by jste něco nenašli nebo si nevěděli rady, hledejte na fóru a teprve potom založte vlastní topik. Pokud nějaký autor vytvoří kvalitní návod a chtěl by ho zveřejnit i v tomto seznamu, doporučuji, aby mi napsal zprávu skrze PM.   Díky a přeji hezký den na WoWResource   Replik
    • Aristo

      Příspěvky tam, kde nemají co dělat

      Dodržujte zákaz přispívání do topiků s repaky pokud si to zakladatelé nepřejí!! Opakované psaní příspěvků bude trestáno warnem.
    • Aristo

      Používání spoilerů

      Poslední dobou má většina uživatelů fora zvláštní nutkání postovat extrémně dlouhé texty nebo kódy, které zabírají v nejedenom případu i 80% obsahu celé stránky a hodně tak zvedají nepřehlednost v topiku. Chtěl bych všechny uživatele požádat, aby při postování citací, jakýchkoliv kódů, errorů, atp... delších než 30 řádků používali funkci spoileru.   Funkci vyvoláte příkazem [spoiler] text [/spoiler]   Ukázka:  
Sign in to follow this  
chronos

Kompilace 32-bit MaNGOSu na 64-bit Linuxu

Recommended Posts

Pls muze me nekdo napsat kam mam ty radky, co premapuji knihovny dat?

export CFLAGS="-march=athlon64 -m32 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"
export CXXFLAGS="-march=athlon64 -m32 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"
export LIBS="-L/usr/lib/mysql"

 

Chtel bych vedet, mezi jake kroky to patri, protoze si jeste pridavam do kompilace patche.

Ja to delam takhle

 

patch -p0 < src/bindings/ScriptDev2/patches/MaNGOS-r3460-ScriptDev2.patch
export CFLAGS="-march=athlon64 -m32 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"
export CXXFLAGS="-march=athlon64 -m32 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"
export LIBS="-L/usr/lib/mysql"
autoreconf --install --force
autoconf
automake src/bindings/ScriptDev2/Makefile

 

Jenze me pak pri prikazu make vyskace:

 

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... gcc
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.
make: *** No targets specified and no makefile found.  Stop.
make: *** No rule to make target `install'.  Stop.

Kompiluju jen diky tomu, ze dobra duse napsala tenhle clanek http://www.wowresource.eu/index.php?showtopic=4589 a je se ho pevne drzim, vubec netusim co se pri jakym prikazu deje.

 

Predem dik, jsem ztracen.

 

Share this post


Link to post
Share on other sites

Můžeš vycházet z mého kompilačního skriptu:

#!/bin/sh
cd trunk
export CFLAGS="-march=athlon64 -m64 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"
export CXXFLAGS="-march=athlon64 -m64 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"

autoreconf --install --force
./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --with-python --enable-cli --enable-ra --datadir=/opt/mangos
#make clean
make
make install

 

Tento skript funguje nezávisle na tom, jestli máš ScriptDev2 nebo ne. Jde o to, že ScriptDev2 jako takový stahuješ do složky MaNGOSu trunk/src/bindings/ScriptDev2 klidně přímo z jejich SVN repozitáře. Pak aplikuješ patch v tom duchu jak to máš napsané. To ti zajisít, že pokud dáš make ve složce MaNGOSu, tak se provede i make ve složce ScriptDev2, protože o toto se postaral právě ten patch.

 

Moje doporučení je takové, že vždy, když si nejsi jistý, tak prováděj tu kompilaci po jednotlivých krocích a vždy jeden řádek nechej bez komentáře a u ostatních dej přes příkaz znak #. Samozřejmě řádky s export chybu nezpůsobí, tak ty není potřeba komentovat. Já např. vždy zakomentuju make install, protože dopředu nevíš, jestli se ti to správně zkompiluje. Navíc kompilace nějakou dobu trvá, takže ji nechám běžet na pozadí a pak třeba za několik hodin až budu zas u počítače a teprve budu mít připravené vše pro aktualizaci, tak dám make install.

 

Takže proveď ty příkazy postupně jeden po druhém a zjistíš, který píše chybu. Může to být tím, že nemáš 32-bit knihovny. Ne na všech distribucích to řeší tak, že se zároveň instalují 32-bit i 64-bit knihovny do různých složek. Podstatné je, že ve tvojem skriptu nevidím nikde příkaz configure, který je možná nahrazen tím autoconf. Prostě si s tím musíš pohrát s pomocí googlu.

 

Share this post


Link to post
Share on other sites

chybu me zpusobuje tenhle konfiguracni prikaz

./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --with-python --enable-cli --enable-ra --datadir=/opt/mangos LDFLAGS="-m32 -L/usr/lib"

 

proste se neprovede a ten make co po nem nasleduje nema co kompilovat.

Edited by pendialek

Share this post


Link to post
Share on other sites
chybu me zpusobuje tenhle konfiguracni prikaz

./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --with-python --enable-cli --enable-ra --datadir=/opt/mangos LDFLAGS="-m32 -L/usr/lib"

 

proste se neprovede a ten make co po nem nasleduje nema co kompilovat.

 

Máš knihovny v /usr/lib? Máš python? Máš složku /opt/mangos?

Neprovádí se ten make potom v jiné složce?

Share this post


Link to post
Share on other sites

Do tedka jsem kompiloval klasicky tzn. verze knihoven me nezajimaly a bylo vse v pohpo, az na to, ze me nejedou vmapy.

Mam slozky lib, lib32 a lib64. Lib a lib64 vypadaji na prvni pohled shodne, takze predpokladam, ze 32bit knnihovny, ktere potrebuju jsou v /lib.

 

Kdyz konfiguruju takhle: ./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --with-python --enable-cli --enable-ra --datadir=/opt/mangos, tak je vse ok, kdyz takhle: ./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --with-python --enable-cli --enable-ra --datadir=/opt/mangos LDFLAGS="-m32 -L/usr/lib", tak pak nejde make.

 

Problem je proste s tim poslednim "parametrem" LDFLAGS="-m32 -L/usr/lib". Zkousel jsem ho i menit za ty ostatni slozky s knihovnama, ale nic.

Share this post


Link to post
Share on other sites
Do tedka jsem kompiloval klasicky tzn. verze knihoven me nezajimaly a bylo vse v pohpo, az na to, ze me nejedou vmapy.

Mam slozky lib, lib32 a lib64. Lib a lib64 vypadaji na prvni pohled shodne, takze predpokladam, ze 32bit knnihovny, ktere potrebuju jsou v /lib.

 

Kdyz konfiguruju takhle: ./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --with-python --enable-cli --enable-ra --datadir=/opt/mangos, tak je vse ok, kdyz takhle: ./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --with-python --enable-cli --enable-ra --datadir=/opt/mangos LDFLAGS="-m32 -L/usr/lib", tak pak nejde make.

 

Problem je proste s tim poslednim "parametrem" LDFLAGS="-m32 -L/usr/lib". Zkousel jsem ho i menit za ty ostatni slozky s knihovnama, ale nic.

 

Takto mi to šlo, ale pak jsem zjistil, že to configure bere i přes export proměnných, takže to můžeš zkusit i takto:

#!/bin/sh
cd trunk
export CFLAGS="-march=athlon64 -m32 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"
export CXXFLAGS="-march=athlon64 -m32 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"
export LIBS="-L/usr/lib/mysql"
export LDFLAGS="-m32 -L/usr/lib"

autoreconf --install --force
./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --with-python --enable-cli --enable-ra --datadir=/opt/mangos
#make clean
make
make install

 

Taky nerozumím přesně tomu co jsou ty konkrétní proměnné, jakože hlavní je, že ovlivňují configure a make.

Share this post


Link to post
Share on other sites

No moje zkušenosti jsou takové, že pře touhle úpravou na 64-bit linuxu doby běhu tak 2-5 hodin. Nyní po sobě v hodinách 27, 51, 30, 18 a poslední zatím neukončený uptime po poslední aktualizaci 44 hodin a roste. Takže z toho vyplývá, že problémy je potřeba řešit. U toho posledního uptimeu dle databáze je nově uvedeno špičkově až 148 hráčů.

Edited by chronos

Share this post


Link to post
Share on other sites

No jako ve vmapach je hodne chych i na 32.. nejake akce pri urcitych podminkach freezuji server, je osvedcene ze s vmapama server bezi mensi dobu nez bez nich.. atd.. no po tech poslednich upravach je to hodne rozdrbane..

Share this post


Link to post
Share on other sites

Zdravím

 

Upravil jsem si svuj kompilační script na :

 

cd mangos
mkdir src/bindings/ScriptDev2
svn checkout http://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2 src/bindings/ScriptDev2
patch -p0 < src/bindings/ScriptDev2/patches/MaNGOS-r5049-Scriptdev2.patch
export CFLAGS="-march=athlon64 -m32 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"
export CXXFLAGS="-march=athlon64 -m32 -O2 -g -pipe -msse3 -ggdb -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"
export LIBS="-L/usr/lib/mysql"
export LDFLAGS="-m32 -L/usr/lib"
autoreconf --install --force
autoconf
automake src/bindings/ScriptDev2/Makefile
./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --with-python --enable-cli --enable-ra --datadir=/opt/mangos
make
make install
cd src/bindings/scriptdev2
make
make install

 

za použití informací z wiki a tohoto topicku.

Jakmile nastane

./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --with-python --enable-cli --enable-ra --datadir=/opt/mangos

hodí to tuto hlášku

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... gcc
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.

 

Při normální kompilaci vše bez problémů funguje.

Někdo nějaký nápad?

 

Share this post


Link to post
Share on other sites

Napadají mě dvě věci. Jestli máš procesor Athlon 64 a jestli ti nechybí v systému nějaké nástroje pro cross-compiling. Záleží co máš za distribuci. Otevři si ten skript configure a zkus tam najít ten text té chybové hlášky a měla by tam být vidět podmínka a důvod proč to píše.

Share this post


Link to post
Share on other sites

Vmapy taky konečně zprovozněny. Po několikerých pokusech se mi podařilo zkompilovat binárky upraveným scriptem z mangosprojectu.

 

export CFLAGS="-m64 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O0 -g -ggdb -pipe -msse3 -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"
export CXXFLAGS="-m64 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O0 -g -ggdb -pipe -msse3 -fno-strength-reduce -fno-delete-null-pointer-checks -fno-strict-aliasing -frename-registers"
chmod 744 src/shared/gensvnrevision
autoreconf --install --force
./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos
make
make install

 

Server je online již 15 min, tak si myslím, že vše už pojede dobře.

Se 64bit binárkama do padalo v pravidelné periodě 5minut.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×