Added adjustments that allow compiling with CLang 9.0.1 or GCC 10

This commit is contained in:
Cekis
2021-11-26 02:52:26 -05:00
parent 8be3a301d3
commit 5c88dd754a
6 changed files with 51 additions and 56 deletions
+6 -5
View File
@@ -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)
+2 -2
View File
@@ -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
{