Subject: Re: bug#14569: 24.3.50; bootstrap fails on Cygwin

From: Ken Brown <[email-masked]>
Date: Sat, 22 Jun 2013 11:13:37 -0400

On 6/20/2013 11:54 AM, Eli Zaretskii wrote:
> Sorry, I forgot that there's one more rule:
>
>    # An old-fashioned suffix rule, which, according to the GNU Make manual,
>    # cannot have prerequisites.
>    .el.elc:
> 	  @echo Compiling $<
> 	  @# The BIG_STACK_OPTS are only needed to byte-compile the byte-compiler
> 	  @# files, which is normally done in compile-first, but may also be
> 	  @# recompiled via this rule.
> 	  @$(emacs) $(BYTE_COMPILE_FLAGS) \
> 		  -f batch-byte-compile $<
>
> Instrument it in the same way, and you should be able to catch the
> other problems as well.

Thanks.  I've now got some further backtraces, this time involving glib. 
  I'm using glib-2.34.3, which I compiled without optimization.  There 
are two kinds of problems, in addition to the gmalloc.c crashes that I 
mentioned earlier.

1. When the 'abort' breakpoint is hit, the backtrace (abbreviated) looks 
like this:

#0  0x6acdb0f8 in abort from /usr/bin/cygglib-2.0-0.dll
#1  0x6acd6eb0 in g_thread_abort at gthread-posix.c:76
#2  0x6acd7758 in g_private_set at gthread-posix.c:1026
#3  0x6acb9fc2 in g_thread_self at gthread.c:1003
#4  0x6ac93ee3 in g_main_context_iteration at gmain.c:3351
#5  0x6ac956ea in glib_worker_main at gmain.c:5028
#6  0x6acb9d29 in g_thread_proxy at gthread.c:797
#7  0x610ffe1a in pthread::thread_init_wrapper(void*)@4 at 
cygwin/thread.cc:1947
#8  0x6108974c in thread_wrapper at cygwin/miscfuncs.cc:600

A full backtrace of all threads is attached.

2. There is sometimes a SIGSEGV in g_slist_remove (in the main thread), 
with an abbreviated backtrace like this:

#0  0x6acb06dc in g_slist_remove at gslist.c:418
#1  0x6ac951f8 in g_child_watch_finalize at gmain.c:4580
#2  0x6ac928fa in g_source_unref_internal at gmain.c:1825
#3  0x6ac929fc in g_source_unref at gmain.c:1870
#4  0x005b371e in init_process_emacs at process.c:7100
#5  0x004ee1fc in main at emacs.c:1471

Again, a full backtrace of all threads is attached.

I don't know enough about glib to do much with this.  Jan or Paul, can 
you help?  Jan, if you want to install my unoptimized build of glib with 
debugging symbols, you can get it from my personal Cygwin repository:

   http://sanibeltranquility.com/cygwin/

There are instructions on that page.  You would need to install 
glib2.0-debuginfo, libglib2.0-devel, and libglib2.0_0.  You also need 
cygwin-debuginfo (from a regular Cygwin mirror).

Ken