From Mathias Froechlich, "Attached the collected fixes I needed to compile with all of them.

Most notable the __hpux define stuff. The __hpux__ variant seems to be not
defined which resulted in a compile error at this time. Consequently I have
replaced all occurances of __hpux__ with __hpux. And huge surprise: now osg
plugins are found and loaded correctly ...
The next notable one is the MSVC_IDE fix which makes the nmake Makefiles cmake
generator target behave like the ide one. Showed up because I started to do
scripted builds with nmake instead of devenv...
The rest is the usual bunch of stuff that just happens during normal
coding ..."
This commit is contained in:
Robert Osfield
2009-11-18 12:15:29 +00:00
parent 259daac9a9
commit b7cabac990
13 changed files with 29 additions and 32 deletions

View File

@@ -27,7 +27,7 @@
#include <mach-o/dyld.h>
#else // all other unix
#include <unistd.h>
#ifdef __hpux__
#ifdef __hpux
// Although HP-UX has dlopen() it is broken! We therefore need to stick
// to shl_load()/shl_unload()/shl_findsym()
#include <dl.h>
@@ -63,7 +63,7 @@ DynamicLibrary::~DynamicLibrary()
FreeLibrary((HMODULE)_handle);
#elif defined(__APPLE__) && defined(APPLE_PRE_10_3)
NSUnLinkModule(static_cast<NSModule>(_handle), FALSE);
#elif defined(__hpux__)
#elif defined(__hpux)
// fortunately, shl_t is a pointer
shl_unload (static_cast<shl_t>(_handle));
#else // other unix
@@ -103,7 +103,7 @@ DynamicLibrary::HANDLE DynamicLibrary::getLibraryHandle( const std::string& libr
handle = NSLinkModule(image, libraryName.c_str(), TRUE);
NSDestroyObjectFileImage(image);
}
#elif defined(__hpux__)
#elif defined(__hpux)
// BIND_FIRST is neccessary for some reason
handle = shl_load ( libraryName.c_str(), BIND_DEFERRED|BIND_FIRST|BIND_VERBOSE, 0);
return handle;
@@ -146,7 +146,7 @@ DynamicLibrary::PROC_ADDRESS DynamicLibrary::getProcAddress(const std::string& p
temp += procName; // Mac OS X prepends an underscore on function names
symbol = NSLookupSymbolInModule(static_cast<NSModule>(_handle), temp.c_str());
return NSAddressOfSymbol(symbol);
#elif defined(__hpux__)
#elif defined(__hpux)
void* result = NULL;
if (shl_findsym (reinterpret_cast<shl_t*>(&_handle), procName.c_str(), TYPE_PROCEDURE, result) == 0)
{