Subject: bug#19181: 24.4; 24.4.1 libgcc_s_dw2-1.dll crash on exit

From: Eli Zaretskii <[email-masked]>
Date: Tue, 25 Nov 2014 19:26:51 +0200

> Date: Tue, 25 Nov 2014 11:08:04 +0000
> From: Bill Farmer <[email-masked]>
> 
> In the file ~/etc/PROBLEMS is a mention of potential problems with
> libgcc_s_dw2-1.dll.

Do you have a problem that resembles what etc/PROBLEMS describes?  If
so, please describe your problem in detail here.  In particular,
please tell which optional DLLs do you have installed that depend on
libgcc_s_dw2-1.dll (how to check that is described below).

> I have an installation of MinGW on this windows
> machine which is in my PATH, as do many other emacs users, I would
> imagine. If I rename libgcc_s_dw2-1.dll in my MinGW installation, emacs
> works fine and does not crash on exit.  However, this breaks MinGW.

You are not supposed to rename that DLL to solve the problem.  Did you
try the solution suggested by etc/PROBLEMS?

> So I checked for mentions of libgcc in the emacs executables:
> 
> Bill@CYNTHIA /d/Images/emacs/emacs-24.4
> $ find . -name "*.dll" -exec strings -f {} \; | grep libgcc
> ./bin/libXpm.dll: libgcc_s_dw2-1.dll
> 
> Bill@CYNTHIA /d/Images/emacs/emacs-24.4
> $ find . -name "*.exe" -exec strings -f {} \; | grep libgcc
> ./bin/addpm.exe: libgcc_s_dw2-1.dll
> ./bin/ctags.exe: libgcc_s_dw2-1.dll
> ./bin/ebrowse.exe: libgcc_s_dw2-1.dll
> ./bin/emacs-24.4.exe: libgcc_s_dw2-1.dll
> ./bin/emacs.exe: libgcc_s_dw2-1.dll
> ./bin/emacsclient.exe: libgcc_s_dw2-1.dll
> ./bin/emacsclientw.exe: libgcc_s_dw2-1.dll
> ./bin/etags.exe: libgcc_s_dw2-1.dll
> ./bin/runemacs.exe: libgcc_s_dw2-1.dll
> ./libexec/emacs/24.4/i686-pc-mingw32/cmdproxy.exe: libgcc_s_dw2-1.dll
> ./libexec/emacs/24.4/i686-pc-mingw32/ddeclient.exe: libgcc_s_dw2-1.dll
> ./libexec/emacs/24.4/i686-pc-mingw32/hexl.exe: libgcc_s_dw2-1.dll
> ./libexec/emacs/24.4/i686-pc-mingw32/movemail.exe: libgcc_s_dw2-1.dll
> ./libexec/emacs/24.4/i686-pc-mingw32/profile.exe: libgcc_s_dw2-1.dll
> ./libexec/emacs/24.4/i686-pc-mingw32/update-game-score.exe: libgcc_s_dw2-1.dll
> 
> Every executable file in the emacs version 24.4 windows installation has
> a reference to this dll.

The fact that 'strings' finds the name of the DLL in the executable
doesn't mean the executable depends on that DLL.  It most probably
means that the debug info refers to it.

To check whether a .exe program or a DLL actually depends on
libgcc_s_dw2-1.dll, use this command:

  objdump -x FOO.exe | grep "DLL Name:"

This will show all the DLLs that FOO.exe depends on.

Alternatively, use the Dependency Walker (http://www.dependencywalker.com/).

> I don't think this problem is fixable without
> building my own version from source. I use the binary version to avoid
> this.

Please describe the problem in detail, I don't think we have enough
information yet to understand what is going on.

Meanwhile, Dani, could you please check which of the binaries in your
upload, if any, depends on libgcc_s_dw2-1.dll?

Thanks.