Subject: bug#19813: closed (Re: bug#19813: 24.4; emacs crashes on exit)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 09 Feb 2015 15:42:02 +0000

Your bug report

#19813: 24.4; emacs crashes on exit

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
19813: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19813
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#19813: 24.4; emacs crashes on exit
From: Eli Zaretskii <[email-masked]>
To: Test User <[email-masked]>
Cc: [email-masked]
Date: Mon, 09 Feb 2015 17:41:22 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> Date: Mon, 9 Feb 2015 04:03:24 -0500
> From: Test User <[email-masked]>
> 
>     The problem is not with libgcc_s_dw2-1.dll, the problem is with some
>     other DLL that loads it, typically zlib1.dll or some image library.
> 
> I built emacs with -shared-libgcc in LDFLAGS and the problem went away.

That is one solution, but it is not the best one, IMO.  E.g., you
cannot move this binary to another machine without also copying
libgcc_s_dw2-1.dll with it.

The best solution is to replace the DLL(s) you have that depend on
libgcc_s_dw2-1.dll with DLLs that offer the same functionality, but do
not depend on libgcc_s_dw2-1.dll.  See below for a specific
recommendation.

> Thanks. You can close the bug if you have not already done so.

Done.

> On my main system (where the problem occurs), there is no zlib1.dll in
> /mingw/bin. I built it myself, and it does *not* have a dependency on libgcc_s_dw2-1.dll. On my virtual machine (where I did not have the problem),
> there is a zlib1.dll supplied by MinGW, and it *does* depend on
> libgcc_s_dw2-1.dll.
> 
> The only DLL loaded when emacs runs that depends on libgcc_s_dw2-1.dll
> is libharfbuzz-0.dll, which is not loaded with `emacs -Q'.

That figures: "emacs -Q" refrains from showing the splash-screen
image, which causes Emacs to load a suitable image library.  In your
case, that library is librsvg for showing the SVG variant of the
splash screen.  And the librsvg DLLs you have include
libharfbuzz-0.dll, which depends on libgcc_s_dw2-1.dll, and triggers
the problem.

In general, no MinGW DLLs distributed as binaries should depend on
libgcc_s_dw2-1.dll, for several reasons:

  . Each end-user machine that has GCC installed will have this DLL on
    PATH, which creates a small "DLL hell" when you install other
    versions of that DLL, possibly from other GCC versions

  . Loading libgcc_s_dw2-1.dll by some other DLL (as opposed to by the
    main program itself) triggers these crashes (due to a known bug in
    the machinery that supports C++ exceptions between DLLs)

  . For the person who uploads the precompiled binaries of the DLLs,
    the dependency on libgcc_s_dw2-1.dll is a terrible PITA, because
    GPL requires to provide its sources, i.e. the entire 80-MB source
    tarball of the full GCC package

You can find DLLs that are never dependent on libgcc_s_dw2-1.dll here:

  http://sourceforge.net/projects/ezwinports/files/?source=navbar

That collection includes librsvg, zlib, and all the other libraries
required by Emacs.  (Btw, the librsvg build there is much smaller than
the one you use, because it excludes every feature not useful on
Windows, like Fontconfig, Freetype, and Harfbuzz.)

Subject: 24.4; emacs crashes on exit
From: Test User <[email-masked]>
To: [email-masked]
Date: Sun, 8 Feb 2015 00:35:19 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

--text follows this line--

Note: the problem does not occur if you run `emacs -Q'.

To reproduce the problem:
1) Unzip emacs-24.4-bin-i686-pc-mingw32.zip.
On my system, I unzipped it in
c:/users/testuser448/Downloads/Open_Source/Binaries/emacs

2) Run `emacs'.

3) Select File -> Quit from the menu.
A message box is displayed saying:

GNU Emacs: The extensible self-documenting text editor has stopped
working

A problem caused the program to stop working correctly. Please
close the program.

-> Close the program
-> Debug the program

In gdb, emacs terminates without the dialog box appearing, and reports
that the process exited with code 03.

Other than that, emacs appears to be working properly. My previous
version (24.3) did not have this problem.

In GNU Emacs 24.4.1 (i686-pc-mingw32)
 of 2014-10-24 on LEG570
Windowing system distributor `Microsoft Corp.', version 6.3.9600
(i.e., Windows 8.1, 64-bit)
Configured using:
 `configure --prefix=/c/usr'

Important settings:
  value of $LANG: ENJ
  locale-coding-system: cp1252

Major mode: Fundamental

Minor modes in effect:
  nxhtml-menu-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
M-x r e p o r t = <backspace> - e m a c s - b u g
<return>

Recent messages:
Loading c:/mingw/local/lisp/nxhtml/nxhtml-loaddefs...done
Patching xhtml-loader.rnc
Wrote c:/MinGW/local/lisp/nxhtml/etc/schema/xhtml-loader.rnc
Loading c:/mingw/local/lisp/nxhtml/nxhtml/nxhtml-autoload...
nxhtml-autoload starting ... (hm, should maybe be renamed ...)
majmodpri-apply-priorities running ... (done)
Loading c:/mingw/local/lisp/nxhtml/nxhtml/nxhtml-autoload...done
Nxml/Nxhtml Autostart.el loaded in 0.2 seconds
Loading c:/mingw/local/lisp/nxhtml/autostart.el (source)...done
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
c:/mingw/local/lisp/nxhtml/tests/ert hides
c:/Users/Testuser448/Downloads/Open_Source/Binaries/emacs/share/emacs/24.4/lisp/emacs-lisp/ert

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util help-fns mail-prsvr mail-utils nxhtml-autostart nxhtml-autoload
majmodpri nxhtml-menu web-autoload nxhtml-base time-date tooltip
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32
ls-lisp w32-common-fns disp-table w32-win w32-vars tool-bar dnd fontset
image regexp-opt fringe tabulated-list newcomment lisp-mode prog-mode
register page menu-bar rfn-eshadow timer select scroll-bar mouse
jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
w32notify w32 multi-tty emacs)

Memory information:
((conses 8 84239 4988)
 (symbols 32 18357 0)
 (miscs 32 75 138)
 (strings 16 12769 3674)
 (string-bytes 1 406041)
 (vectors 8 9771)
 (vector-slots 4 386289 3440)
 (floats 8 59 326)
 (intervals 28 257 31)
 (buffers 508 12))