ENH: fix for compilers that need _

This commit is contained in:
Ken Martin 2003-01-16 15:47:04 -05:00
parent 51acf333cc
commit fedf21722a
3 changed files with 48 additions and 21 deletions

View File

@ -112,7 +112,6 @@ int main()
lib += cmDynamicLoader::LibPrefix(); lib += cmDynamicLoader::LibPrefix();
lib += "CMakeTestModule"; lib += "CMakeTestModule";
lib += cmDynamicLoader::LibExtension(); lib += cmDynamicLoader::LibExtension();
cmLibHandle handle = cmDynamicLoader::OpenLibrary(lib.c_str()); cmLibHandle handle = cmDynamicLoader::OpenLibrary(lib.c_str());
if(!handle) if(!handle)
{ {
@ -122,16 +121,26 @@ int main()
{ {
cmDynamicLoaderFunction fun = cmDynamicLoaderFunction fun =
cmDynamicLoader::GetSymbolAddress(handle, "ModuleFunction"); cmDynamicLoader::GetSymbolAddress(handle, "ModuleFunction");
if(!fun)
{
fun = cmDynamicLoader::GetSymbolAddress(handle, "_ModuleFunction");
}
typedef int (*TEST_FUNCTION)(); typedef int (*TEST_FUNCTION)();
TEST_FUNCTION testFun = (TEST_FUNCTION)fun; TEST_FUNCTION testFun = (TEST_FUNCTION)fun;
if(!testFun)
{
cmFailed("Could not find symbol ModuleFunction in library ");
}
else
{
int ret = (*testFun)(); int ret = (*testFun)();
if(!ret) if(!ret)
{ {
cmFailed("ModuleFunction called from module did not return valid return"); cmFailed("ModuleFunction call did not return valid return.");
}
cmPassed("Module loaded and ModuleFunction called correctly.");
} }
cmPassed("Module loaded and ModuleFunction called correctly");
} }
if(sharedFunction() != 1) if(sharedFunction() != 1)
{ {
cmFailed("Call to sharedFunction from shared library failed."); cmFailed("Call to sharedFunction from shared library failed.");

View File

@ -112,7 +112,6 @@ int main()
lib += cmDynamicLoader::LibPrefix(); lib += cmDynamicLoader::LibPrefix();
lib += "CMakeTestModule"; lib += "CMakeTestModule";
lib += cmDynamicLoader::LibExtension(); lib += cmDynamicLoader::LibExtension();
cmLibHandle handle = cmDynamicLoader::OpenLibrary(lib.c_str()); cmLibHandle handle = cmDynamicLoader::OpenLibrary(lib.c_str());
if(!handle) if(!handle)
{ {
@ -122,16 +121,26 @@ int main()
{ {
cmDynamicLoaderFunction fun = cmDynamicLoaderFunction fun =
cmDynamicLoader::GetSymbolAddress(handle, "ModuleFunction"); cmDynamicLoader::GetSymbolAddress(handle, "ModuleFunction");
if(!fun)
{
fun = cmDynamicLoader::GetSymbolAddress(handle, "_ModuleFunction");
}
typedef int (*TEST_FUNCTION)(); typedef int (*TEST_FUNCTION)();
TEST_FUNCTION testFun = (TEST_FUNCTION)fun; TEST_FUNCTION testFun = (TEST_FUNCTION)fun;
if(!testFun)
{
cmFailed("Could not find symbol ModuleFunction in library ");
}
else
{
int ret = (*testFun)(); int ret = (*testFun)();
if(!ret) if(!ret)
{ {
cmFailed("ModuleFunction called from module did not return valid return"); cmFailed("ModuleFunction call did not return valid return.");
}
cmPassed("Module loaded and ModuleFunction called correctly.");
} }
cmPassed("Module loaded and ModuleFunction called correctly");
} }
if(sharedFunction() != 1) if(sharedFunction() != 1)
{ {
cmFailed("Call to sharedFunction from shared library failed."); cmFailed("Call to sharedFunction from shared library failed.");

View File

@ -112,7 +112,6 @@ int main()
lib += cmDynamicLoader::LibPrefix(); lib += cmDynamicLoader::LibPrefix();
lib += "CMakeTestModule"; lib += "CMakeTestModule";
lib += cmDynamicLoader::LibExtension(); lib += cmDynamicLoader::LibExtension();
cmLibHandle handle = cmDynamicLoader::OpenLibrary(lib.c_str()); cmLibHandle handle = cmDynamicLoader::OpenLibrary(lib.c_str());
if(!handle) if(!handle)
{ {
@ -122,16 +121,26 @@ int main()
{ {
cmDynamicLoaderFunction fun = cmDynamicLoaderFunction fun =
cmDynamicLoader::GetSymbolAddress(handle, "ModuleFunction"); cmDynamicLoader::GetSymbolAddress(handle, "ModuleFunction");
if(!fun)
{
fun = cmDynamicLoader::GetSymbolAddress(handle, "_ModuleFunction");
}
typedef int (*TEST_FUNCTION)(); typedef int (*TEST_FUNCTION)();
TEST_FUNCTION testFun = (TEST_FUNCTION)fun; TEST_FUNCTION testFun = (TEST_FUNCTION)fun;
if(!testFun)
{
cmFailed("Could not find symbol ModuleFunction in library ");
}
else
{
int ret = (*testFun)(); int ret = (*testFun)();
if(!ret) if(!ret)
{ {
cmFailed("ModuleFunction called from module did not return valid return"); cmFailed("ModuleFunction call did not return valid return.");
}
cmPassed("Module loaded and ModuleFunction called correctly.");
} }
cmPassed("Module loaded and ModuleFunction called correctly");
} }
if(sharedFunction() != 1) if(sharedFunction() != 1)
{ {
cmFailed("Call to sharedFunction from shared library failed."); cmFailed("Call to sharedFunction from shared library failed.");