| diff -ru GraphicsMagick-1.3.38.orig/magick/module.c GraphicsMagick-1.3.38/magick/module.c |
| |
| |
| @@ -47,12 +47,9 @@ |
| #include "magick/map.h" |
| #include "magick/module.h" |
| #include "magick/utility.h" |
| -#if defined(HasLTDL) |
| -# include "ltdl.h" |
| - typedef lt_dlhandle ModuleHandle; |
| -#else |
| - typedef void *ModuleHandle; |
| -#endif |
| + |
| +#include <dlfcn.h> |
| +typedef void *ModuleHandle; |
| |
| /* |
| Define declarations. |
| @@ -60,7 +57,7 @@ |
| #define MAX_MODULES 511 /* Maximum number of modules supported by build. */ |
| #define ModuleFilename "modules.mgk" |
| #if defined(HasLTDL) |
| -# define ModuleGlobExpression "*.la" |
| +# define ModuleGlobExpression "*.so" |
| #else |
| # if defined(_DEBUG) |
| # define ModuleGlobExpression "IM_MOD_DB_*.dll" |
| @@ -297,9 +294,6 @@ |
| */ |
| if (ltdl_initialized) |
| { |
| -#if !defined(HasJP2) |
| - (void) lt_dlexit(); |
| -#endif |
| ltdl_initialized=False; |
| } |
| } |
| @@ -375,13 +369,13 @@ |
| return(MagickFail); |
| |
| /* Open the module */ |
| - handle=lt_dlopen(module_path); |
| + handle=dlopen(module_path, RTLD_NOW); |
| if (handle == (ModuleHandle) NULL) |
| { |
| char |
| message[MaxTextExtent]; |
| |
| - FormatString(message,"\"%.256s: %.256s\"",module_path,lt_dlerror()); |
| + FormatString(message,"\"%.256s: %.256s\"",module_path,dlerror()); |
| ThrowException(&(*image)->exception,ModuleError,UnableToLoadModule, |
| message); |
| return(status); |
| @@ -401,7 +395,7 @@ |
| FormatString(method_name,"%.64sImage",tag); |
| #endif |
| method=(unsigned int (*)(Image **,const int,char **)) |
| - lt_dlsym(handle,method_name); |
| + dlsym(handle,method_name); |
| |
| |
| /* Execute module method */ |
| @@ -429,7 +423,7 @@ |
| |
| } |
| /* Close the module */ |
| - (void) lt_dlclose(handle); |
| + (void) dlclose(handle); |
| return(status); |
| } |
| |
| @@ -822,9 +816,11 @@ |
| */ |
| if (!ltdl_initialized) |
| { |
| +#if 0 |
| if (lt_dlinit() != 0) |
| MagickFatalError(ModuleFatalError, |
| - UnableToInitializeModuleLoader,lt_dlerror()); |
| + UnableToInitializeModuleLoader,dlerror()); |
| +#endif |
| ltdl_initialized=True; |
| } |
| (void) ReadModuleConfigureFile(ModuleFilename,0,&exception); |
| @@ -1359,8 +1355,8 @@ |
| CoderInfo |
| *coder_info; |
| |
| - ModuleHandle |
| - handle; |
| + void |
| + *handle; |
| |
| register ModuleInfo |
| *p; |
| @@ -1419,10 +1415,10 @@ |
| (void) LogMagickEvent(ConfigureEvent,GetMagickModule(), |
| "Opening module at path \"%s\" ...", path); |
| |
| - handle=lt_dlopen(path); |
| + handle=dlopen(path, RTLD_NOW); |
| if (handle == (ModuleHandle) NULL) |
| { |
| - FormatString(message,"\"%.1024s: %.1024s\"",path,lt_dlerror()); |
| + FormatString(message,"\"%.1024s: %.1024s\"",path,dlerror()); |
| ThrowException(exception,ModuleError,UnableToLoadModule,message); |
| return(MagickFail); |
| } |
| @@ -1432,7 +1428,7 @@ |
| coder_info=SetCoderInfo(module_name); |
| if (coder_info == (CoderInfo*) NULL) |
| { |
| - (void) lt_dlclose(handle); |
| + (void) dlclose(handle); |
| return(MagickFail); |
| } |
| coder_info->handle=handle; |
| @@ -1443,10 +1439,10 @@ |
| Locate and record RegisterFORMATImage function |
| */ |
| TagToFunctionName(module_name,"Register%sImage",name); |
| - coder_info->register_function=(void (*)(void)) lt_dlsym(handle,name); |
| + coder_info->register_function=(void (*)(void)) dlsym(handle,name); |
| if (coder_info->register_function == (void (*)(void)) NULL) |
| { |
| - FormatString(message,"\"%.1024s: %.1024s\"",module_name,lt_dlerror()); |
| + FormatString(message,"\"%.1024s: %.1024s\"",module_name,dlerror()); |
| ThrowException(exception,ModuleError,UnableToRegisterImageFormat, |
| message); |
| return(MagickFail); |
| @@ -1460,10 +1456,10 @@ |
| Locate and record UnregisterFORMATImage function |
| */ |
| TagToFunctionName(module_name,"Unregister%sImage",name); |
| - coder_info->unregister_function=(void (*)(void)) lt_dlsym(handle,name); |
| + coder_info->unregister_function=(void (*)(void)) dlsym(handle,name); |
| if (coder_info->unregister_function == (void (*)(void)) NULL) |
| { |
| - FormatString(message,"\"%.1024s: %.1024s\"",module_name,lt_dlerror()); |
| + FormatString(message,"\"%.1024s: %.1024s\"",module_name,dlerror()); |
| ThrowException(exception,ModuleError,UnableToRegisterImageFormat, |
| message); |
| return(MagickFail); |
| @@ -1983,7 +1979,7 @@ |
| assert(tag != (char *) NULL); |
| assert(module_name != (char *) NULL); |
| #if defined(HasLTDL) |
| - (void) FormatString(module_name,"%.1024s.la",tag); |
| + (void) FormatString(module_name,"%.1024s.so",tag); |
| (void) LocaleLower(module_name); |
| #else |
| #if defined(MSWINDOWS) |
| @@ -2030,7 +2026,7 @@ |
| assert(tag != (char *) NULL); |
| assert(module_name != (char *) NULL); |
| #if defined(HasLTDL) |
| - (void) FormatString(module_name,"%.1024s.la",tag); |
| + (void) FormatString(module_name,"%.1024s.so",tag); |
| (void) LocaleLower(module_name); |
| #else |
| (void) FormatString(module_name,"%.1024s.dll",tag); |
| @@ -2142,10 +2138,10 @@ |
| */ |
| if ( strcmp("JP2",coder_info->tag) != 0 ) |
| { |
| - if (lt_dlclose((ModuleHandle) coder_info->handle)) |
| + if (dlclose((ModuleHandle) coder_info->handle)) |
| { |
| FormatString(message,"\"%.1024s: %.1024s\"",coder_info->tag, |
| - lt_dlerror()); |
| + dlerror()); |
| ThrowException(exception,ModuleError,FailedToCloseModule,message); |
| status=False; |
| } |