diff --git a/.gitignore b/.gitignore index e029f81..ff95014 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,131 @@ -$(find -iname "_build/") $(find -iname "_deps/") $(find -iname "_dist/") $(find -iname "*.o") $(find -iname "*.lo") $(find -iname "*.slo") $(find -iname "*.res") $(find -iname "*.obj") $(find -iname "*.pch") $(find -iname "*.gch") $(find -iname "*.a") $(find -iname "*.la") $(find -iname "*.lai") $(find -iname "*.lib") $(find -iname "*.dll") $(find -iname "*.so") $(find -iname "*.so.*") $(find -iname "*.dylib") $(find -iname "*.exe") $(find -iname "*.app") $(find -iname "*.gcno") $(find -iname "*.gcda") $(find -iname "*.gcov") $(find -iname "Makefile.in") $(find -iname "autom4te.cache") $(find -iname "*.am") $(find -iname "*.ac") $(find -iname "*.m4") $(find -iname "*.po") $(find -iname "*.gmo") $(find -iname "*.at") $(find -iname "*.texi") $(find -iname "*.pc") $(find -iname "compile") $(find -iname "configure") $(find -iname "depcomp") $(find -iname "install-sh") $(find -iname "missing") $(find -iname "CMakeCache.txt") $(find -iname "CMakeFiles") $(find -iname "cmake_install.cmake") $(find -iname "install_manifest.txt") $(find -iname "*.sln.*") $(find -iname "*.ncb") $(find -iname "*.user") $(find -iname "*.ilk") $(find -iname "*.pdb") $(find -iname "*.idb") $(find -iname "*.pgc") $(find -iname "*.pgd") $(find -iname "*.rsp") $(find -iname "*.sbr") $(find -iname "*.tlb") $(find -iname "*.tli") $(find -iname "*.tlh") $(find -iname "*.aps") $(find -iname "*.opensdf") $(find -iname "*.sdf") $(find -iname "*.psess") $(find -iname "*.vsp") $(find -iname "*.vspx") $(find -iname "*.vspscc") $(find -iname "*.vssscc") $(find -iname "*.Resources") $(find -iname "*.Cache") $(find -iname "*.gpState") $(find -iname "_ReSharper*") $(find -iname "*.ncrunch*") $(find -iname ".*crunch*.local.xml") $(find -iname "csx") $(find -iname "*.build.csdef") $(find -iname "*.dbmdl") $(find -iname ".builds") $(find -iname "*.scc") $(find -iname "ipch/") $(find -iname "AppPackages/") $(find -iname "_UpgradeReport_Files/") $(find -iname "BuildLog.htm") $(find -iname "UpgradeLog*.XML") $(find -iname "*.pro.user") $(find -iname "*.pro.user.*") $(find -iname "moc_*.cpp") $(find -iname "qrc_*.cpp") $(find -iname "*.dmg") $(find -iname "*.xpi") $(find -iname "*.gem") $(find -iname "*.egg") $(find -iname "*.deb") $(find -iname "*.rpm") $(find -iname "*.apk") $(find -iname "*.ap_") $(find -iname "*.db") $(find -iname "Desktop.ini") $(find -iname "$RECYCLE.BIN/") $(find -iname ".DS_Store") $(find -iname ".AppleDouble") $(find -iname ".LSOverride") $(find -iname "Icon") $(find -iname ".Spotlight-V100") $(find -iname ".Trashes") $(find -iname ".~*") \ No newline at end of file +# build system +_build/ +_deps/ +_dist/ + +# objects +*.o +*.lo +*.slo +*.res +*.obj +*.pch +*.gch + +# libraries +*.a +*.la +*.lai +*.lib +*.dll +*.so +*.so.* +*.dylib + +# binaries +*.exe +*.app + +# Autotools +*.gcno +*.gcda +*.gcov +Makefile.in +autom4te.cache +*.am +*.ac +*.m4 +*.po +*.gmo +*.at +*.texi +*.pc +compile +configure +depcomp +install-sh +missing + +# CMake +CMakeCache.txt +CMakeFiles +cmake_install.cmake +install_manifest.txt + +# Visual Studio +*.sln.* +*.ncb +*.user +*.ilk +*.pdb +*.idb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.aps +*.opensdf +*.sdf +*.psess +*.vsp +*.vspx +*.vspscc +*.vssscc +*.Resources +*.Cache +*.gpState +_ReSharper* +*.ncrunch* +.*crunch*.local.xml +csx +*.build.csdef +*.dbmdl +.builds +*.scc +ipch/ +AppPackages/ +_UpgradeReport_Files/ +BuildLog.htm +UpgradeLog*.XML + +# Qt +*.pro.user +*.pro.user.* +moc_*.cpp +qrc_*.cpp + +# Redistribution +*.dmg +*.xpi +*.gem +*.egg +*.deb +*.rpm +*.apk +*.ap_ +*.tar +*.tar.* +*.zip +*.7z +*.rar +*.cab +*.msi + +# Windows +*.db +Desktop.ini +$RECYCLE.BIN/ + +# Mac OS X +.DS_Store +.AppleDouble +.LSOverride +Icon +.Spotlight-V100 +.Trashes + +# Linux +.~* \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 41daa0c..6a4c6d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,7 +34,7 @@ endif() if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) # Base options set(CFLAGS "-Wall -Wextra -Wabi -pedantic -mmmx -msse -msse2 -msse3 -fvisibility=hidden") - set(LDFLAGS "") + set(LDFLAGS "-static-libgcc") set(RCFLAGS "") set(CFLAGS_LANG_C "-ansi") @@ -62,16 +62,16 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) endif() # Size - set(CFLAGS_SIZE "${CFLAGS} -Os -g0 -fomit-frame-pointer -mfpmath=both -msahf -malign-double -mpc32 -ffast-math -fmerge-all-constants -funsafe-loop-optimizations -fsched-pressure -mstringop-strategy=rep_byte") - set(LDFLAGS_SIZE "${LDFLAGS} -s -fwhole-program -flto") + set(CFLAGS_SIZE "${CFLAGS} -Os -g0 -fomit-frame-pointer -mfpmath=both -msahf -malign-double -mpc32 -ffast-math -fmerge-all-constants -funsafe-loop-optimizations -fsched-pressure -mstringop-strategy=rep_byte -fno-stack-protector") + set(LDFLAGS_SIZE "${LDFLAGS} -s -fwhole-program -flto -fno-stack-protector") # Speed - set(CFLAGS_SPEED "${CFLAGS} -O3 -g0 -fomit-frame-pointer -mfpmath=both -msahf -malign-double -mpc32 -ffast-math -fmerge-all-constants -funsafe-loop-optimizations -fsched-pressure -fmodulo-sched -fmodulo-sched-allow-regmoves -fgcse-sm -fgcse-las -fsched-spec-load -fsched-spec-load-dangerous -fsched-stalled-insns=0 -fsched-stalled-insns-dep -fsched2-use-superblocks -fipa-pta -fipa-matrix-reorg -ftree-loop-linear -floop-interchange -floop-strip-mine -floop-block -fgraphite-identity -floop-parallelize-all -ftree-loop-distribution -ftree-loop-im -ftree-loop-ivcanon -fivopts -fvect-cost-model -fvariable-expansion-in-unroller -fbranch-target-load-optimize -maccumulate-outgoing-args -flto") - set(LDFLAGS_SPEED "${LDFLAGS} -s -fwhole-program -flto") + set(CFLAGS_SPEED "${CFLAGS} -O3 -g0 -fomit-frame-pointer -mfpmath=both -msahf -malign-double -mpc32 -ffast-math -fmerge-all-constants -funsafe-loop-optimizations -fsched-pressure -fno-stack-protector -fmodulo-sched -fmodulo-sched-allow-regmoves -fgcse-sm -fgcse-las -fsched-spec-load -fsched-spec-load-dangerous -fsched-stalled-insns=0 -fsched-stalled-insns-dep -fsched2-use-superblocks -fipa-pta -fipa-matrix-reorg -ftree-loop-linear -floop-interchange -floop-strip-mine -floop-block -fgraphite-identity -floop-parallelize-all -ftree-loop-distribution -ftree-loop-im -ftree-loop-ivcanon -fivopts -fvect-cost-model -fvariable-expansion-in-unroller -fbranch-target-load-optimize -maccumulate-outgoing-args -flto") + set(LDFLAGS_SPEED "${LDFLAGS} -s -fwhole-program -flto -fno-stack-protector") else() # Debug - set(CFLAGS_DEBUG "${CFLAGS} -O0 -g3") - set(LDFLAGS_DEBUG "${LDFLAGS}") + set(CFLAGS_DEBUG "${CFLAGS} -O0 -g3 -fstack-protector-all") + set(LDFLAGS_DEBUG "${LDFLAGS} -fstack-protector-all") set(CFLAGS_SIZE "${CFLAGS_DEBUG}") set(LDFLAGS_SIZE "${LDFLAGS_DEBUG}") set(CFLAGS_SPEED "${CFLAGS_DEBUG}") diff --git a/Client/Client.cpp b/Client/Client.cpp index 5851845..6a66b06 100644 --- a/Client/Client.cpp +++ b/Client/Client.cpp @@ -25,10 +25,10 @@ Scene * CurrentScene; #ifdef _WIN32 -/* TDM GCC bonus feature; saves 66 kB in the binary :) */ -/* */ void* operator new(unsigned size){return malloc(size);} -/* */ void operator delete(void *ptr){free(ptr);} -/* */ extern "C" void __cxa_pure_virtual(){} +/* MinGW bonus feature; saves 66 kB in the binary :) */ +/* */ void* __CRTDECL operator new(unsigned size){return malloc(size);} +/* */ void __CRTDECL operator delete(void *ptr){free(ptr);} +/* */ extern "C" void __CRTDECL __cxa_pure_virtual(){} int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int) {