From: Stephen Leake <stephen_leake@stephe-leake.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: ofv@wanadoo.es, emacs-devel@gnu.org
Subject: Re: png in emacs 25 mingw64
Date: Sat, 16 Apr 2016 15:34:16 -0500 [thread overview]
Message-ID: <867ffxjnsn.fsf_-_@stephe-leake.org> (raw)
In-Reply-To: <83lh4dbuav.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 16 Apr 2016 15:40:56 +0300")
TLDR; I usually have Cygwin in the PATH as well; it has shell tools I
can't get in Mingw (yet). It turns out that is the problem; if I run my
build of Emacs from a Mingw64 shell (no Cygwin in PATH), it can show
PNGs.
More details below.
Question; exactly which path is searched for DLLs? I have two:
PATH from the parent process
exec-path after editing in ~/.emacs
The png image is opened well after ~/.emacs is processed, so does it
look on the edited exec-path for the dll?
Or does the dll search take place during startup, in which case it is
the parent PATH (or exec-path before editing in ~/.emacs).
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Stephen Leake <stephen_leake@stephe-leake.org>
>> Cc: ofv@wanadoo.es, emacs-devel@gnu.org
>> Date: Sat, 16 Apr 2016 07:17:25 -0500
>>
>> Eli Zaretskii <eliz@gnu.org> writes:
>>
>> >> From: Stephen Leake <stephen_leake@stephe-leake.org>
>> >> Date: Fri, 15 Apr 2016 16:37:33 -0500
>> >> Cc: emacs-devel@gnu.org
>> >>
>> >> One thing I'd like to fix; my build of emacs 25 does not display png
>> >> files. The binary pretest install does. I'd like to figure out the
>> >> difference.
>> >
>> > Are both binaries in the same directory?
>>
>> My build is in c:/Projects/emacs/emacs-25-build-mingw64/src (I don't
>> install, so I can easily switch versions), with libpng16-16.dll in
>> d:/msys64/mingw54/bin in PATH.
>>
>> The error message is "Cannot display image: (Invalid image
>> specification)". I traced thru some of the code that tries to open
>> the image; image.c init-image-library returns nil. I haven't tried
>> running under the debugger to go further.
>>
>> config.h sets HAVE_PNG true.
>>
>>
>> The pretest binary is in d:/Apps/emacs-25.0.90/bin, both emacs.exe and
>> libpng16-16.dll; mingw64 is _not_ in PATH.
>>
>> cygwin "diff" says the two dlls differ.
>
> So this is the root cause, right there: the DLLs differ.
I don't see why that has to be the problem; the difference could be in
some date.
> Where did
> you get them?
One from the MSYS2 distribution, the other from the pretest binary,
which may have been built with the MSYS2 distribution, but I'm not sure.
>Are both 64-bit DLLs? Are they both MinGW DLLs?
I don't know how to tell.
>> depends.exe on emacs and libpng (both builds) reports no obvious errors
>> (it seems there is always something missing on windows; I assume those
>> are optional Windows components).
>
> I didn't mean errors. Libpng should depend on zlib DLL;
Yes; zlib1.dll
>do you have
> it?
Yes; in the respective distributions.
>is it good?
I don't know how to tell. I guess I need to find some other Mingw64
program that uses it?
>is there only one zlib DLL?
In PATH for each build, yes. Although "type -a zlib1.dll" says "not
found", so it's hard to be sure.
>> The libpng comes from the msys2 package manager, so I assume it's all
>> consistent.
>
> Does it come with zlib DLL, or did you install zlib DLL separately?
> If the latter, they could be inconsistent.
Still from the package manager. Yes, the packages could be inconsistent
with each other.
>> Yes, I figured it was some obscure dll issue, which is why I have not
>> tried to track it down yet. Since the problem is not present in the
>> pretest, I figured it's a problem with my setup, not the Emacs sources,
>> so I did not report a bug.
>
> I don't understand why you (and others) use different PATH
> arrangements to run different binaries, and have multiple versions of
> support DLLs.
If I want to use the Mingw distribution, I use that path.
If I want to use the Emacs pretest binary distribution, I use that path.
I do _not_ mix distributions.
I have no idea how the Emacs pretest was built; simply assuming it is
the same as my current Mingw installation is almost guarranteed to be
false.
That's what PATH is for.
>Isn't it clear that by doing so you create your own DLL
> hell?
No, I'm avoiding it by not mixing distributions.
>It's much better to have just one copy of each support DLL, in
> a place that is always on PATH.
That would be nice. I can do that on Debian, that has only one package
manager, and a rigorous distribution policy.
I could do that on Windows by only using MSYS2. But then I would not be
able to use the Emacs pretest.
Hmm. I do usually have Cygwin in the PATH as well; it has shell tools I
can't get in Mingw (yet). It turns out that is the problem; if I run my
build of Emacs from a Mingw64 shell (no Cygwin in PATH), it can show
PNGs.
So your point about mixing distributions is valid; I was not being
careful enough. Most of the time it's not a problem (this is the first
problem I can remember).
--
-- Stephe
next prev parent reply other threads:[~2016-04-16 20:34 UTC|newest]
Thread overview: 119+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-23 22:11 Build failure for Emacs master Angelo Graziosi
2016-02-23 23:14 ` Paul Eggert
2016-02-24 0:23 ` Angelo Graziosi
2016-02-24 3:42 ` Eli Zaretskii
2016-02-24 9:36 ` Angelo Graziosi
2016-02-24 10:20 ` Angelo Graziosi
2016-02-24 17:37 ` Eli Zaretskii
2016-02-24 22:20 ` Angelo Graziosi
2016-02-25 16:43 ` Eli Zaretskii
2016-03-04 21:50 ` Angelo Graziosi
2016-03-05 7:25 ` Eli Zaretskii
2016-03-05 13:53 ` Angelo Graziosi
2016-03-05 20:59 ` Angelo Graziosi
2016-03-06 3:35 ` Eli Zaretskii
2016-03-06 16:55 ` Eli Zaretskii
2016-03-06 22:00 ` Angelo Graziosi
2016-03-06 17:37 ` Andy Moreton
2016-03-06 17:54 ` Eli Zaretskii
2016-04-12 0:36 ` Angelo Graziosi
2016-04-12 11:36 ` Phillip Lord
2016-04-12 20:54 ` Angelo Graziosi
2016-04-12 22:52 ` MS-Windows warnings (was build failure) " Paul Eggert
2016-04-12 23:36 ` Angelo Graziosi
2016-04-13 5:49 ` Yuri Khan
2016-04-13 15:26 ` Eli Zaretskii
2016-04-13 18:06 ` Paul Eggert
2016-04-13 19:16 ` Eli Zaretskii
2016-04-19 15:46 ` Davis Herring
2016-04-19 16:04 ` Eli Zaretskii
2016-04-19 19:19 ` Davis Herring
2016-04-12 15:28 ` Build failure " Eli Zaretskii
2016-04-12 21:00 ` Angelo Graziosi
2016-04-12 21:49 ` Andy Moreton
2016-04-13 2:37 ` Eli Zaretskii
2016-04-13 23:11 ` Andy Moreton
2016-04-14 7:32 ` Phillip Lord
2016-04-14 16:06 ` Paul Eggert
2016-04-14 16:19 ` Eli Zaretskii
2016-04-14 16:50 ` O_BINARY and emacs_open (was: Build failure for Emacs master) Paul Eggert
2016-04-15 11:08 ` Build failure for Emacs master Phillip Lord
2016-04-15 14:40 ` Eli Zaretskii
2016-04-18 19:08 ` Phillip Lord
2016-04-18 19:33 ` Eli Zaretskii
2016-04-18 20:05 ` Phillip Lord
2016-04-18 21:10 ` Paul Eggert
2016-04-20 8:18 ` Phillip Lord
2016-04-20 15:05 ` Eli Zaretskii
2016-04-20 16:55 ` Phillip Lord
2016-04-20 17:41 ` Eli Zaretskii
2016-04-20 17:59 ` Andy Moreton
2016-04-21 10:46 ` Phillip Lord
2016-04-14 16:35 ` Eli Zaretskii
2016-04-14 17:06 ` Andy Moreton
2016-04-14 17:48 ` Eli Zaretskii
2016-04-14 18:40 ` Andy Moreton
2016-04-14 19:31 ` Eli Zaretskii
2016-04-14 20:30 ` Andy Moreton
2016-04-15 7:29 ` Eli Zaretskii
2016-04-15 8:18 ` Andy Moreton
2016-04-15 14:38 ` Eli Zaretskii
2016-04-15 15:36 ` Andy Moreton
2016-04-18 8:31 ` Angelo Graziosi
2016-04-18 18:30 ` Eli Zaretskii
2016-04-18 23:48 ` Andy Moreton
2016-04-19 9:58 ` Angelo Graziosi
2016-04-19 14:39 ` Eli Zaretskii
2016-04-19 21:15 ` Angelo Graziosi
2016-04-19 21:18 ` Angelo Graziosi
2016-04-19 21:20 ` Angelo Graziosi
2016-04-20 0:26 ` Paul Eggert
2016-04-20 14:25 ` Angelo Graziosi
2016-04-12 22:42 ` Angelo Graziosi
2016-04-13 20:12 ` Angelo Graziosi
2016-04-13 21:32 ` Paul Eggert
2016-04-13 22:00 ` Angelo Graziosi
2016-04-14 1:31 ` Paul Eggert
2016-04-14 8:03 ` Angelo Graziosi
2016-04-14 15:30 ` Eli Zaretskii
2016-04-14 15:58 ` Building Emacs on MSYS2 (was: Build failure for Emacs master) Óscar Fuentes
2016-04-14 16:09 ` Building Emacs on MSYS2 Paul Eggert
2016-04-14 16:13 ` Óscar Fuentes
2016-04-14 16:21 ` Eli Zaretskii
2016-04-14 16:46 ` Óscar Fuentes
2016-04-14 17:26 ` Eli Zaretskii
2016-04-14 20:09 ` Óscar Fuentes
2016-04-15 15:03 ` Paul Eggert
2016-04-15 15:37 ` Óscar Fuentes
2016-04-15 17:30 ` Paul Eggert
2016-04-15 17:58 ` Óscar Fuentes
2016-04-15 19:15 ` Paul Eggert
2016-04-15 19:40 ` Óscar Fuentes
2016-04-15 20:03 ` Eli Zaretskii
2016-04-15 20:20 ` Óscar Fuentes
2016-04-15 20:49 ` Eli Zaretskii
2016-04-15 21:37 ` Stephen Leake
2016-04-15 22:11 ` Óscar Fuentes
2016-04-16 6:42 ` Eli Zaretskii
2016-04-17 21:46 ` Fixing imagemagick on W32 Stephen Leake
2016-04-18 2:28 ` Eli Zaretskii
2016-04-16 6:30 ` Building Emacs on MSYS2 Eli Zaretskii
2016-04-16 12:17 ` Stephen Leake
2016-04-16 12:40 ` Eli Zaretskii
2016-04-16 20:34 ` Stephen Leake [this message]
2016-04-16 21:02 ` png in emacs 25 mingw64 Stephen Leake
2016-04-17 2:46 ` Eli Zaretskii
2016-04-17 2:45 ` Eli Zaretskii
2016-04-18 12:32 ` Building Emacs on MSYS2 Phillip Lord
2016-04-15 19:42 ` Stefan Monnier
2016-04-15 20:17 ` Óscar Fuentes
2016-04-15 21:22 ` Stefan Monnier
2016-04-14 16:15 ` Building Emacs on MSYS2 (was: Build failure for Emacs master) Eli Zaretskii
2016-04-14 16:43 ` Building Emacs on MSYS2 Óscar Fuentes
2016-04-14 17:35 ` Eli Zaretskii
2016-04-14 16:36 ` Build failure for Emacs master Angelo Graziosi
2016-04-14 16:39 ` Paul Eggert
2016-04-14 1:38 ` Stefan Monnier
2016-04-14 2:04 ` John Wiegley
2016-04-14 14:41 ` Paul Eggert
2016-02-24 17:31 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=867ffxjnsn.fsf_-_@stephe-leake.org \
--to=stephen_leake@stephe-leake.org \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=ofv@wanadoo.es \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).