mirror of
https://github.com/SWG-Source/src.git
synced 2026-09-11 23:45:01 -04:00
Added adjustments that allow compiling with CLang 9.0.1 or GCC 10
This commit is contained in:
+6
-5
@@ -70,10 +70,10 @@ elseif (UNIX)
|
||||
# linker flags
|
||||
if (${CMAKE_BUILD_TYPE} STREQUAL "RELWITHDEBINFO" OR ${CMAKE_BUILD_TYPE} STREQUAL "MINSIZEREL")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,-z,norelro,-O3,--sort-common,--as-needed,--relax,-z,combreloc,-z,global,--no-omagic")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "-Wl,-z,norelro,-O3,--sort-common,--as-needed,--relax,-z,combreloc,-z,global,--no-omagic")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "-Wl,-z,norelro,-O3,--sort-common,--as-needed,--relax,-z,combreloc,-z,global,--no-omagic")
|
||||
else ()
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,-z,norelro,-O3,--sort-common,--as-needed,--relax,-z,combreloc,-z,global,--no-omagic,-x,-s")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "-Wl,-z,norelro,-O3,--sort-common,--as-needed,--relax,-z,combreloc,-z,global,--no-omagic,-x,-s")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "-Wl,-z,norelro,-O3,--sort-common,--as-needed,--relax,-z,combreloc,-z,global,--no-omagic,-x,-s")
|
||||
endif ()
|
||||
|
||||
# don't put anything too crazy in debug...and any common flags go into CMAKE_CXX_FLAGS
|
||||
@@ -87,10 +87,12 @@ elseif (UNIX)
|
||||
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_RELEASE}")
|
||||
|
||||
# our "always on" flags - build by default for the system we're on but include all instruction sets
|
||||
set(CMAKE_CXX_FLAGS "-m32 -pipe -march=native -mtune=native \
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pipe -march=native -mtune=native \
|
||||
-Wformat -Wno-overloaded-virtual -Wno-missing-braces -Wno-format \
|
||||
-Wno-write-strings -Wno-unknown-pragmas \
|
||||
-Wno-uninitialized -Wno-reorder -Wno-tautological-constant-out-of-range-compare -Wno-address-of-packed-member")
|
||||
|
||||
message("Using Compiler: ${CMAKE_CXX_COMPILER_ID}")
|
||||
|
||||
# Ofast doesn't work with gcc builds
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
@@ -113,10 +115,9 @@ elseif (UNIX)
|
||||
# O3 and Ofast include one or more flags that cause java to crash when using gcc6
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -fno-signed-zeros -freciprocal-math -fno-unroll-loops -fno-tree-loop-optimize -fno-plt")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Og")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-stringop-overflow")
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3")
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "g++")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-stringop-overflow")
|
||||
endif ()
|
||||
|
||||
add_definitions(-DLINUX -D_REENTRANT -Dlinux -D_USING_STL -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -U_FORTIFY_SOURCE)
|
||||
|
||||
@@ -30,14 +30,14 @@ if(DEFINED ENV{ORACLE_HOME})
|
||||
find_path(ORACLE_INCLUDE_DIR
|
||||
NAMES oci.h
|
||||
PATHS
|
||||
/usr/include/oracle/21/client
|
||||
/usr/include/oracle/18.3/client
|
||||
${ORACLE_HOME}/rdbms/public
|
||||
${ORACLE_HOME}/include
|
||||
${ORACLE_HOME}/sdk/include # Oracle SDK
|
||||
${ORACLE_HOME}/OCI/include) # Oracle XE on Windows
|
||||
|
||||
set(ORACLE_OCI_NAMES clntsh libclntsh oci)
|
||||
set(ORACLE_NNZ_NAMES libnnz21 nnz21 ociw32)
|
||||
set(ORACLE_NNZ_NAMES libnnz18 nnz18 libnnz21 nnz21 ociw32)
|
||||
set(ORACLE_OCCI_NAMES libocci occi oraocci10 oraocci11)
|
||||
|
||||
set(ORACLE_LIB_DIR
|
||||
|
||||
@@ -59,15 +59,15 @@ const int maxStringSize = 256;
|
||||
const char version[] = "1.3 September 18, 2000";
|
||||
|
||||
// vars set by pragmas or via command line
|
||||
char drive[8]; // should be no more then 2 char "C:"
|
||||
char directory[maxStringSize];
|
||||
char filename[maxStringSize];
|
||||
char extension[8]; // we'll truncate if the extension is more then 8 chars...
|
||||
char inFileName[512];
|
||||
// char drive[8]; // should be no more then 2 char "C:"
|
||||
// char directory[maxStringSize];
|
||||
// char filename[maxStringSize];
|
||||
// char extension[8]; // we'll truncate if the extension is more then 8 chars...
|
||||
char local_inFileName[512];
|
||||
|
||||
// switches to be sent to mIFF Compiler
|
||||
char sourceBuffer[bufferSize];
|
||||
char outFileName[512]; // x2 to combine filename, dir, and ext
|
||||
char local_outFileName[512]; // x2 to combine filename, dir, and ext
|
||||
bool usePragma = false;
|
||||
bool useCCCP = false;
|
||||
bool verboseMode = false; // default to non-verbose mode
|
||||
@@ -92,8 +92,8 @@ enum errorType {
|
||||
|
||||
ERR_NONE = 0
|
||||
};
|
||||
char err_msg[256];
|
||||
errorType errorFlag = ERR_NONE; // assume no error (default)
|
||||
char local_err_msg[256];
|
||||
errorType local_errorFlag = ERR_NONE; // assume no error (default)
|
||||
|
||||
|
||||
// long and short name definitions for command line options
|
||||
@@ -220,7 +220,7 @@ int main( int argc, // number of args in commandline
|
||||
SetupSharedFoundation::remove();
|
||||
|
||||
SetupSharedThread::remove();
|
||||
return static_cast<int> (errorFlag);
|
||||
return static_cast<int> (local_errorFlag);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
@@ -259,24 +259,24 @@ static void callbackFunction(void)
|
||||
|
||||
#endif
|
||||
|
||||
errorFlag = evaluateArgs();
|
||||
if (ERR_NONE == errorFlag)
|
||||
local_errorFlag = evaluateArgs();
|
||||
if (ERR_NONE == local_errorFlag)
|
||||
{
|
||||
outfileHandler = new OutputFileHandler(outFileName);
|
||||
MIFFCompile(sourceBuffer, inFileName);
|
||||
outfileHandler = new OutputFileHandler(local_outFileName);
|
||||
MIFFCompile(sourceBuffer, local_inFileName);
|
||||
}
|
||||
else
|
||||
handleError(errorFlag);
|
||||
handleError(local_errorFlag);
|
||||
|
||||
if (outfileHandler)
|
||||
{
|
||||
// only write output IF there was no error
|
||||
if (ERR_NONE == errorFlag)
|
||||
if (ERR_NONE == local_errorFlag)
|
||||
{
|
||||
if (!outfileHandler->writeBuffer())
|
||||
{
|
||||
fprintf(stderr, "MIFF: failed to write output file \"%s\"\n", outFileName);
|
||||
errorFlag = ERR_WRITEERROR;
|
||||
fprintf(stderr, "MIFF: failed to write output file \"%s\"\n", local_outFileName);
|
||||
local_errorFlag = ERR_WRITEERROR;
|
||||
}
|
||||
}
|
||||
delete outfileHandler;
|
||||
@@ -323,13 +323,13 @@ static errorType evaluateArgs(void)
|
||||
|
||||
|
||||
// setup input filename
|
||||
strcpy(inFileName, CommandLine::getOptionString(SNAME_INPUT_FILE));
|
||||
strcpy(local_inFileName, CommandLine::getOptionString(SNAME_INPUT_FILE));
|
||||
|
||||
|
||||
// handle output filename spec
|
||||
if (CommandLine::getOccurrenceCount(SNAME_OUTPUT_FILE))
|
||||
{
|
||||
strcpy(outFileName, CommandLine::getOptionString(SNAME_OUTPUT_FILE));
|
||||
strcpy(local_outFileName, CommandLine::getOptionString(SNAME_OUTPUT_FILE));
|
||||
}
|
||||
else if (CommandLine::getOccurrenceCount(SNAME_PRAGMA_TARGET))
|
||||
{
|
||||
@@ -342,15 +342,15 @@ static errorType evaluateArgs(void)
|
||||
char *terminator;
|
||||
|
||||
// start with input file pathname
|
||||
strcpy(outFileName, inFileName);
|
||||
strcpy(local_outFileName, local_inFileName);
|
||||
|
||||
// try to terminate at rightmost '.'
|
||||
terminator = strrchr(outFileName, '.');
|
||||
terminator = strrchr(local_outFileName, '.');
|
||||
if (terminator)
|
||||
*terminator = 0;
|
||||
|
||||
// append the default iff extension
|
||||
strcat(outFileName, ".iff");
|
||||
strcat(local_outFileName, ".iff");
|
||||
}
|
||||
|
||||
|
||||
@@ -361,12 +361,12 @@ static errorType evaluateArgs(void)
|
||||
|
||||
|
||||
// preprocess the input file
|
||||
if (0 == preprocessSource(inFileName))
|
||||
if (0 == preprocessSource(local_inFileName))
|
||||
{
|
||||
if (verboseMode)
|
||||
{
|
||||
sprintf(err_msg,"Now compiling %s...\n", inFileName);
|
||||
MIFFMessage(err_msg, 0);
|
||||
sprintf(local_err_msg,"Now compiling %s...\n", local_inFileName);
|
||||
MIFFMessage(local_err_msg, 0);
|
||||
}
|
||||
if (ERR_NONE == retVal)
|
||||
retVal = loadInputToBuffer(sourceBuffer, bufferSize);
|
||||
@@ -563,7 +563,7 @@ extern "C" void MIFFMessage(char *message, // nullptr terminated string to be
|
||||
// Only call this via parser!!!
|
||||
extern "C" void MIFFSetError(void)
|
||||
{
|
||||
errorFlag = ERR_PARSER;
|
||||
local_errorFlag = ERR_PARSER;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
@@ -586,10 +586,10 @@ extern "C" int validateTargetFilename( char *targetFileName, // pointer to wher
|
||||
unsigned maxTargetBufSize // size of the filename string buffer
|
||||
)
|
||||
{
|
||||
if (strlen(outFileName) > maxTargetBufSize)
|
||||
if (strlen(local_outFileName) > maxTargetBufSize)
|
||||
MIFFMessage("Internal error, increase string buffer size in parser.yac and recompile!", 1);
|
||||
|
||||
strcpy(targetFileName, outFileName);
|
||||
strcpy(targetFileName, local_outFileName);
|
||||
|
||||
return(usePragma);
|
||||
}
|
||||
@@ -667,7 +667,7 @@ static int preprocessSource(char *sourceName)
|
||||
|
||||
extern "C" void MIFFSetIFFName(const char *newFileName)
|
||||
{
|
||||
if (ERR_NONE != errorFlag)
|
||||
if (ERR_NONE != local_errorFlag)
|
||||
return;
|
||||
|
||||
if (outfileHandler)
|
||||
@@ -676,7 +676,7 @@ extern "C" void MIFFSetIFFName(const char *newFileName)
|
||||
|
||||
extern "C" void MIFFinsertForm(const char *formName)
|
||||
{
|
||||
if (ERR_NONE != errorFlag)
|
||||
if (ERR_NONE != local_errorFlag)
|
||||
return;
|
||||
|
||||
if (outfileHandler)
|
||||
@@ -685,7 +685,7 @@ extern "C" void MIFFinsertForm(const char *formName)
|
||||
|
||||
extern "C" void MIFFinsertChunk(const char *chunkName)
|
||||
{
|
||||
if (ERR_NONE != errorFlag)
|
||||
if (ERR_NONE != local_errorFlag)
|
||||
return;
|
||||
|
||||
if (outfileHandler)
|
||||
@@ -694,7 +694,7 @@ extern "C" void MIFFinsertChunk(const char *chunkName)
|
||||
|
||||
extern "C" void MIFFinsertChunkData(void * buffer, unsigned bufferSize)
|
||||
{
|
||||
if (ERR_NONE != errorFlag)
|
||||
if (ERR_NONE != local_errorFlag)
|
||||
return;
|
||||
|
||||
if (outfileHandler)
|
||||
@@ -705,7 +705,7 @@ extern "C" int MIFFloadRawData(char *fname, void * buffer, unsigned maxBufferSiz
|
||||
{
|
||||
int sizeRead = -1;
|
||||
|
||||
if (ERR_NONE != errorFlag)
|
||||
if (ERR_NONE != local_errorFlag)
|
||||
return(sizeRead); // should be -1
|
||||
|
||||
InputFileHandler * inFileName = new InputFileHandler(fname);
|
||||
@@ -725,7 +725,7 @@ extern "C" int MIFFloadRawData(char *fname, void * buffer, unsigned maxBufferSiz
|
||||
|
||||
extern "C" void MIFFexitChunk(void)
|
||||
{
|
||||
if (ERR_NONE != errorFlag)
|
||||
if (ERR_NONE != local_errorFlag)
|
||||
return;
|
||||
|
||||
if (outfileHandler)
|
||||
@@ -733,7 +733,7 @@ extern "C" void MIFFexitChunk(void)
|
||||
}
|
||||
extern "C" void MIFFexitForm(void)
|
||||
{
|
||||
if (ERR_NONE != errorFlag)
|
||||
if (ERR_NONE != local_errorFlag)
|
||||
return;
|
||||
|
||||
if (outfileHandler)
|
||||
|
||||
@@ -843,14 +843,14 @@ int Pvp::calculateGcwImperialScorePercentile(std::string const & gcwCategory, st
|
||||
{
|
||||
std::map<std::string, std::pair<int64, int64> >::const_iterator const iterImperial = gcwImperialScore.find(gcwCategory);
|
||||
if (iterImperial != gcwImperialScore.end())
|
||||
totalImperial = static_cast<uint64>(std::max(0ll, iterImperial->second.first)) + static_cast<uint64>(std::max(0ll, iterImperial->second.second));
|
||||
totalImperial = static_cast<uint64>(std::max((int64)0, iterImperial->second.first)) + static_cast<uint64>(std::max((int64)0, iterImperial->second.second));
|
||||
}
|
||||
|
||||
uint64 total = totalImperial;
|
||||
{
|
||||
std::map<std::string, std::pair<int64, int64> >::const_iterator const iterRebel = gcwRebelScore.find(gcwCategory);
|
||||
if (iterRebel != gcwRebelScore.end())
|
||||
total += (static_cast<uint64>(std::max(0ll, iterRebel->second.first)) + static_cast<uint64>(std::max(0ll, iterRebel->second.second)));
|
||||
total += (static_cast<uint64>(std::max((int64)0, iterRebel->second.first)) + static_cast<uint64>(std::max((int64)0, iterRebel->second.second)));
|
||||
}
|
||||
|
||||
// if the score is less than 1, treat it as a tie; note that score is scaled by 1000
|
||||
|
||||
@@ -991,25 +991,18 @@ jstring JNICALL ScriptMethodsPlayerAccountNamespace::getPlayerUsername(JNIEnv *e
|
||||
NOT_NULL(env);
|
||||
|
||||
CreatureObject const * creatureObject = nullptr;
|
||||
if (!JavaLibrary::getObject(player, creatureObject) || !creatureObject)
|
||||
{
|
||||
DEBUG_WARNING(true, ("JavaLibrary::getPlayerUsername: bad CreatureObject"));
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if(creatureObject)
|
||||
JavaLibrary::getObject(player, creatureObject);
|
||||
DEBUG_WARNING(!creatureObject, ("JavaLibrary::getPlayerUsername: could not get creatureObject for player %d", player));
|
||||
if (creatureObject)
|
||||
{
|
||||
const Client * playerClient = creatureObject->getClient();
|
||||
DEBUG_WARNING(!playerClient, ("JavaLibrary::getPlayerUsername: could not get playerClient for player %d", player));
|
||||
if(playerClient)
|
||||
{
|
||||
return JavaString(playerClient->getAccountName()).getReturnValue();
|
||||
}
|
||||
else {
|
||||
DEBUG_WARNING(true, ("JavaLibrary::getPlayerUsername: bad playerClient"));
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// ======================================================================
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include <set>
|
||||
#include <queue>
|
||||
#include <list>
|
||||
#include <string>
|
||||
|
||||
namespace Unicode
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user