-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mingw and 4.0.2411 error #718
Comments
The error above is solved by adding the flag:
|
I don't have a mingw machine to test it anymore. Also it appears you are compiling the single node version, definitively not the standard way to use parsec. Please try the following patch and let me know the outcome diff --git a/CMakeLists.txt b/CMakeLists.txt
index 176b9361c..6423d8262 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -536,6 +536,7 @@ if( NOT PARSEC_HAVE_RUSAGE_THREAD )
endif( NOT PARSEC_HAVE_RUSAGE_THREAD)
check_include_files(limits.h PARSEC_HAVE_LIMITS_H)
check_include_files(string.h PARSEC_HAVE_STRING_H)
+check_include_files(strings.h PARSEC_HAVE_STRINGS_H)
check_include_files(libgen.h PARSEC_HAVE_GEN_H)
check_include_files(complex.h PARSEC_HAVE_COMPLEX_H)
check_include_files(sys/param.h PARSEC_HAVE_SYS_PARAM_H)
diff --git a/parsec/parsec.c b/parsec/parsec.c
index a375236eb..931ddc4b7 100644
--- a/parsec/parsec.c
+++ b/parsec/parsec.c
@@ -21,6 +21,7 @@
#if defined(PARSEC_HAVE_GETOPT_H)
#include <getopt.h>
#endif /* defined(PARSEC_HAVE_GETOPT_H) */
+#include <sys/time.h>
#include "parsec/ayudame.h"
#include "parsec/mca/pins/pins.h"
@@ -2136,13 +2137,6 @@ void parsec_taskpool_sync_ids_context( intptr_t comm )
parsec_atomic_unlock( &taskpool_array_lock );
}
-/* globally synchronize taskpool id's so that next register generates the same
- * id at all ranks. */
-void parsec_taskpool_sync_ids( void )
-{
- parsec_taskpool_sync_ids_context( (intptr_t)MPI_COMM_WORLD );
-}
-
/* Unregister the taskpool with the engine. This make the taskpool_id available for
* future taskpools. Beware that in a distributed environment the connected taskpools
* must have the same ID.
diff --git a/parsec/remote_dep.h b/parsec/remote_dep.h
index 931053b7d..944230b5c 100644
--- a/parsec/remote_dep.h
+++ b/parsec/remote_dep.h
@@ -426,18 +426,28 @@ extern int parsec_comm_puts;
static inline void
remote_dep_rank_to_bit(int rank, uint32_t *bank, uint32_t *bit, int root)
{
+#ifdef DISTRIBUTED
uint32_t nb_nodes = parsec_remote_dep_context.max_nodes_number;
uint32_t _rank = (rank + nb_nodes - root) % nb_nodes;
*bank = _rank / (8 * sizeof(uint32_t));
*bit = _rank % (8 * sizeof(uint32_t));
+#else
+ /* it's a lonely world ! */
+ *bank = *bit = 0;
+#endif /* DISTRIBUTED */
}
static inline void
remote_dep_bit_to_rank(int *rank, uint32_t bank, uint32_t bit, int root)
{
+#ifdef DISTRIBUTED
int nb_nodes = parsec_remote_dep_context.max_nodes_number;
uint32_t _rank = bank * (8 * sizeof(uint32_t)) + bit;
*rank = (_rank + root) % nb_nodes;
+#else
+ /* it's a lonely world ! */
+ *rank = 0;
+#endif /* DISTRIBUTED */
}
#endif /* __USE_PARSEC_REMOTE_DEP_H__ */
diff --git a/parsec/runtime.h b/parsec/runtime.h
index 01a6ad27e..e9eeea746 100644
--- a/parsec/runtime.h
+++ b/parsec/runtime.h
@@ -560,17 +560,6 @@ void parsec_taskpool_unregister(parsec_taskpool_t* tp);
*/
void parsec_taskpool_sync_ids_context( intptr_t comm );
-/**
- * @brief Globally synchronize taskpool IDs.
- *
- * @details
- * Globally synchronize taskpool IDs so that next register generates the same
- * id at all ranks. This is a collective over the communication object
- * associated with PaRSEC, and can be used to resolve discrepancies introduced by
- * taskpools not registered over all ranks.
-*/
-void parsec_taskpool_sync_ids(void);
-
/**
* @brief Returns the execution stream that corresponds to the calling thread
*
diff --git a/parsec/utils/process_name.c b/parsec/utils/process_name.c
index 66a7cf22b..41329e36e 100644
--- a/parsec/utils/process_name.c
+++ b/parsec/utils/process_name.c
@@ -6,6 +6,9 @@
#include "parsec/parsec_config.h"
#include <unistd.h>
#include <string.h>
+#if defined(PARSEC_HAVE_STRINGS_H)
+#include <strings.h>
+#endif /* defined(PARSEC_HAVE_STRINGS_H) */
#include <limits.h>
#include <stdio.h>
|
not sure why |
|
We never build without MPI, so the code is really not handling it very well. The rest of the warnings have simple fixes or can be ignores. I need to figure out a way to get a container with mingw (on a remote x86 machine). |
I try to update package for msys2/mingw to new version 4.0.2411 but I have this error:
mingw64
clang
The text was updated successfully, but these errors were encountered: