diff options
author | Sven Gothel <[email protected]> | 2012-02-12 06:06:59 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2012-02-12 06:06:59 +0100 |
commit | bd5be69aee6987754f1cbf39f61280c5c72536b3 (patch) | |
tree | b6894cbc2bc6e659ac0d921a9c50ff664269faac /src/java/jogamp/common/os | |
parent | 67854df4b16ce92d0e792f3c693ced0a6470f6cc (diff) |
DynamicLibraryBundle (enhancement)
- Hold DEBUG, DEBUG_LOOKUP in DynamicLookupHelper
- Tool complete only if named tool's GetProcAddressFunc is avail
- Allow no tool/glue lib's
- Use DEBUG_LOCKUP for lockup symbol trace
Diffstat (limited to 'src/java/jogamp/common/os')
-rwxr-xr-x | src/java/jogamp/common/os/MacOSXDynamicLinkerImpl.java | 12 | ||||
-rwxr-xr-x | src/java/jogamp/common/os/UnixDynamicLinkerImpl.java | 12 | ||||
-rwxr-xr-x | src/java/jogamp/common/os/WindowsDynamicLinkerImpl.java | 17 |
3 files changed, 22 insertions, 19 deletions
diff --git a/src/java/jogamp/common/os/MacOSXDynamicLinkerImpl.java b/src/java/jogamp/common/os/MacOSXDynamicLinkerImpl.java index c1be2c2..4eb381f 100755 --- a/src/java/jogamp/common/os/MacOSXDynamicLinkerImpl.java +++ b/src/java/jogamp/common/os/MacOSXDynamicLinkerImpl.java @@ -51,11 +51,19 @@ public class MacOSXDynamicLinkerImpl implements DynamicLinker { } public long lookupSymbol(long libraryHandle, String symbolName) { - return dlsym(libraryHandle, symbolName); + final long addr = dlsym(libraryHandle, symbolName); + if(DEBUG_LOOKUP) { + System.err.println("MaxOSXDynamicLinkerImpl.lookupSymbol(0x"+Long.toHexString(libraryHandle)+", "+symbolName+") -> 0x"+Long.toHexString(addr)); + } + return addr; } public long lookupSymbolGlobal(String symbolName) { - return dlsym(RTLD_DEFAULT, symbolName); + final long addr = dlsym(RTLD_DEFAULT, symbolName); + if(DEBUG_LOOKUP) { + System.err.println("MacOSXDynamicLinkerImpl.lookupSymbolGlobal("+symbolName+") -> 0x"+Long.toHexString(addr)); + } + return addr; } public void closeLibrary(long libraryHandle) { diff --git a/src/java/jogamp/common/os/UnixDynamicLinkerImpl.java b/src/java/jogamp/common/os/UnixDynamicLinkerImpl.java index 677df32..29998bd 100755 --- a/src/java/jogamp/common/os/UnixDynamicLinkerImpl.java +++ b/src/java/jogamp/common/os/UnixDynamicLinkerImpl.java @@ -50,11 +50,19 @@ public class UnixDynamicLinkerImpl implements DynamicLinker { } public long lookupSymbol(long libraryHandle, String symbolName) { - return dlsym(libraryHandle, symbolName); + final long addr = dlsym(libraryHandle, symbolName); + if(DEBUG_LOOKUP) { + System.err.println("UnixDynamicLinkerImpl.lookupSymbol(0x"+Long.toHexString(libraryHandle)+", "+symbolName+") -> 0x"+Long.toHexString(addr)); + } + return addr; } public long lookupSymbolGlobal(String symbolName) { - return dlsym(RTLD_DEFAULT, symbolName); + final long addr = dlsym(RTLD_DEFAULT, symbolName); + if(DEBUG_LOOKUP) { + System.err.println("UnixDynamicLinkerImpl.lookupSymbolGlobal("+symbolName+") -> 0x"+Long.toHexString(addr)); + } + return addr; } public void closeLibrary(long libraryHandle) { diff --git a/src/java/jogamp/common/os/WindowsDynamicLinkerImpl.java b/src/java/jogamp/common/os/WindowsDynamicLinkerImpl.java index f5229f4..e7f5b52 100755 --- a/src/java/jogamp/common/os/WindowsDynamicLinkerImpl.java +++ b/src/java/jogamp/common/os/WindowsDynamicLinkerImpl.java @@ -2,23 +2,10 @@ package jogamp.common.os; -import java.security.*; - import com.jogamp.common.os.DynamicLinker; public class WindowsDynamicLinkerImpl implements DynamicLinker { - private static boolean DEBUG; - - static { - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - DEBUG = (System.getProperty("jogamp.debug.NativeLibrary") != null); - return null; - } - }); - } - /** Interface to C language function: <br> <code> BOOL FreeLibrary(HANDLE hLibModule); </code> */ private static native int FreeLibrary(long hLibModule); @@ -61,14 +48,14 @@ public class WindowsDynamicLinkerImpl implements DynamicLinker { addr = GetProcAddressA(libraryHandle, _symbolName); } } - if(DEBUG) { + if(DEBUG_LOOKUP) { System.err.println("WindowsDynamicLinkerImpl.lookupSymbol(0x"+Long.toHexString(libraryHandle)+", "+symbolName+") -> "+_symbolName+", 0x"+Long.toHexString(addr)); } return addr; } public long lookupSymbolGlobal(String symbolName) { - if(DEBUG) { + if(DEBUG_LOOKUP) { System.err.println("lookupSymbolGlobal: Not supported on Windows"); } // allow DynamicLibraryBundle to continue w/ local libs |