Hi Charles,
Hi, Wesley, I’m playing around with per-obj builds, using per-object/tls configure options.
pamid defined it’s own critical sections so it doesn’t see this build error, but I’m trying to use default per-obj builds and I hit this:
mpiimplthreadpost.h:27: error: static declaration of 'MPIU_Thread_CS_enter_lockname_impl_' follows non-static declaration
My solution for me was to prototype the functions in src/include/mpiimplthread.h:
diff --git a/src/include/mpiimplthread.h b/src/include/mpiimplthread.h
index f0141c6..c9af705 100644
--- a/src/include/mpiimplthread.h
+++ b/src/include/mpiimplthread.h
@@ -1039,5 +1039,20 @@ do { \
#define MPIU_THREAD_MPI_OBJ_FINALIZE(objptr_) do {} while (0)
#endif
+
+#if 0
+static MPIU_DBG_INLINE_KEYWORD void
+MPIU_Thread_CS_enter_lockname_impl_(enum MPIU_Nest_mutexes kind,
+ const char *lockname,
+ MPID_Thread_mutex_t *mutex);
+
+
+static MPIU_DBG_INLINE_KEYWORD void
+MPIU_Thread_CS_exit_lockname_impl_(enum MPIU_Nest_mutexes kind,
+ const char *lockname,
+ MPID_Thread_mutex_t *mutex);
+#endif
+
+
#endif /* !defined(MPIIMPLTHREAD_H_INCLUDED) */
….
Can you guys add in the prototypes? This patch isn’t complete, I wanted to talk to you first.
Is this the right solution?
Also related (reported by Bill):
https://trac.mpich.org/projects/mpich/ticket/1937