emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Emacs-diffs] ImageMagick Support on Windows


From: Eli Zaretskii
Subject: Re: [Emacs-diffs] ImageMagick Support on Windows
Date: Wed, 15 Oct 2014 08:49:33 +0300

> Date: Tue, 14 Oct 2014 23:33:38 +0200
> From: Alexander Shukaev <address@hidden>
> Cc: address@hidden
> 
> I have amended the patches and currently they look as attached. However, I
> think we have a problem here. After applying them, during the build, the
> "./temacs --batch --load loadup bootstrap" command crashes when it reaches:
> 
> Loading .../src/emacs/lisp/image.el (source)...
> 
> I cannot say 100% what could be the cause of this

Can you run this command under GDB, and see exactly where it crashes,
and why?

> but I can give my 99% that this is because some ImageMagick library
> has not been loaded.

I'm not sure I see where image.el needs to load image libraries.
Could you point out where you think that happens?  (Running temacs
under GDB will surely tell, btw.)  If you rename the ImageMagick DLLs
to some other names, or remove them from PATH, does the Emacs build
succeed?

> If you look at one of my previous messages:
> 
>     Nevertheless, on the linking stage I see:
>     
> 
>     -lMagickWand-6.Q16HDRI -lMagickCore-6.Q16HDRI
> 
> So these are the import libraries needed to resolve utilized ImageMagick
> functions. Their respective DLLs on my system are:
> 
> libMagickWand-6.Q16HDRI-2.dll
> libMagickCore-6.Q16HDRI-2.dll
> 
> It means that we should somehow add these 2 libraries as mandatory to the
> "dynamic-library-alist".

Is it really true that both of these DLLs need to be loaded
independently?  Isn't one of them dependent on the other?  If the
latter, just loading one DLL, the dependent one, will automatically
load the other one.  If you have the "dependency walker" utility, it
will show you the dependencies of each of these 2 DLLs.

> But from what I infer from the documentation, this:
> 
> '(imagemagick "libMagickWand-6.Q16HDRI-2.dll" "libMagickCore-6.Q16HDRI-2.dll")
> 
> is not the correct way of doing that since this sublist, in fact, represents
> alternatives to the same single library. In other words, I don't see how
> certain feature can be assigned more than one mandatory DLL.

That's right, we don't currently support more than a single
dynamically loaded library file per image type.  If it turns out (see
above) that it is impossible to fit ImageMagick into that scheme, we
will need to make additional changes, like supporting a list of DLLs
in w32-win.el and in w32_delayed_load.

But these are still speculations.  Let's first determine (1) where and
why does temacs crash, and (2) could only one of these DLLs be
loaded, and cause an automatic loading of the other.

Thanks again for working on this.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]