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

From: Eli Zaretskii <[email-masked]>
Date: Thu, 20 Jun 2013 18:54:16 +0300

> Date: Wed, 19 Jun 2013 23:00:36 -0400
> From: Ken Brown <[email-masked]>
> CC: [email-masked], [email-masked], [email-masked]
> 
> On 6/19/2013 10:45 PM, Eli Zaretskii wrote:
> >> Date: Wed, 19 Jun 2013 16:24:02 -0400
> >> From: Ken Brown <[email-masked]>
> >> CC: [email-masked], [email-masked],
> >>          Paul Eggert <[email-masked]>
> >>
> >> After that there were many compile failures with errors like those that
> >> others have reported:
> >>
> >> Compiling gnus/gnus-cache.el
> >> GLib (gthread-posix.c): Unexpected error from C library during
> >> 'pthread_setspecific': Invalid argument.  Aborting.
> >> Makefile:254: recipe for target `gnus/gnus-cache.elc' failed
> >>
> >> But these compilations didn't invoke gdb, apparently because they
> >> involved Makefile targets other than compile-onefile.
> >
> > No, I think these failures didn't go through 'abort', that's why you
> > didn't get the backtrace.  You need to look at the pthread sources in
> > the file mentioned, and find out where to put the breakpoint to catch
> > that error.
> 
> The error message comes from 'g_thread_abort', which calls 'abort'.  The 
> reason there was no backtrace is exactly what I said.  I know that's the 
> case because I removed the "@" at the beginning of the Makefile rule so 
> that the command would get echoed, but it didn't get echoed in the 
> compilation above (and others like it).  On the other hand, it did get 
> echoed in the SIGSEGV examples that I mentioned in my previous mail.

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.