[C++] FreeBSD 12.1 amd64 pentru compilare cu clang11 & c++20/c++2a

Avatar utilizator
Syron
Developer

Developer
Mesaje: 712
Membru din: 14 Mai 2014, 23:41
Aprecieri: 5  
Mulţumiri: 138  
Medalii

Imagine
Avand in vedere ca nu exista pe forum decat un FreeBSD vechi 9.2 am decis sa fac o imagine rapida cu toate cele necesare pentru 12.1. O lista cu porturi interesante:
Continut: Ascuns
Trebuie sa multumesti autorului pentru a putea vedea mesajul.

De precizat ca folosirea clang11 de la clang8 a micsorat game-ul de la 86MB la 80MB fara nici o ajustare in plus. Sursa care o gasiti pe sistem este mainline si NU recomand folosirea ei deoarece a fost facuta doar pentru a testa compiler-ul. In cazul in care compilati cu versiuni vechi de GCC trecerea la clang si c++2a mai precis o sa fie o mica durere dar se merita. La momentul actual compilarea completa cu lib-uri, db si game dureaza sub 1:30m. Cu optimizari facute calumea si cod aiurea sters ar trebui sa fie <1m. Recomand minim 4GB RAM alocati si 2 vCPU ca sa nu va treziti ca nu merge ceva compilat. Am incercat sa includ pe imagine ultimele porturi actuale valabile pentru 12.1 (MariaDB ultima versiune) insa clang a ramas la versiune de pkg (11 si llvm-devel 12 valabil in ports) deoarece dureaza foarte mult timp pana se compileaza. Sursa de test se afla in /usr/src/m2. Nu exista parola root si pentru db aveti user 'syron' fara parola cu acces complet.
Pentru compilare folositi:
Continut: Ascuns
Trebuie sa multumesti autorului pentru a putea vedea mesajul.

Daca intampinati probleme nu ezitati sa lasati un reply, am sa incerc sa raspund. Daca intampinati ceva mai complex, postati la Probleme & Intrebari si lasati aici reply cu link catre topic.
Destula vorba, aici aveti download de pe Google Drive:
Continut: Ascuns
Trebuie sa multumesti autorului pentru a putea vedea mesajul.
Ultima oară modificat 19 Apr 2021, 01:58 de către qTwilightW, modificat 1 dată în total.
Motiv: Hide la download si hide content.
Pentru acest mesaj, Syron a primit 244 (de) mulţumiri
JACK. • saylgan38 • [Demonul] • Nuki1 • Fenoxys • Yanni • [Jee] • xCrazy • rares2014 • Cortex • xIulian95 • wakee • oneX • gpmastery7 • BodisS • FALLEN1 • D a e m o n • WarGods21 • SoranJenner • Niedereinz și alți 224
Avatar utilizator
șumahăr
Mister Just4Metin

Mister Just4Metin
Mesaje: 701
Membru din: 29 Iun 2018, 13:50
Aprecieri: 187  
Mulţumiri: 2319  
Discord: Copiază ID
Medalii

de ce 64 şi nu 32?
Pentru acest mesaj, șumahăr for the post:
CarlosJose
Avatar utilizator
Syron
Developer

Developer
Mesaje: 712
Membru din: 14 Mai 2014, 23:41
Aprecieri: 5  
Mulţumiri: 138  
Medalii

Nea Mihee scrie: ↑12 Aug 2020, 04:26 de ce 64 şi nu 32?
In general e mai ok sa folosesti 32 dar am ales 64 din mai multe motive, printre care:
1. Odata ce 99% din servere ruleaza pe platforma de 64 de biti, automat e mai bine ca game-ul sa fie si el pe 64 ca sa eviti overhead.
2. Eviti crash-ul automat daca un core foloseste dupa mult timp >4GB RAM pentru ca aplicatiile pe 32 de biti sunt limitate la 4GB.
Puteti sa folositi -m32 pentru 32 de biti insa lib-urile trebuie si ele mutate pe 32. Odata ce serverul are multe sisteme, trimite multe date si e mai 'complex' e recomandat sa folosesti 64 oricum.
Pentru acest mesaj, Syron a primit 2 (de) mulţumiri
șumahăr • saylgan38
Avatar utilizator
WinrraR
Nivel 5

Nivel 5
Mesaje: 799
Membru din: 14 Mai 2017, 14:50
Server: Metin2BW
Regat: Chunjo
Aprecieri: 377  
Mulţumiri: 84  
Medalii

sa inteleg ca sursa este 12.1 si contine toate necesare pentru compilare sursa?
Afișează semnătura
Avatar utilizator
Syron
Developer

Developer
Mesaje: 712
Membru din: 14 Mai 2014, 23:41
Aprecieri: 5  
Mulţumiri: 138  
Medalii

WinrraR scrie: ↑12 Aug 2020, 10:42 sa inteleg ca sursa este 12.1 si contine toate necesare pentru compilare sursa?
Sursa prezenta pe vdi e modificata ca sa se poata compila cu clang si ultimul standard de c++, o sursa default pusa aici nu o poti compila direct pentru ca are nevoie de 'ajustari' intrucat de cand "s-a leakuit" sa zicem asa sursa metin multe functii in c++ au fost modificate (structural) sau sterse complet. Standardul default de la GCC-ul folosit de YMIR era C++03 daca nu ma insel, dupa el au aparut C++11, C++14, C++17 si intr-un final C++20 (denumit initial C++2a pentru ca nu se stia cand va fi lansat) => multe modificari in cod si optimizare. Dar da, pe imagine gasesti tot ce ai nevoie (boost, cryptopp, devil s.a.m.d.) ca sa nu mai ai nevoie de Extern pentru compilare - ultimele versiuni.
Avatar utilizator
chris90909090
Nou Venit

Nou Venit
Mesaje: 41
Membru din: 14 Iun 2015, 11:42
Aprecieri: 332  
Mulţumiri: 1  
Medalii

can you say how i can compile my own source on this vdi? with problems or not? you say changes on my own source or?
but what can i change for compile? is it funktional and is mariadb better as mysql?
Avatar utilizator
Syron
Developer

Developer
Mesaje: 712
Membru din: 14 Mai 2014, 23:41
Aprecieri: 5  
Mulţumiri: 138  
Medalii

chris90909090 scrie: ↑12 Aug 2020, 18:59 can you say how i can compile my own source on this vdi? with problems or not? you say changes on my own source or?
but what can i change for compile? is it funktional and is mariadb better as mysql?
You can compile your own source on it but you need to make changes in order for it to work because the structure of C++ Standard has changed. YMIR used C++03 and many functions either were removed because they were marked as deprecated or completely changed their structure. MariaDB is a fork for MySQL so you're technically still using MySQL, I just like it better and it feels smoother for me. You need to also do some adjustments for MariaDB in the Metin2 database. You can google these stuff or just try to compile and solve error by error when compiling with the new clang. The source present on this virtual machine can be used as an example on some files, to see what changes have to be made in order for it to work.
Avatar utilizator
Kidro
Membru Club

Membru Club
Mesaje: 2487
Membru din: 29 Aug 2019, 16:49
Aprecieri: 331  
Mulţumiri: 5190  
Discord: Copiază ID
Medalii

Mulțumim, merita utilizator pro

[ Postat de pe Android ] Imagine
Avatar utilizator
chris90909090
Nou Venit

Nou Venit
Mesaje: 41
Membru din: 14 Iun 2015, 11:42
Aprecieri: 332  
Mulţumiri: 1  
Medalii

ty but i see dont can compile the src was you generating a lot of warnings and errors
Avatar utilizator
Syron
Developer

Developer
Mesaje: 712
Membru din: 14 Mai 2014, 23:41
Aprecieri: 5  
Mulţumiri: 138  
Medalii

chris90909090 scrie: ↑12 Aug 2020, 21:05 ty but i see dont can compile the src was you generating a lot of warnings and errors
Just to make things clear, a default source isn't supposed to be fully compatible for compilation with clang since clang will pretty much print a ton of warnings even for bad encoding (korean characters turned into strange symbols by wrong encoding for instance) - that being said, I already added Wno-invalid-source-encoding in the Makefile to prevent that (just for testing purpose) but these warnings should be addressed and solved. Main cause of these warnings is pretty much the change in coding in general, the code YMIR used is outdated and sometimes you just ask yourself 'Why do they do/use that instead of x, y, z ... ?'

TL;DR: You shouldn't have any errors with the source provided above. Warnings are normal since the code was not adapted by me, it's the default one.
Răspunde
Răspunsuri
0
Vizualizări
78
Răspunsuri
4
Vizualizări
199
Răspunsuri
1
Vizualizări
1133

Înapoi la “FreeBSD”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 1 vizitator