Subject: bug#30106: Loading file /sources/emacs/lisp/emacs-lisp/ert.elc failed to provide feature `mod-test'

From: Jean Louis <[email-masked]>
Date: Wed, 17 Jan 2018 20:03:10 +0300

On Wed, Jan 17, 2018 at 05:36:45PM +0200, Eli Zaretskii wrote:
> > Date: Tue, 16 Jan 2018 22:18:55 +0300
> > From: Jean Louis <[email-masked]>
> > Cc: [email-masked]
> > 
> > >   in_current_thread (void)
> > >   {
> > >     if (current_thread == NULL)
> > >       return false;
> > >   #ifdef HAVE_PTHREAD
> > >     return pthread_equal (pthread_self (), current_thread->thread_id);
> > >   #elif defined WINDOWSNT
> > >     return GetCurrentThreadId () == current_thread->thread_id;
> > >   #endif
> > >   }
> > > 
> > > So either current_thread is NULL in your case, or pthread_equal
> > > returns false.  Can you tell which one of these happens?
> > 
> > I cannot test it myself on my own. You may tell me
> > what to do, to test it.
> 
> Apply the patch below, rebuild Emacs, rerun the test, and see if
> there's the telltale "current_thread is NULL"
> message in the log.

I have done that, I did not see during "make
check" the line "current_thread is NULL", and I am
attaching the output from "make check".

Jean

> 
> > Do I miss some software package?
> 
> Not sure yet.
> 
> diff --git a/src/emacs-module.c b/src/emacs-module.c
> index 00f0e86..333c583 100644
> --- a/src/emacs-module.c
> +++ b/src/emacs-module.c
> @@ -804,7 +804,10 @@ static bool
>  in_current_thread (void)
>  {
>    if (current_thread == NULL)
> +    {
> +      fprintf (stderr, "current_thread is NULL\n");
>      return false;
> +    }
>  #ifdef HAVE_PTHREAD
>    return pthread_equal (pthread_self (), current_thread->thread_id);
>  #elif defined WINDOWSNT