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

From: Eli Zaretskii <[email-masked]>
Date: Wed, 17 Jan 2018 17:36:45 +0200

> 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.

> 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