From d7c5c4f23e5cb03df6799fa4ebbb37be4f6e733b Mon Sep 17 00:00:00 2001 From: Minho Kang Date: Fri, 18 Aug 2017 11:52:59 +0900 Subject: [PATCH 1/2] Add /bigobj switch for MSVC This fix an some error when building for x64 --- src/servers/Server_Common/CMakeLists.txt | 3 ++- src/servers/Server_Lobby/CMakeLists.txt | 3 ++- src/servers/Server_REST/CMakeLists.txt | 3 ++- src/servers/Server_Zone/CMakeLists.txt | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/servers/Server_Common/CMakeLists.txt b/src/servers/Server_Common/CMakeLists.txt index 1661ac65..db70187d 100644 --- a/src/servers/Server_Common/CMakeLists.txt +++ b/src/servers/Server_Common/CMakeLists.txt @@ -8,7 +8,7 @@ if(UNIX) include_directories("/usr/include/mysql/") message(STATUS "Setting GCC flags") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") - + find_package(Boost ${SAPPHIRE_BOOST_VER} COMPONENTS log log_setup thread date_time filesystem system) if(Boost_FOUND) set(BOOST_LIBRARY_DIR ${Boost_LIBRARY_DIR}) @@ -26,6 +26,7 @@ else() message(STATUS "Setting MSVC flags") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHc") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/${SAPPHIRE_BOOST_FOLDER_NAME}) message(STATUS "Using boost in /libraries/external") diff --git a/src/servers/Server_Lobby/CMakeLists.txt b/src/servers/Server_Lobby/CMakeLists.txt index 53b2d556..2330c06f 100644 --- a/src/servers/Server_Lobby/CMakeLists.txt +++ b/src/servers/Server_Lobby/CMakeLists.txt @@ -16,7 +16,7 @@ if(UNIX) include_directories("/usr/include/mysql/") message(STATUS "Setting GCC flags") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") - + find_package(Boost ${SAPPHIRE_BOOST_VER} COMPONENTS log log_setup thread date_time filesystem system) if(Boost_FOUND) set(BOOST_LIBRARY_DIR ${Boost_LIBRARY_DIR}) @@ -36,6 +36,7 @@ else() message(STATUS "Setting MSVC flags") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHc") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/${SAPPHIRE_BOOST_FOLDER_NAME}) message(STATUS "Using boost in /libraries/external") diff --git a/src/servers/Server_REST/CMakeLists.txt b/src/servers/Server_REST/CMakeLists.txt index 80252299..74f4c019 100644 --- a/src/servers/Server_REST/CMakeLists.txt +++ b/src/servers/Server_REST/CMakeLists.txt @@ -16,7 +16,7 @@ if(UNIX) include_directories("/usr/include/mysql/") message(STATUS "Setting GCC flags") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") - + find_package(Boost ${SAPPHIRE_BOOST_VER} COMPONENTS log log_setup thread date_time filesystem system) if(Boost_FOUND) set(BOOST_LIBRARY_DIR ${Boost_LIBRARY_DIR}) @@ -36,6 +36,7 @@ else() message(STATUS "Setting MSVC flags") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHc") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/${SAPPHIRE_BOOST_FOLDER_NAME}) message(STATUS "Using boost in /src/lib") diff --git a/src/servers/Server_Zone/CMakeLists.txt b/src/servers/Server_Zone/CMakeLists.txt index ebc36ef3..a948aaa4 100644 --- a/src/servers/Server_Zone/CMakeLists.txt +++ b/src/servers/Server_Zone/CMakeLists.txt @@ -16,7 +16,7 @@ if(UNIX) include_directories("/usr/include/mysql/") message(STATUS "Setting GCC flags") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") - + find_package(Boost ${SAPPHIRE_BOOST_VER} COMPONENTS log log_setup thread date_time filesystem system) if(Boost_FOUND) set(BOOST_LIBRARY_DIR ${Boost_LIBRARY_DIR}) @@ -36,6 +36,7 @@ else() message(STATUS "Setting MSVC flags") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHc") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external/${SAPPHIRE_BOOST_FOLDER_NAME}) message(STATUS "Using boost in /libraries/external") From 78b5a13f8ac721cf780e85f60d5c2baef2003717 Mon Sep 17 00:00:00 2001 From: Minho Kang Date: Fri, 18 Aug 2017 21:14:09 +0900 Subject: [PATCH 2/2] Fix segfault on 64bit Upper portion of address data got lost when converting to int32_t and segfault when accessing them. This commit contains fix for it. --- src/servers/Server_Lobby/blowfish.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/Server_Lobby/blowfish.cpp b/src/servers/Server_Lobby/blowfish.cpp index 236be5d9..5b830e5b 100644 --- a/src/servers/Server_Lobby/blowfish.cpp +++ b/src/servers/Server_Lobby/blowfish.cpp @@ -104,7 +104,7 @@ void BlowFish::initialize (BYTE key[], int32_t keybytes) int32_t v10 = keybytes; - int32_t v9 = (uintptr_t)key; + uintptr_t v9 = (uintptr_t)key; int32_t v8 = 0; int32_t v11 = 0; do {