class Module;
/** The version of the InspIRCd ABI which is presently in use. */
-#define MODULE_ABI 3010
+#define MODULE_ABI 3010UL
/** Stringifies the value of a symbol. */
#define MODULE_STRINGIFY_SYM1(DEF) MODULE_STRINGIFY_SYM2(DEF)
/** Defines the interface that a shared library must expose in order to be a module. */
#define MODULE_INIT(klass) \
- extern "C" DllExport const uint32_t MODULE_SYM_ABI = MODULE_ABI; \
+ extern "C" DllExport const unsigned long MODULE_SYM_ABI = MODULE_ABI; \
extern "C" DllExport const char MODULE_SYM_VERSION[] = INSPIRCD_VERSION; \
extern "C" DllExport Module* MODULE_SYM_INIT() { return new klass; }
Module* DLLManager::CallInit()
{
- const uint32_t* abi = GetSymbol<const uint32_t>(MODULE_STR_ABI);
+ const unsigned long* abi = GetSymbol<const unsigned long>(MODULE_STR_ABI);
if (!abi)
{
err.assign(libname + " is not a module (no ABI symbol)");
else if (*abi != MODULE_ABI)
{
const char* version = GetVersion();
- err.assign(InspIRCd::Format("%s was built against %s which is too %s to use with %s",
- libname.c_str(), version ? version : "an unknown version",
- *abi < MODULE_ABI ? "old" : "new", INSPIRCD_VERSION));
+ err.assign(InspIRCd::Format("%s was built against %s (%lu) which is too %s to use with %s (%lu).",
+ libname.c_str(), version ? version : "an unknown version", *abi,
+ *abi < MODULE_ABI ? "old" : "new", INSPIRCD_VERSION, MODULE_ABI));
return NULL;
}