Compare commits
10 Commits
72d6874da9
...
400a3e49b9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
400a3e49b9 | ||
|
|
442a3ccb9d | ||
|
|
83d6fb652f | ||
|
|
f2b7b49009 | ||
|
|
086b6ebe7b | ||
|
|
e2a91b02e3 | ||
|
|
3041740f64 | ||
|
|
fc3538e54d | ||
|
|
5d1627fd9b | ||
|
|
8c22afa5ca |
731
0001-Fixes-issue-8-gcc-catch-by-value-and-implicit-fallth.patch
Normal file
731
0001-Fixes-issue-8-gcc-catch-by-value-and-implicit-fallth.patch
Normal file
@ -0,0 +1,731 @@
|
||||
From 7f10184f9c7c8fe179b802bde63e045222309768 Mon Sep 17 00:00:00 2001
|
||||
From: kschopmeyer <k.schopmeyer@swbell.net>
|
||||
Date: Thu, 15 Oct 2020 12:47:52 -0500
|
||||
Subject: [PATCH] Fixes issue #8 - gcc catch by value and implicit fallthrough
|
||||
warnings
|
||||
|
||||
This pr also fixes a number of other minor warning message issues
|
||||
as documented below.
|
||||
|
||||
This pr corrects the majority of both of these warning types.
|
||||
|
||||
It also corrects an issue in CIMCLICommand with a type mismatch in
|
||||
comparison
|
||||
|
||||
Update OSINFO.cpp sprintf max size specification
|
||||
|
||||
Removed XMLProcess.* throw specification
|
||||
|
||||
This is deprecated in C++11 and is to be removed in C++17 and shows up
|
||||
as warning with gcc. The only goal was to limit the exceptions that
|
||||
could be thrown by the entity for which it was included, not to throw a
|
||||
specific exception.
|
||||
|
||||
This is no real reason for it in our code.
|
||||
|
||||
Modify catch parameter to make it a reference
|
||||
|
||||
Add bread to case statements to remove compiler warning
|
||||
|
||||
Make catch parameter a reference in TestListener.cpp
|
||||
|
||||
Make catch parameter reference in ReliableIndicationDisableEnable test
|
||||
|
||||
Increate sprintf buffer size in Process_Linux.cpp to remove warning
|
||||
|
||||
Make catch parameter reference in Indication test client
|
||||
|
||||
Add break; statemetn to InteropProvider.cpp
|
||||
|
||||
Add break; statement to CQLFunctionRep.cpp
|
||||
|
||||
Modify catch parameter to define as reference in CQLValue.cpp
|
||||
|
||||
Outdent lines in CIMOperationRequestDecoder.cpp that had warning
|
||||
|
||||
Add FALLTHROUGH comment to case in PUllErrors.cpp
|
||||
|
||||
Separate string and var by space to avoid warning in InternalException.cpp
|
||||
|
||||
reference: https://github.com/OpenPegasus/OpenPegasus/commit/7f10184f9c7c8fe179b802bde63e045222309768
|
||||
---
|
||||
src/Clients/cimcli/CIMCLICommand.cpp | 2 +-
|
||||
src/Clients/cimcli/ObjectBuilder.cpp | 1 +
|
||||
src/Clients/osinfo/OSInfo.cpp | 4 +-
|
||||
src/Clients/wbemexec/XMLProcess.cpp | 2 -
|
||||
src/Clients/wbemexec/XMLProcess.h | 4 +-
|
||||
src/Pegasus/CQL/CQLCLI/CQLCLI.cpp | 5 +-
|
||||
src/Pegasus/CQL/CQLFunctionRep.cpp | 3 +
|
||||
.../Pegasus/CQL/tests/CQLValue/CQLValue.cpp | 3 +-
|
||||
.../Client/CIMOperationRequestEncoder.cpp | 18 +++---
|
||||
.../Client/tests/PullErrors/PullErrors.cpp | 59 +------------------
|
||||
.../TestStaticClient/TestStaticClient.cpp | 2 +-
|
||||
.../src/Pegasus/Common/CIMResponseData.cpp | 5 +-
|
||||
.../src/Pegasus/Common/InternalException.cpp | 2 +-
|
||||
src/Pegasus/Common/Logger.cpp | 4 ++
|
||||
.../InteropProvider/InteropProvider.cpp | 1 +
|
||||
.../tests/TestCIMQueryCap.cpp | 12 ++--
|
||||
.../tests/TestDynListener/TestListener.cpp | 3 +-
|
||||
src/Pegasus/FQL/FQLOperand.cpp | 2 +-
|
||||
src/Pegasus/FQL/FQLOperand.h | 17 +++---
|
||||
.../src/Pegasus/FQL/FQLQueryStatementRep.cpp | 9 ++-
|
||||
.../ReliableIndicationDisableEnableTest.cpp | 28 ++++-----
|
||||
.../ManagedSystem/Process/Process_Linux.cpp | 5 +-
|
||||
.../testclient/IndicationStressTest.cpp | 2 +-
|
||||
23 files changed, 72 insertions(+), 121 deletions(-)
|
||||
|
||||
diff --git a/src/Clients/cimcli/CIMCLICommand.cpp b/src/Clients/cimcli/CIMCLICommand.cpp
|
||||
index a7bdd48..64792d0 100644
|
||||
--- a/src/Clients/cimcli/CIMCLICommand.cpp
|
||||
+++ b/src/Clients/cimcli/CIMCLICommand.cpp
|
||||
@@ -227,7 +227,7 @@ public:
|
||||
// FUTURE - Should test against operation we are expecting
|
||||
if (_localVerboseTest &&
|
||||
((item.operationType <= 0) || item.operationType >
|
||||
- CIM_ENUMERATION_COUNT_REQUEST_MESSAGE))
|
||||
+ (CIMOperationType)CIM_ENUMERATION_COUNT_REQUEST_MESSAGE))
|
||||
{
|
||||
cerr << "Error:Operation type " << item.operationType
|
||||
<< " out of expected range in ClientOpPerformanceData"
|
||||
diff --git a/src/Clients/cimcli/ObjectBuilder.cpp b/src/Clients/cimcli/ObjectBuilder.cpp
|
||||
index 7ad77f5..cab101b 100644
|
||||
--- a/src/Clients/cimcli/ObjectBuilder.cpp
|
||||
+++ b/src/Clients/cimcli/ObjectBuilder.cpp
|
||||
@@ -1131,6 +1131,7 @@ void ObjectBuilder::scanInputList(CIMClient& client,
|
||||
//#P 33
|
||||
//#T PARSE_FAIL_ERR
|
||||
//#S Parse Failed. Input Parameter \"{0}\".
|
||||
+ break; // added to avoid compiler warning message
|
||||
}
|
||||
|
||||
case UNKNOWN:
|
||||
diff --git a/src/Clients/osinfo/OSInfo.cpp b/src/Clients/osinfo/OSInfo.cpp
|
||||
index 28b5a70..88a046e 100644
|
||||
--- a/src/Clients/osinfo/OSInfo.cpp
|
||||
+++ b/src/Clients/osinfo/OSInfo.cpp
|
||||
@@ -841,7 +841,7 @@ void OSInfoCommand::gatherProperties(CIMInstance &inst, Boolean cimFormat)
|
||||
else if (propertyName.equal (CIMName ("SystemUpTime")))
|
||||
{
|
||||
Uint64 total;
|
||||
- char uptime[80];
|
||||
+ char uptime[160];
|
||||
inst.getProperty(j).getValue().get(total);
|
||||
|
||||
if (!cimFormat)
|
||||
@@ -872,7 +872,7 @@ void OSInfoCommand::gatherProperties(CIMInstance &inst, Boolean cimFormat)
|
||||
}
|
||||
else
|
||||
{
|
||||
- sprintf(dayString, (days == 1 ?
|
||||
+ sprintf(dayString, (days == 1 ?
|
||||
"%" PEGASUS_64BIT_CONVERSION_WIDTH "u day," :
|
||||
"%" PEGASUS_64BIT_CONVERSION_WIDTH "u days," ), days);
|
||||
|
||||
diff --git a/src/Clients/wbemexec/XMLProcess.cpp b/src/Clients/wbemexec/XMLProcess.cpp
|
||||
index 1926130..3f6e31c 100644
|
||||
--- a/src/Clients/wbemexec/XMLProcess.cpp
|
||||
+++ b/src/Clients/wbemexec/XMLProcess.cpp
|
||||
@@ -85,8 +85,6 @@ Buffer XMLProcess::encapsulate( XmlParser& parser,
|
||||
Buffer& content,
|
||||
Buffer& httpHeaders
|
||||
)
|
||||
-throw (XmlValidationError, XmlSemanticError, WbemExecException,
|
||||
- XmlException, Exception)
|
||||
{
|
||||
XmlEntry entry;
|
||||
Buffer message;
|
||||
diff --git a/src/Clients/wbemexec/XMLProcess.h b/src/Clients/wbemexec/XMLProcess.h
|
||||
index 497118d..e99bffc 100644
|
||||
--- a/src/Clients/wbemexec/XMLProcess.h
|
||||
+++ b/src/Clients/wbemexec/XMLProcess.h
|
||||
@@ -96,9 +96,7 @@ public:
|
||||
Boolean useMPost,
|
||||
Boolean useHTTP11,
|
||||
Buffer& content,
|
||||
- Buffer& httpHeaders)
|
||||
- throw (XmlValidationError, XmlSemanticError, WbemExecException,
|
||||
- XmlException, Exception);
|
||||
+ Buffer& httpHeaders);
|
||||
};
|
||||
|
||||
PEGASUS_NAMESPACE_END
|
||||
diff --git a/src/Pegasus/CQL/CQLCLI/CQLCLI.cpp b/src/Pegasus/CQL/CQLCLI/CQLCLI.cpp
|
||||
index 576ce7d..45d16ba 100644
|
||||
--- a/src/Pegasus/CQL/CQLCLI/CQLCLI.cpp
|
||||
+++ b/src/Pegasus/CQL/CQLCLI/CQLCLI.cpp
|
||||
@@ -511,7 +511,7 @@ Boolean _evaluate(Array<CQLSelectStatement>& _statements,
|
||||
else
|
||||
cout << "FALSE" << endl;
|
||||
}
|
||||
- catch(Exception e)
|
||||
+ catch(const Exception& e)
|
||||
{
|
||||
if (cqlcli_verbose)
|
||||
cout << "ERROR! -- " << _statements[i].toString() << endl
|
||||
@@ -1158,7 +1158,7 @@ int main(int argc, char ** argv)
|
||||
_evaluate(_statements,_instances, testOption);
|
||||
_normalize(_statements,_instances, testOption);
|
||||
}
|
||||
- catch(Exception e)
|
||||
+ catch(const Exception& e)
|
||||
{
|
||||
cout << getStatementString(e.getMessage()) << endl;
|
||||
}
|
||||
@@ -1177,4 +1177,3 @@ int main(int argc, char ** argv)
|
||||
//
|
||||
return 0;
|
||||
}
|
||||
-
|
||||
diff --git a/src/Pegasus/CQL/CQLFunctionRep.cpp b/src/Pegasus/CQL/CQLFunctionRep.cpp
|
||||
index e89aa2e..a8a13e6 100644
|
||||
--- a/src/Pegasus/CQL/CQLFunctionRep.cpp
|
||||
+++ b/src/Pegasus/CQL/CQLFunctionRep.cpp
|
||||
@@ -304,7 +304,10 @@ String CQLFunctionRep::functionTypeToString() const
|
||||
break;
|
||||
case UNKNOWN:
|
||||
returnStr.append("UNKNOWN");
|
||||
+ break;
|
||||
default:
|
||||
+ /* TODO/ks/15Oct20: This and the above append UNKNOWN. Should this
|
||||
+ append something else to avoid confusion. */
|
||||
returnStr.append("UNKNOWN");
|
||||
break;
|
||||
}
|
||||
diff --git a/src/Pegasus/CQL/tests/CQLValue/CQLValue.cpp b/src/Pegasus/CQL/tests/CQLValue/CQLValue.cpp
|
||||
index a27735c..781cb21 100644
|
||||
--- a/src/Pegasus/CQL/tests/CQLValue/CQLValue.cpp
|
||||
+++ b/src/Pegasus/CQL/tests/CQLValue/CQLValue.cpp
|
||||
@@ -651,11 +651,10 @@ int main( int argc, char *argv[] ){
|
||||
cout << argv[0] << " " << argv[1] << " +++++ passed all tests" << endl;
|
||||
|
||||
}
|
||||
- catch(Exception e)
|
||||
+ catch(const Exception& e)
|
||||
{
|
||||
cout << e.getMessage() << endl;
|
||||
PEGASUS_TEST_ASSERT(0);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
-
|
||||
diff --git a/src/Pegasus/Client/CIMOperationRequestEncoder.cpp b/src/Pegasus/Client/CIMOperationRequestEncoder.cpp
|
||||
index 726940d..f58735e 100644
|
||||
--- a/src/Pegasus/Client/CIMOperationRequestEncoder.cpp
|
||||
+++ b/src/Pegasus/Client/CIMOperationRequestEncoder.cpp
|
||||
@@ -533,15 +533,15 @@ void CIMOperationRequestEncoder::_encodeGetInstanceRequest(
|
||||
XmlWriter::appendPropertyListIParameter(
|
||||
params, message->propertyList);
|
||||
|
||||
- Buffer buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
|
||||
- message->nameSpace, CIMName ("GetInstance"), message->messageId,
|
||||
- message->getHttpMethod(),
|
||||
- _authenticator->buildRequestAuthHeader(),
|
||||
- ((AcceptLanguageListContainer)message->operationContext.get(
|
||||
- AcceptLanguageListContainer::NAME)).getLanguages(),
|
||||
- ((ContentLanguageListContainer)message->operationContext.get(
|
||||
- ContentLanguageListContainer::NAME)).getLanguages(),
|
||||
- params, _binaryResponse);
|
||||
+ Buffer buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
|
||||
+ message->nameSpace, CIMName ("GetInstance"), message->messageId,
|
||||
+ message->getHttpMethod(),
|
||||
+ _authenticator->buildRequestAuthHeader(),
|
||||
+ ((AcceptLanguageListContainer)message->operationContext.get(
|
||||
+ AcceptLanguageListContainer::NAME)).getLanguages(),
|
||||
+ ((ContentLanguageListContainer)message->operationContext.get(
|
||||
+ ContentLanguageListContainer::NAME)).getLanguages(),
|
||||
+ params, _binaryResponse);
|
||||
|
||||
_sendRequest(buffer);
|
||||
}
|
||||
diff --git a/src/Pegasus/Client/tests/PullErrors/PullErrors.cpp b/src/Pegasus/Client/tests/PullErrors/PullErrors.cpp
|
||||
index 7743dda..4318b7e 100644
|
||||
--- a/src/Pegasus/Client/tests/PullErrors/PullErrors.cpp
|
||||
+++ b/src/Pegasus/Client/tests/PullErrors/PullErrors.cpp
|
||||
@@ -102,7 +102,7 @@ static Boolean verbose;
|
||||
* [-charSet] set matches a literal hypen and any character in the set
|
||||
* []charSet] match a literal close bracket and any character in the set
|
||||
*
|
||||
- * char match itself except where char is '*' or '?' or '['
|
||||
+ * char match itself except where char is '*', '?', '[', or '\'
|
||||
* \char match char, including any pattern character
|
||||
*
|
||||
* examples:
|
||||
@@ -261,6 +261,8 @@ bool _globMatch(const char* pattern, const char* str)
|
||||
{
|
||||
patChar = *pattern++;
|
||||
}
|
||||
+ // TODO'ks'15Oct20: validate this fallthrough with test
|
||||
+ /*FALLTHROUGH*/
|
||||
// default, test current character
|
||||
default:
|
||||
if (patChar != *str)
|
||||
@@ -279,61 +281,6 @@ static int _globMatch(const String& pattern, const String& str)
|
||||
return _globMatch(pattern.getCString(), str.getCString());
|
||||
}
|
||||
|
||||
-////// Original match. However, this one appears to have problems
|
||||
-////static int _match(const char* pattern, const char* str)
|
||||
-////{
|
||||
-//// const char* p;
|
||||
-//// const char* q;
|
||||
-////
|
||||
-//// /* Now match expression to str. */
|
||||
-////
|
||||
-//// for (p = pattern, q = str; *p && *q; )
|
||||
-//// {
|
||||
-//// if (*p == '*')
|
||||
-//// {
|
||||
-//// const char* r;
|
||||
-////
|
||||
-//// p++;
|
||||
-////
|
||||
-//// /* Recursively call to find the shortest match. */
|
||||
-////
|
||||
-//// for (r = q; *r; r++)
|
||||
-//// {
|
||||
-//// if (_match(p, r) == 0)
|
||||
-//// break;
|
||||
-//// }
|
||||
-////
|
||||
-//// q = r;
|
||||
-////
|
||||
-//// }
|
||||
-//// else if (*p == *q)
|
||||
-//// {
|
||||
-//// p++;
|
||||
-//// q++;
|
||||
-//// }
|
||||
-//// else
|
||||
-//// return -1;
|
||||
-//// }
|
||||
-////
|
||||
-//// /* If src was exhausted but pattern has a single '*'remaining charcters,
|
||||
-//// * then match the result.
|
||||
-//// */
|
||||
-////
|
||||
-//// if (p[0] == '*' && p[1] == '\0')
|
||||
-//// return 0;
|
||||
-////
|
||||
-//// /* If anything left over, then they do not match. */
|
||||
-////
|
||||
-//// if (*p || *q)
|
||||
-//// return -1;
|
||||
-////
|
||||
-//// return 0;
|
||||
-////}
|
||||
-////
|
||||
-////static int _Match(const String& pattern, const String& str)
|
||||
-////{
|
||||
-//// return _match(pattern.getCString(), str.getCString());
|
||||
-////}
|
||||
|
||||
/***************************************************************************
|
||||
Class to test all of the different operations with various
|
||||
diff --git a/src/Pegasus/Client/tests/TestStaticClient/TestStaticClient.cpp b/src/Pegasus/Client/tests/TestStaticClient/TestStaticClient.cpp
|
||||
index f3bbb2f..146f010 100644
|
||||
--- a/src/Pegasus/Client/tests/TestStaticClient/TestStaticClient.cpp
|
||||
+++ b/src/Pegasus/Client/tests/TestStaticClient/TestStaticClient.cpp
|
||||
@@ -83,7 +83,7 @@ int main()
|
||||
{
|
||||
cout << "\n+++++ passed all tests" << endl;
|
||||
}
|
||||
- catch(Exception)
|
||||
+ catch(Exception&)
|
||||
{
|
||||
cout << "\n----- Test Static Client Failed" << endl;
|
||||
}
|
||||
diff --git a/src/Pegasus/Common/CIMResponseData.cpp b/src/Pegasus/Common/CIMResponseData.cpp
|
||||
index 88bdd13..18451f2 100644
|
||||
--- a/src/Pegasus/Common/CIMResponseData.cpp
|
||||
+++ b/src/Pegasus/Common/CIMResponseData.cpp
|
||||
@@ -979,7 +979,7 @@ void CIMResponseData::completeHostNameAndNamespace(
|
||||
{
|
||||
// Instances added to account for namedInstance in Pull operations.
|
||||
case RESP_INSTANCES:
|
||||
-
|
||||
+ {
|
||||
for (Uint32 j = 0, n = _instances.size(); j < n; j++)
|
||||
{
|
||||
const CIMInstance& instance = _instances[j];
|
||||
@@ -994,6 +994,9 @@ void CIMResponseData::completeHostNameAndNamespace(
|
||||
p.setNameSpace(ns);
|
||||
}
|
||||
}
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
case RESP_OBJECTS:
|
||||
{
|
||||
for (Uint32 j = 0, n = _objects.size(); j < n; j++)
|
||||
diff --git a/src/Pegasus/Common/InternalException.cpp b/src/Pegasus/Common/InternalException.cpp
|
||||
index 2e85b90..dfd6aaa 100644
|
||||
--- a/src/Pegasus/Common/InternalException.cpp
|
||||
+++ b/src/Pegasus/Common/InternalException.cpp
|
||||
@@ -982,7 +982,7 @@ SocketWriteError::~SocketWriteError()
|
||||
// PEGASUS_MAXELEMENTS_NUM HTTP header fields in a single HTTP message
|
||||
//==============================================================================
|
||||
TooManyHTTPHeadersException::TooManyHTTPHeadersException()
|
||||
- : Exception("more than "PEGASUS_MAXELEMENTS
|
||||
+ : Exception("more than " PEGASUS_MAXELEMENTS
|
||||
" header fields detected in HTTP message")
|
||||
{
|
||||
}
|
||||
diff --git a/src/Pegasus/Common/Logger.cpp b/src/Pegasus/Common/Logger.cpp
|
||||
index 7019a62..2de25fc 100644
|
||||
--- a/src/Pegasus/Common/Logger.cpp
|
||||
+++ b/src/Pegasus/Common/Logger.cpp
|
||||
@@ -500,12 +500,16 @@ void Logger::setlogLevelMask( const String &logLevelList )
|
||||
{
|
||||
case Logger::TRACE:
|
||||
_severityMask |= Logger::TRACE;
|
||||
+ /* FALLTHROUGH */
|
||||
case Logger::INFORMATION:
|
||||
_severityMask |= Logger::INFORMATION;
|
||||
+ /* FALLTHROUGH */
|
||||
case Logger::WARNING:
|
||||
_severityMask |= Logger::WARNING;
|
||||
+ /* FALLTHROUGH */
|
||||
case Logger::SEVERE:
|
||||
_severityMask |= Logger::SEVERE;
|
||||
+ /* FALLTHROUGH */
|
||||
case Logger::FATAL:
|
||||
_severityMask |= Logger::FATAL;
|
||||
}
|
||||
diff --git a/src/Pegasus/ControlProviders/InteropProvider/InteropProvider.cpp b/src/Pegasus/ControlProviders/InteropProvider/InteropProvider.cpp
|
||||
index 14939eb..d41bae8 100644
|
||||
--- a/src/Pegasus/ControlProviders/InteropProvider/InteropProvider.cpp
|
||||
+++ b/src/Pegasus/ControlProviders/InteropProvider/InteropProvider.cpp
|
||||
@@ -804,6 +804,7 @@ bool InteropProvider::validAssocClassForObject(
|
||||
expectedTargetRole = PROPERTY_ANTECEDENT;
|
||||
expectedOriginRole = PROPERTY_DEPENDENT;
|
||||
}
|
||||
+ break;
|
||||
case PG_HOSTEDOBJECTMANAGER:
|
||||
if(originClassEnum == PG_COMPUTERSYSTEM)
|
||||
{
|
||||
diff --git a/src/Pegasus/ControlProviders/QueryCapabilitiesProvider/tests/TestCIMQueryCap.cpp b/src/Pegasus/ControlProviders/QueryCapabilitiesProvider/tests/TestCIMQueryCap.cpp
|
||||
index 08579f9..3359026 100644
|
||||
--- a/src/Pegasus/ControlProviders/QueryCapabilitiesProvider/tests/TestCIMQueryCap.cpp
|
||||
+++ b/src/Pegasus/ControlProviders/QueryCapabilitiesProvider/tests/TestCIMQueryCap.cpp
|
||||
@@ -195,7 +195,7 @@ void testCreateInstance(CIMClient& client, const char* ns)
|
||||
{
|
||||
path = client.createInstance(ns, instances[0]);
|
||||
}
|
||||
- catch(Exception)
|
||||
+ catch(const Exception&)
|
||||
{
|
||||
// Do nothing. This is expected since createInstance is NOT
|
||||
// supported.
|
||||
@@ -216,7 +216,7 @@ void testDeleteInstance(CIMClient& client, const char* ns)
|
||||
{
|
||||
client.deleteInstance(ns, instances[0].getPath());
|
||||
}
|
||||
- catch(Exception)
|
||||
+ catch(const Exception&)
|
||||
{
|
||||
// Do nothing. This is expected since deleteInstance is NOT
|
||||
// supported.
|
||||
@@ -246,7 +246,7 @@ void testModifyInstance(CIMClient& client, const char* ns)
|
||||
{
|
||||
client.modifyInstance(ns, instances[0]);
|
||||
}
|
||||
- catch(Exception)
|
||||
+ catch(const Exception&)
|
||||
{
|
||||
// Do nothing. This is expected since modifyInstance is NOT
|
||||
// supported.
|
||||
@@ -268,7 +268,7 @@ int main(int, char** argv)
|
||||
{
|
||||
client.connectLocal();
|
||||
}
|
||||
- catch (Exception& e)
|
||||
+ catch (const Exception& e)
|
||||
{
|
||||
cerr << "Error: " << e.getMessage() << endl;
|
||||
cerr << "Exception occured while trying to connect to the server."
|
||||
@@ -304,7 +304,7 @@ int main(int, char** argv)
|
||||
testModifyInstance(client, NAMESPACE_CIMV2);
|
||||
testModifyInstance(client, NAMESPACE_SAMPLEPROVIDER);
|
||||
}
|
||||
- catch(Exception& e)
|
||||
+ catch(const Exception& e)
|
||||
{
|
||||
cerr << argv[0] << ": Exception Occcured. " << e.getMessage() << endl;
|
||||
cerr << argv[0] << ": " << testCaseName << " Failed. " << endl;
|
||||
@@ -314,5 +314,3 @@ int main(int, char** argv)
|
||||
cout << argv[0] << " +++++ passed all tests" << endl;
|
||||
return 0;
|
||||
}
|
||||
-
|
||||
-
|
||||
diff --git a/src/Pegasus/DynListener/tests/TestDynListener/TestListener.cpp b/src/Pegasus/DynListener/tests/TestDynListener/TestListener.cpp
|
||||
index 8f420ba..6f44aeb 100644
|
||||
--- a/src/Pegasus/DynListener/tests/TestDynListener/TestListener.cpp
|
||||
+++ b/src/Pegasus/DynListener/tests/TestDynListener/TestListener.cpp
|
||||
@@ -258,7 +258,7 @@ int main()
|
||||
printf("CIMException %s\n",
|
||||
(const char*)ce.getMessage().getCString());
|
||||
}
|
||||
- catch (Exception e)
|
||||
+ catch (const Exception& e)
|
||||
{
|
||||
printf("Exception %s\n",
|
||||
(const char*)e.getMessage().getCString());
|
||||
@@ -266,4 +266,3 @@ int main()
|
||||
|
||||
return 0;
|
||||
}
|
||||
-
|
||||
diff --git a/src/Pegasus/FQL/FQLOperand.cpp b/src/Pegasus/FQL/FQLOperand.cpp
|
||||
index 6ed7be2..ada5a88 100644
|
||||
--- a/src/Pegasus/FQL/FQLOperand.cpp
|
||||
+++ b/src/Pegasus/FQL/FQLOperand.cpp
|
||||
@@ -287,7 +287,7 @@ Boolean FQLOperand::getIndexedValue(const FQLOperand& fromOp, Uint32 index)
|
||||
break;
|
||||
}
|
||||
}
|
||||
- catch (IndexOutOfBoundsException)
|
||||
+ catch (const IndexOutOfBoundsException&)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
diff --git a/src/Pegasus/FQL/FQLOperand.h b/src/Pegasus/FQL/FQLOperand.h
|
||||
index ce06aea..7a3bd52 100644
|
||||
--- a/src/Pegasus/FQL/FQLOperand.h
|
||||
+++ b/src/Pegasus/FQL/FQLOperand.h
|
||||
@@ -258,7 +258,7 @@ public:
|
||||
{
|
||||
_dateTimeValue.set(x);
|
||||
}
|
||||
- catch (InvalidDateTimeFormatException)
|
||||
+ catch (const InvalidDateTimeFormatException&)
|
||||
{
|
||||
throw TypeMismatchException();
|
||||
}
|
||||
@@ -284,7 +284,7 @@ public:
|
||||
_arrayDateTimeValue.append(y);
|
||||
}
|
||||
}
|
||||
- catch (InvalidDateTimeFormatException)
|
||||
+ catch (const InvalidDateTimeFormatException&)
|
||||
{
|
||||
throw TypeMismatchException();
|
||||
}
|
||||
@@ -309,7 +309,7 @@ public:
|
||||
{
|
||||
_referenceValue = CIMObjectPath(x);
|
||||
}
|
||||
- catch (MalformedObjectNameException)
|
||||
+ catch (const MalformedObjectNameException&)
|
||||
{
|
||||
throw TypeMismatchException();
|
||||
}
|
||||
@@ -344,7 +344,7 @@ public:
|
||||
_arrayReferenceValue.append(y);
|
||||
}
|
||||
}
|
||||
- catch (MalformedObjectNameException)
|
||||
+ catch (const MalformedObjectNameException&)
|
||||
{
|
||||
throw TypeMismatchException();
|
||||
}
|
||||
@@ -582,7 +582,7 @@ public:
|
||||
{
|
||||
return CIMDateTime(_stringValue);
|
||||
}
|
||||
- catch (InvalidDateTimeFormatException)
|
||||
+ catch (const InvalidDateTimeFormatException&)
|
||||
{
|
||||
throw TypeMismatchException();
|
||||
}
|
||||
@@ -603,7 +603,7 @@ public:
|
||||
{
|
||||
return CIMObjectPath(String(_stringValue));
|
||||
}
|
||||
- catch (...)
|
||||
+ catch (const Exception&)
|
||||
{
|
||||
throw TypeMismatchException();
|
||||
}
|
||||
@@ -633,7 +633,7 @@ public:
|
||||
rtn.append(CIMDateTime(_arrayStringValue[i]));
|
||||
}
|
||||
}
|
||||
- catch (InvalidDateTimeFormatException)
|
||||
+ catch (const InvalidDateTimeFormatException&)
|
||||
{
|
||||
throw TypeMismatchException();
|
||||
}
|
||||
@@ -667,7 +667,7 @@ public:
|
||||
rtn.append(CIMObjectPath(_arrayStringValue[i]));
|
||||
}
|
||||
}
|
||||
- catch (MalformedObjectNameException)
|
||||
+ catch (const MalformedObjectNameException&)
|
||||
{
|
||||
throw TypeMismatchException();
|
||||
}
|
||||
@@ -940,4 +940,3 @@ private:
|
||||
PEGASUS_NAMESPACE_END
|
||||
|
||||
#endif /* Pegasus_FQLOperand_h */
|
||||
-
|
||||
diff --git a/src/Pegasus/FQL/FQLQueryStatementRep.cpp b/src/Pegasus/FQL/FQLQueryStatementRep.cpp
|
||||
index b02c8f3..a18f94d 100644
|
||||
--- a/src/Pegasus/FQL/FQLQueryStatementRep.cpp
|
||||
+++ b/src/Pegasus/FQL/FQLQueryStatementRep.cpp
|
||||
@@ -408,6 +408,7 @@ static Boolean _Evaluate(
|
||||
op);
|
||||
}
|
||||
}
|
||||
+
|
||||
// In this case, the right hand might still be String and we
|
||||
// must convert
|
||||
case FQLOperand::REFERENCE_VALUE:
|
||||
@@ -427,6 +428,7 @@ static Boolean _Evaluate(
|
||||
op);
|
||||
}
|
||||
}
|
||||
+
|
||||
case FQLOperand::PROPERTY_NAME:
|
||||
PEGASUS_ASSERT(0);
|
||||
}
|
||||
@@ -434,7 +436,7 @@ static Boolean _Evaluate(
|
||||
}
|
||||
|
||||
// Catch the specific IndexOutOf range set by FQLOperand.h
|
||||
- catch (IndexOutOfBoundsException)
|
||||
+ catch (const IndexOutOfBoundsException&)
|
||||
{
|
||||
#ifdef FQL_DOTRACE
|
||||
DCOUT << "Caught index out of Bounds Exception" << endl;
|
||||
@@ -739,6 +741,8 @@ Boolean FQLQueryStatementRep::evaluateQuery(
|
||||
// All operations allowed
|
||||
allComparesAllowed = true;
|
||||
}
|
||||
+ // fall through
|
||||
+ /* FALLTHRU */
|
||||
case FQL_LT:
|
||||
case FQL_LE:
|
||||
case FQL_GT:
|
||||
@@ -832,7 +836,8 @@ Boolean FQLQueryStatementRep::evaluateQuery(
|
||||
case FQL_NOT_ANY:
|
||||
case FQL_NOT_EVERY:
|
||||
isNotType = true;
|
||||
-
|
||||
+ // fall through
|
||||
+ /* FALLTHRU */
|
||||
case FQL_EVERY:
|
||||
case FQL_ANY:
|
||||
{
|
||||
diff --git a/src/Pegasus/HandlerService/tests/ReliableIndicationDisableEnable/ReliableIndicationDisableEnableTest.cpp b/src/Pegasus/HandlerService/tests/ReliableIndicationDisableEnable/ReliableIndicationDisableEnableTest.cpp
|
||||
index 5d460e0..5820e4c 100644
|
||||
--- a/src/Pegasus/HandlerService/tests/ReliableIndicationDisableEnable/ReliableIndicationDisableEnableTest.cpp
|
||||
+++ b/src/Pegasus/HandlerService/tests/ReliableIndicationDisableEnable/ReliableIndicationDisableEnableTest.cpp
|
||||
@@ -156,7 +156,7 @@ void MyIndicationConsumer::consumeIndication(
|
||||
<< receivedIndicationCount.get()
|
||||
<< " of " << indicationSendCountTotal << endl;
|
||||
}
|
||||
-
|
||||
+
|
||||
//
|
||||
// Get the date and time from the indication
|
||||
// Compare it to the current date
|
||||
@@ -939,7 +939,7 @@ ThreadReturnType PEGASUS_THREAD_CDECL _executeTests(void *parm)
|
||||
elapsedTime.stop();
|
||||
_testEnd(uniqueID, elapsedTime.getElapsed());
|
||||
}
|
||||
- catch(Exception e)
|
||||
+ catch(Exception& e)
|
||||
{
|
||||
cout << e.getMessage() << endl;
|
||||
}
|
||||
@@ -1055,15 +1055,15 @@ int _beginTest(CIMClient& workClient, const char* opt,
|
||||
if (monitorClientResidentListener)
|
||||
{
|
||||
// Add our consumer
|
||||
- // CIMListener will be not started yet
|
||||
- // It will be started after sending indication
|
||||
+ // CIMListener will be not started yet
|
||||
+ // It will be started after sending indication
|
||||
// so that a temporary indication delivery failure
|
||||
- // will occur and after then CIMListener
|
||||
- // will be started so that for reliable indication
|
||||
- // enable, indication will be delivered after few retry
|
||||
- // and for reliable indication disable,indication will be
|
||||
- // not delivered.
|
||||
-
|
||||
+ // will occur and after then CIMListener
|
||||
+ // will be started so that for reliable indication
|
||||
+ // enable, indication will be delivered after few retry
|
||||
+ // and for reliable indication disable,indication will be
|
||||
+ // not delivered.
|
||||
+
|
||||
listener.addConsumer(consumer1);
|
||||
}
|
||||
|
||||
@@ -1185,11 +1185,11 @@ int _beginTest(CIMClient& workClient, const char* opt,
|
||||
throw;
|
||||
}
|
||||
}
|
||||
-
|
||||
+
|
||||
while (noChangeIterations <= MAX_NO_CHANGE_ITERATIONS)
|
||||
{
|
||||
totalIterations++;
|
||||
-
|
||||
+
|
||||
System::sleep (SLEEP_SEC);
|
||||
|
||||
if (monitorClientResidentListener)
|
||||
@@ -1291,12 +1291,12 @@ int _beginTest(CIMClient& workClient, const char* opt,
|
||||
}
|
||||
else
|
||||
{
|
||||
- cout << " Indications Sent and Received Not Matched " << endl
|
||||
+ cout << " Indications Sent and Received Not Matched " << endl
|
||||
<< endl;
|
||||
|
||||
}
|
||||
|
||||
-
|
||||
+
|
||||
}
|
||||
|
||||
|
||||
diff --git a/src/Providers/ManagedSystem/Process/Process_Linux.cpp b/src/Providers/ManagedSystem/Process/Process_Linux.cpp
|
||||
index 572d9f8..dd72620 100644
|
||||
--- a/src/Providers/ManagedSystem/Process/Process_Linux.cpp
|
||||
+++ b/src/Providers/ManagedSystem/Process/Process_Linux.cpp
|
||||
@@ -1114,7 +1114,7 @@ Boolean get_proc(peg_proc_t* P, int &pIndex , Boolean find_by_pid)
|
||||
{
|
||||
static struct dirent *dir;
|
||||
static struct stat stat_buff;
|
||||
- static char path[32];
|
||||
+ static char path[512];
|
||||
static char buffer[512];
|
||||
DIR* procDir;
|
||||
int count;
|
||||
@@ -1233,6 +1233,3 @@ void doPercentCPU(char *inputFileString, peg_proc_t *P)
|
||||
}
|
||||
else P->pst_pctcpu = 0;
|
||||
}
|
||||
-
|
||||
-
|
||||
-
|
||||
diff --git a/src/Providers/TestProviders/IndicationStressTestProvider/testclient/IndicationStressTest.cpp b/src/Providers/TestProviders/IndicationStressTestProvider/testclient/IndicationStressTest.cpp
|
||||
index 50f585c..a7be349 100644
|
||||
--- a/src/Providers/TestProviders/IndicationStressTestProvider/testclient/IndicationStressTest.cpp
|
||||
+++ b/src/Providers/TestProviders/IndicationStressTestProvider/testclient/IndicationStressTest.cpp
|
||||
@@ -1036,7 +1036,7 @@ ThreadReturnType PEGASUS_THREAD_CDECL _executeTests(void *parm)
|
||||
elapsedTime.stop();
|
||||
_testEnd(uniqueID, elapsedTime.getElapsed());
|
||||
}
|
||||
- catch(Exception e)
|
||||
+ catch(const Exception & e)
|
||||
{
|
||||
cout << e.getMessage() << endl;
|
||||
}
|
||||
--
|
||||
2.39.1
|
||||
|
||||
184
add-loongarch64-support.patch
Normal file
184
add-loongarch64-support.patch
Normal file
@ -0,0 +1,184 @@
|
||||
From 7be88f8e1201deac5cbf489730a7700b71869de6 Mon Sep 17 00:00:00 2001
|
||||
From: Jingyun Hua <huajingyun@loongson.cn>
|
||||
Date: Thu, 8 Dec 2022 07:41:58 +0000
|
||||
Subject: [PATCH] add loongarch64 support
|
||||
|
||||
Signed-off-by: Jingyun Hua <huajingyun@loongson.cn>
|
||||
---
|
||||
mak/platform_LINUX_LOONGARCH64_GNU.mak | 34 ++++++
|
||||
src/Pegasus/Common/Config.h | 2 +
|
||||
.../Common/Platform_LINUX_LOONGARCH64_GNU.h | 108 ++++++++++++++++++
|
||||
3 files changed, 144 insertions(+)
|
||||
create mode 100644 mak/platform_LINUX_LOONGARCH64_GNU.mak
|
||||
create mode 100644 src/Pegasus/Common/Platform_LINUX_LOONGARCH64_GNU.h
|
||||
|
||||
diff --git a/mak/platform_LINUX_LOONGARCH64_GNU.mak b/mak/platform_LINUX_LOONGARCH64_GNU.mak
|
||||
new file mode 100644
|
||||
index 0000000..b3a2652
|
||||
--- /dev/null
|
||||
+++ b/mak/platform_LINUX_LOONGARCH64_GNU.mak
|
||||
@@ -0,0 +1,34 @@
|
||||
+#//%LICENSE////////////////////////////////////////////////////////////////
|
||||
+#//
|
||||
+#// Licensed to The Open Group (TOG) under one or more contributor license
|
||||
+#// agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
|
||||
+#// this work for additional information regarding copyright ownership.
|
||||
+#// Each contributor licenses this file to you under the OpenPegasus Open
|
||||
+#// Source License; you may not use this file except in compliance with the
|
||||
+#// License.
|
||||
+#//
|
||||
+#// Permission is hereby granted, free of charge, to any person obtaining a
|
||||
+#// copy of this software and associated documentation files (the "Software"),
|
||||
+#// to deal in the Software without restriction, including without limitation
|
||||
+#// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
+#// and/or sell copies of the Software, and to permit persons to whom the
|
||||
+#// Software is furnished to do so, subject to the following conditions:
|
||||
+#//
|
||||
+#// The above copyright notice and this permission notice shall be included
|
||||
+#// in all copies or substantial portions of the Software.
|
||||
+#//
|
||||
+#// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
+#// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
+#// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
+#// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
+#// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
+#// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
+#// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
+#//
|
||||
+#//////////////////////////////////////////////////////////////////////////
|
||||
+# Platform Configuration for Linux on LOONGARCH64
|
||||
+# If you have generic Linux config options, please place them in config-linux.mak
|
||||
+
|
||||
+include $(ROOT)/mak/config-linux.mak
|
||||
+
|
||||
+ARCHITECTURE = LOONGARCH64
|
||||
diff --git a/src/Pegasus/Common/Config.h b/src/Pegasus/Common/Config.h
|
||||
index a28b58b..afe1224 100644
|
||||
--- a/src/Pegasus/Common/Config.h
|
||||
+++ b/src/Pegasus/Common/Config.h
|
||||
@@ -98,6 +98,8 @@
|
||||
# include <Pegasus/Common/Platform_LINUX_XSCALE_GNU.h>
|
||||
#elif defined (PEGASUS_PLATFORM_LINUX_AARCH64_GNU)
|
||||
# include <Pegasus/Common/Platform_LINUX_AARCH64_GNU.h>
|
||||
+#elif defined (PEGASUS_PLATFORM_LINUX_LOONGARCH64_GNU)
|
||||
+# include <Pegasus/Common/Platform_LINUX_LOONGARCH64_GNU.h>
|
||||
#elif defined (PEGASUS_PLATFORM_LINUX_X86_64_CLANG)
|
||||
# include <Pegasus/Common/Platform_LINUX_X86_64_CLANG.h>
|
||||
#elif defined (PEGASUS_PLATFORM_LINUX_IX86_CLANG)
|
||||
diff --git a/src/Pegasus/Common/Platform_LINUX_LOONGARCH64_GNU.h b/src/Pegasus/Common/Platform_LINUX_LOONGARCH64_GNU.h
|
||||
new file mode 100644
|
||||
index 0000000..8d0bafc
|
||||
--- /dev/null
|
||||
+++ b/src/Pegasus/Common/Platform_LINUX_LOONGARCH64_GNU.h
|
||||
@@ -0,0 +1,108 @@
|
||||
+//%LICENSE////////////////////////////////////////////////////////////////
|
||||
+//
|
||||
+// Licensed to The Open Group (TOG) under one or more contributor license
|
||||
+// agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
|
||||
+// this work for additional information regarding copyright ownership.
|
||||
+// Each contributor licenses this file to you under the OpenPegasus Open
|
||||
+// Source License; you may not use this file except in compliance with the
|
||||
+// License.
|
||||
+//
|
||||
+// Permission is hereby granted, free of charge, to any person obtaining a
|
||||
+// copy of this software and associated documentation files (the "Software"),
|
||||
+// to deal in the Software without restriction, including without limitation
|
||||
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
+// and/or sell copies of the Software, and to permit persons to whom the
|
||||
+// Software is furnished to do so, subject to the following conditions:
|
||||
+//
|
||||
+// The above copyright notice and this permission notice shall be included
|
||||
+// in all copies or substantial portions of the Software.
|
||||
+//
|
||||
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
+//
|
||||
+//////////////////////////////////////////////////////////////////////////
|
||||
+//
|
||||
+//%/////////////////////////////////////////////////////////////////////////////
|
||||
+
|
||||
+/*****************************************************************************
|
||||
+ The platform configuration files in pegasus/src/Pegasus/Common/Platform_*.h
|
||||
+ are intended to normalize platform/compiler differences so that Pegasus code
|
||||
+ can be written to work on all platforms without requiring platform ifdefs.
|
||||
+ Since these files are part of the Pegasus SDK, their contents should be
|
||||
+ the minimum that achieves the stated purpose.
|
||||
+
|
||||
+ Examples of differences that are normalized here are support for C++
|
||||
+ namespaces, 64-bit integer type, support for C++ template specialization.
|
||||
+
|
||||
+ Examples of things that are not appropriate in these files are the enablement
|
||||
+ of Pegasus features for a specific platform and other build configuration.
|
||||
+******************************************************************************/
|
||||
+
|
||||
+#ifndef Pegasus_Platform_LINUX_LOONGARCH64_GNU_h
|
||||
+#define Pegasus_Platform_LINUX_LOONGARCH64_GNU_h
|
||||
+
|
||||
+#include <stddef.h>
|
||||
+
|
||||
+#define PEGASUS_OS_TYPE_UNIX
|
||||
+
|
||||
+#ifndef PEGASUS_PLATFORM_LINUX_GENERIC_GNU
|
||||
+#define PEGASUS_PLATFORM_LINUX_GENERIC_GNU
|
||||
+#endif
|
||||
+
|
||||
+#define PEGASUS_OS_LINUX
|
||||
+
|
||||
+#define PEGASUS_POINTER_64BIT
|
||||
+
|
||||
+#define PEGASUS_COMPILER_GNU
|
||||
+
|
||||
+#define PEGASUS_UINT64 unsigned long long
|
||||
+
|
||||
+#define PEGASUS_SINT64 long long
|
||||
+
|
||||
+#define PEGASUS_HAVE_NAMESPACES
|
||||
+
|
||||
+#define PEGASUS_HAVE_FOR_SCOPE
|
||||
+
|
||||
+#define PEGASUS_HAVE_TEMPLATE_SPECIALIZATION
|
||||
+
|
||||
+#ifndef _GNU_SOURCE
|
||||
+#define _GNU_SOURCE
|
||||
+#endif
|
||||
+#ifndef _REENTRANT
|
||||
+#define _REENTRANT
|
||||
+#endif
|
||||
+#define _THREAD_SAFE
|
||||
+#include <features.h>
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <sys/param.h> /* For MAXHOSTNAMELEN */
|
||||
+#include <limits.h> /* _POSIX_HOST_NAME_MAX */
|
||||
+
|
||||
+#if (__GNUC__ >= 4)
|
||||
+# define PEGASUS_EXPORT __attribute__ ((visibility("default")))
|
||||
+# define PEGASUS_IMPORT __attribute__ ((visibility("default")))
|
||||
+# define PEGASUS_HIDDEN_LINKAGE __attribute__((visibility("hidden")))
|
||||
+#endif
|
||||
+
|
||||
+#define PEGASUS_HAVE_PTHREADS
|
||||
+
|
||||
+#define PEGASUS_HAVE_NANOSLEEP
|
||||
+
|
||||
+#define PEGASUS_HAS_SIGNALS
|
||||
+
|
||||
+#define PEGASUS_INTEGERS_BOUNDARY_ALIGNED
|
||||
+
|
||||
+/* getifaddrs() avilable in gcc version >= 3.4 */
|
||||
+#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4))
|
||||
+# define PEGASUS_HAS_GETIFADDRS
|
||||
+#endif
|
||||
+
|
||||
+/* use POSIX read-write locks on this platform */
|
||||
+#define PEGASUS_USE_POSIX_RWLOCK
|
||||
+
|
||||
+#endif /* Pegasus_Platform_LINUX_LOONGARCH64_GNU_h */
|
||||
--
|
||||
2.33.0
|
||||
|
||||
184
add-riscv64-support.patch
Normal file
184
add-riscv64-support.patch
Normal file
@ -0,0 +1,184 @@
|
||||
From 72c24c5bd151177f1da5e54c1e9950f4bcc3e5b2 Mon Sep 17 00:00:00 2001
|
||||
From: misaka00251 <liuxin@iscas.ac.cn>
|
||||
Date: Fri, 28 Jul 2023 12:36:55 +0800
|
||||
Subject: [PATCH] Add riscv64 support
|
||||
|
||||
---
|
||||
mak/platform_LINUX_RISCV64_GNU.mak | 36 ++++++
|
||||
src/Pegasus/Common/Config.h | 2 +
|
||||
.../Common/Platform_LINUX_RISCV64_GNU.h | 108 ++++++++++++++++++
|
||||
3 files changed, 146 insertions(+)
|
||||
create mode 100644 mak/platform_LINUX_RISCV64_GNU.mak
|
||||
create mode 100644 src/Pegasus/Common/Platform_LINUX_RISCV64_GNU.h
|
||||
|
||||
diff --git a/mak/platform_LINUX_RISCV64_GNU.mak b/mak/platform_LINUX_RISCV64_GNU.mak
|
||||
new file mode 100644
|
||||
index 0000000..21b3351
|
||||
--- /dev/null
|
||||
+++ b/mak/platform_LINUX_RISCV64_GNU.mak
|
||||
@@ -0,0 +1,36 @@
|
||||
+#//%LICENSE////////////////////////////////////////////////////////////////
|
||||
+#//
|
||||
+#// Licensed to The Open Group (TOG) under one or more contributor license
|
||||
+#// agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
|
||||
+#// this work for additional information regarding copyright ownership.
|
||||
+#// Each contributor licenses this file to you under the OpenPegasus Open
|
||||
+#// Source License; you may not use this file except in compliance with the
|
||||
+#// License.
|
||||
+#//
|
||||
+#// Permission is hereby granted, free of charge, to any person obtaining a
|
||||
+#// copy of this software and associated documentation files (the "Software"),
|
||||
+#// to deal in the Software without restriction, including without limitation
|
||||
+#// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
+#// and/or sell copies of the Software, and to permit persons to whom the
|
||||
+#// Software is furnished to do so, subject to the following conditions:
|
||||
+#//
|
||||
+#// The above copyright notice and this permission notice shall be included
|
||||
+#// in all copies or substantial portions of the Software.
|
||||
+#//
|
||||
+#// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
+#// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
+#// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
+#// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
+#// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
+#// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
+#// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
+#//
|
||||
+#//////////////////////////////////////////////////////////////////////////
|
||||
+# Platform Configuration for Linux on PPC
|
||||
+# If you have generic Linux config options, please place them in config-linux.mak
|
||||
+
|
||||
+include $(ROOT)/mak/config-linux.mak
|
||||
+
|
||||
+ARCHITECTURE = RISCV64
|
||||
+CXX_MACHINE_OPTIONS =
|
||||
+LINK_MACHINE_OPTIONS =
|
||||
diff --git a/src/Pegasus/Common/Config.h b/src/Pegasus/Common/Config.h
|
||||
index afe1224..0f400c5 100644
|
||||
--- a/src/Pegasus/Common/Config.h
|
||||
+++ b/src/Pegasus/Common/Config.h
|
||||
@@ -100,6 +100,8 @@
|
||||
# include <Pegasus/Common/Platform_LINUX_AARCH64_GNU.h>
|
||||
#elif defined (PEGASUS_PLATFORM_LINUX_LOONGARCH64_GNU)
|
||||
# include <Pegasus/Common/Platform_LINUX_LOONGARCH64_GNU.h>
|
||||
+#elif defined (PEGASUS_PLATFORM_LINUX_RISCV64_GNU)
|
||||
+# include <Pegasus/Common/Platform_LINUX_RISCV64_GNU.h>
|
||||
#elif defined (PEGASUS_PLATFORM_LINUX_X86_64_CLANG)
|
||||
# include <Pegasus/Common/Platform_LINUX_X86_64_CLANG.h>
|
||||
#elif defined (PEGASUS_PLATFORM_LINUX_IX86_CLANG)
|
||||
diff --git a/src/Pegasus/Common/Platform_LINUX_RISCV64_GNU.h b/src/Pegasus/Common/Platform_LINUX_RISCV64_GNU.h
|
||||
new file mode 100644
|
||||
index 0000000..b2dcfce
|
||||
--- /dev/null
|
||||
+++ b/src/Pegasus/Common/Platform_LINUX_RISCV64_GNU.h
|
||||
@@ -0,0 +1,108 @@
|
||||
+//%LICENSE////////////////////////////////////////////////////////////////
|
||||
+//
|
||||
+// Licensed to The Open Group (TOG) under one or more contributor license
|
||||
+// agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
|
||||
+// this work for additional information regarding copyright ownership.
|
||||
+// Each contributor licenses this file to you under the OpenPegasus Open
|
||||
+// Source License; you may not use this file except in compliance with the
|
||||
+// License.
|
||||
+//
|
||||
+// Permission is hereby granted, free of charge, to any person obtaining a
|
||||
+// copy of this software and associated documentation files (the "Software"),
|
||||
+// to deal in the Software without restriction, including without limitation
|
||||
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
+// and/or sell copies of the Software, and to permit persons to whom the
|
||||
+// Software is furnished to do so, subject to the following conditions:
|
||||
+//
|
||||
+// The above copyright notice and this permission notice shall be included
|
||||
+// in all copies or substantial portions of the Software.
|
||||
+//
|
||||
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
+//
|
||||
+//////////////////////////////////////////////////////////////////////////
|
||||
+//
|
||||
+//%/////////////////////////////////////////////////////////////////////////////
|
||||
+
|
||||
+/*****************************************************************************
|
||||
+ The platform configuration files in pegasus/src/Pegasus/Common/Platform_*.h
|
||||
+ are intended to normalize platform/compiler differences so that Pegasus code
|
||||
+ can be written to work on all platforms without requiring platform ifdefs.
|
||||
+ Since these files are part of the Pegasus SDK, their contents should be
|
||||
+ the minimum that achieves the stated purpose.
|
||||
+
|
||||
+ Examples of differences that are normalized here are support for C++
|
||||
+ namespaces, 64-bit integer type, support for C++ template specialization.
|
||||
+
|
||||
+ Examples of things that are not appropriate in these files are the enablement
|
||||
+ of Pegasus features for a specific platform and other build configuration.
|
||||
+******************************************************************************/
|
||||
+
|
||||
+#ifndef Pegasus_Platform_LINUX_RISCV64_GNU_h
|
||||
+#define Pegasus_Platform_LINUX_RISCV64_GNU_h
|
||||
+
|
||||
+#include <stddef.h>
|
||||
+
|
||||
+#define PEGASUS_OS_TYPE_UNIX
|
||||
+
|
||||
+#ifndef PEGASUS_PLATFORM_LINUX_GENERIC_GNU
|
||||
+#define PEGASUS_PLATFORM_LINUX_GENERIC_GNU
|
||||
+#endif
|
||||
+
|
||||
+#define PEGASUS_OS_LINUX
|
||||
+
|
||||
+#define PEGASUS_POINTER_64BIT
|
||||
+
|
||||
+#define PEGASUS_COMPILER_GNU
|
||||
+
|
||||
+#define PEGASUS_UINT64 unsigned long long
|
||||
+
|
||||
+#define PEGASUS_SINT64 long long
|
||||
+
|
||||
+#define PEGASUS_HAVE_NAMESPACES
|
||||
+
|
||||
+#define PEGASUS_HAVE_FOR_SCOPE
|
||||
+
|
||||
+#define PEGASUS_HAVE_TEMPLATE_SPECIALIZATION
|
||||
+
|
||||
+#ifndef _GNU_SOURCE
|
||||
+#define _GNU_SOURCE
|
||||
+#endif
|
||||
+#ifndef _REENTRANT
|
||||
+#define _REENTRANT
|
||||
+#endif
|
||||
+#define _THREAD_SAFE
|
||||
+#include <features.h>
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <sys/param.h> /* For MAXHOSTNAMELEN */
|
||||
+#include <limits.h> /* _POSIX_HOST_NAME_MAX */
|
||||
+
|
||||
+#if (__GNUC__ >= 4)
|
||||
+# define PEGASUS_EXPORT __attribute__ ((visibility("default")))
|
||||
+# define PEGASUS_IMPORT __attribute__ ((visibility("default")))
|
||||
+# define PEGASUS_HIDDEN_LINKAGE __attribute__((visibility("hidden")))
|
||||
+#endif
|
||||
+
|
||||
+#define PEGASUS_HAVE_PTHREADS
|
||||
+
|
||||
+#define PEGASUS_HAVE_NANOSLEEP
|
||||
+
|
||||
+#define PEGASUS_HAS_SIGNALS
|
||||
+
|
||||
+#define PEGASUS_INTEGERS_BOUNDARY_ALIGNED
|
||||
+
|
||||
+/* getifaddrs() avilable in gcc version >= 3.4 */
|
||||
+#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4))
|
||||
+# define PEGASUS_HAS_GETIFADDRS
|
||||
+#endif
|
||||
+
|
||||
+/* use POSIX read-write locks on this platform */
|
||||
+#define PEGASUS_USE_POSIX_RWLOCK
|
||||
+
|
||||
+#endif /* Pegasus_Platform_LINUX_RISCV64_GNU_h */
|
||||
--
|
||||
2.37.1 (Apple Git-137.1)
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
Name: tog-pegasus
|
||||
Version: %{major_ver}.1
|
||||
Release: 50
|
||||
Release: 55
|
||||
Epoch: 2
|
||||
Summary: OpenPegasus WBEM Services for Linux
|
||||
License: MIT
|
||||
@ -36,6 +36,9 @@ Patch15: pegasus-2.13.0-gcc5-build.patch
|
||||
Patch16: pegasus-2.14.1-build-fixes.patch
|
||||
Patch17: pegasus-2.14.1-ssl-include.patch
|
||||
Patch18: pegasus-2.14.1-openssl-1.1-fix.patch
|
||||
Patch19: add-loongarch64-support.patch
|
||||
Patch20: 0001-Fixes-issue-8-gcc-catch-by-value-and-implicit-fallth.patch
|
||||
Patch21: add-riscv64-support.patch
|
||||
|
||||
BuildRequires: procps libstdc++ pam-devel openssl openssl-devel
|
||||
BuildRequires: bash sed grep coreutils procps gcc gcc-c++ libstdc++
|
||||
@ -77,6 +80,15 @@ Header files for tog-pegasus
|
||||
%ifarch aarch64
|
||||
%global PEGASUS_HARDWARE_PLATFORM LINUX_AARCH64_GNU
|
||||
%endif
|
||||
%ifarch loongarch64
|
||||
%global PEGASUS_HARDWARE_PLATFORM LINUX_LOONGARCH64_GNU
|
||||
%endif
|
||||
%ifarch riscv64
|
||||
%global PEGASUS_HARDWARE_PLATFORM LINUX_RISCV64_GNU
|
||||
%endif
|
||||
%ifarch ppc64le
|
||||
%global PEGASUS_HARDWARE_PLATFORM LINUX_PPC64_GNU
|
||||
%endif
|
||||
|
||||
%global PEGASUS_ARCH_LIB %{_lib}
|
||||
%global OPENSSL_HOME %{_prefix}
|
||||
@ -125,6 +137,9 @@ yes | mak/CreateDmtfSchema 238 %{SOURCE4} cim_schema_2.38.0
|
||||
%patch16 -p1 -b .build-fixes
|
||||
%patch17 -p1 -b .ssl-include
|
||||
%patch18 -p1 -b .openssl-1.1-fix
|
||||
%patch19 -p1 -b .add-loongarch64-support
|
||||
%patch20 -p1
|
||||
%patch21 -p1 -b .add-riscv64-support
|
||||
|
||||
%build
|
||||
cp -fp %SOURCE3 rpm
|
||||
@ -359,12 +374,27 @@ fi
|
||||
%verify(not md5 size mtime) /var/lib/Pegasus/testrepository
|
||||
|
||||
%files help
|
||||
%defattr(0644, root, pegasus, 0755)
|
||||
%defattr(0644, root, root, 0755)
|
||||
%doc src/Clients/repupgrade/doc/repupgrade.html
|
||||
%{_mandir}/man8/*
|
||||
%{_mandir}/man1/*
|
||||
|
||||
%changelog
|
||||
* Tue Nov 28 2023 peng.zou <peng.zou@shingroup.cn> - 2:2.14.1-55
|
||||
- Add ppc64le support
|
||||
|
||||
* Fri Jul 28 2023 misaka00251 <liuxin@iscas.ac.cn> - 2:2.14.1-54
|
||||
- Add riscv64 support
|
||||
|
||||
* Tue Jul 04 2023 chenchen <chen_aka_jan@163.com> - 2:2.14.1-53
|
||||
- fix build error for gcc-12
|
||||
|
||||
* Thu Dec 8 2022 huajingyun <huajingyun@loongson.cn> - 2:2.14.1-52
|
||||
- Add loongarch64 support
|
||||
|
||||
* Tue Aug 31 2021 caodongxia <caodongxia@huawei.com> - 2:2.14.1-51
|
||||
- Fix help package install warning
|
||||
|
||||
* Thu May 28 2020 Guoshuai Sun <sunguoshuai@huawei.com> - 2:2.14.1-49
|
||||
- Modify spec for unreasonable disable stop.service when removing pack.
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user