summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathieu Malaterre <mathieu.malaterre@gmail.com>2006-03-08 14:16:54 (GMT)
committerMathieu Malaterre <mathieu.malaterre@gmail.com>2006-03-08 14:16:54 (GMT)
commitd91bd3dbd37e645f756191799a9521284e81c1b2 (patch)
tree7c17fa56bf80ba1d429456072eefa2f1b787faf2
parentcdc3c9d18bdfb86600b2e39bdc90ecd32c9cb654 (diff)
downloadCMake-d91bd3dbd37e645f756191799a9521284e81c1b2.zip
CMake-d91bd3dbd37e645f756191799a9521284e81c1b2.tar.gz
CMake-d91bd3dbd37e645f756191799a9521284e81c1b2.tar.bz2
BUG: Including file within a namespace{} is dangerous(unless symbols are within an extern C). Also update documentation about special case for MacOSX
-rw-r--r--Source/kwsys/DynamicLoader.cxx8
-rw-r--r--Source/kwsys/DynamicLoader.hxx.in18
2 files changed, 19 insertions, 7 deletions
diff --git a/Source/kwsys/DynamicLoader.cxx b/Source/kwsys/DynamicLoader.cxx
index bd6291a..9bbf07e 100644
--- a/Source/kwsys/DynamicLoader.cxx
+++ b/Source/kwsys/DynamicLoader.cxx
@@ -25,9 +25,9 @@
// This file is actually 3 different implementations.
// 1. HP machines which uses shl_load
-// 2. Power PC MAC which uses GetSharedLibrary
+// 2. Mac OS X 10.2.x and earlier which uses NSLinkModule
// 3. Windows which uses LoadLibrary
-// 4. Most unix systems which use dlopen (default )
+// 4. Most unix systems (including Mac OS X 10.3 and later) which use dlopen (default)
// Each part of the ifdef contains a complete implementation for
// the static methods of DynamicLoader.
@@ -132,7 +132,7 @@ LibHandle DynamicLoader::OpenLibrary(const char* libname )
{
NSObjectFileImageReturnCode rc;
NSObjectFileImage image = 0;
-
+
rc = NSCreateObjectFileImageFromFile(libname, &image);
if(!image)
{
@@ -150,7 +150,7 @@ int DynamicLoader::CloseLibrary( LibHandle lib)
//----------------------------------------------------------------------------
DynamicLoaderFunction DynamicLoader::GetSymbolAddress(LibHandle /* lib */, const char* sym)
-{
+{
void *result=0;
if(NSIsSymbolNameDefined(sym))
{
diff --git a/Source/kwsys/DynamicLoader.hxx.in b/Source/kwsys/DynamicLoader.hxx.in
index dc5a1d3..3430eb6 100644
--- a/Source/kwsys/DynamicLoader.hxx.in
+++ b/Source/kwsys/DynamicLoader.hxx.in
@@ -16,28 +16,40 @@
#include <@KWSYS_NAMESPACE@/Configure.h>
-namespace @KWSYS_NAMESPACE@
-{
// Ugly stuff for library handles
// They are different on several different OS's
#if defined(__hpux)
#include <dl.h>
+namespace @KWSYS_NAMESPACE@
+{
typedef shl_t LibHandle;
+} // namespace @KWSYS_NAMESPACE@
#elif defined(_WIN32)
#include <windows.h>
+namespace @KWSYS_NAMESPACE@
+{
typedef HMODULE LibHandle;
+} // namespace @KWSYS_NAMESPACE@
#elif defined(__APPLE__)
#include <AvailabilityMacros.h>
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1030
#include <mach-o/dyld.h>
+namespace @KWSYS_NAMESPACE@
+{
typedef NSModule LibHandle;
+} // namespace @KWSYS_NAMESPACE@
#else
+namespace @KWSYS_NAMESPACE@
+{
typedef void* LibHandle;
+} // namespace @KWSYS_NAMESPACE@
#endif
#else
+namespace @KWSYS_NAMESPACE@
+{
typedef void* LibHandle;
-#endif
} // namespace @KWSYS_NAMESPACE@
+#endif
namespace @KWSYS_NAMESPACE@
{