parsec and mingw64 (for PaStiX - CalculiX)

Issue #1 new
Rafał Brzegowy created an issue

Hi, I try compiled parsec in mingw64 but I have this errors (another error occurred after "fixing" the previous one; 1 fix → 2 fix → 3 and so on):

1. fix: replace file parsec_config_bottom.h

E:/msys64_test/usr/local/mfaverge-parsec-6.0.2/parsec/include/parsec/parsec_config_bottom.h:172:12: fatal error: parsec/win32/win_compat.h: No such file or directory
  172 | #  include "parsec/win32/win_compat.h"

2. fix: replace file installdirs.c

E:/msys64_test/usr/local/mfaverge-parsec-6.0.2/parsec/utils/installdirs.c:83:9: error: unknown type name 'HKEY'
   83 |         HKEY parsec_key;

3. fix: replace file mca_param.c

E:/msys64_test/usr/local/mfaverge-parsec-6.0.2/parsec/utils/mca_param.c:100:36: error: unknown type name 'HKEY'
  100 | static int read_keys_from_registry(HKEY hKey, char *sub_key, char *current_name);

4. fix: replace file output.c

E:/msys64_test/usr/local/mfaverge-parsec-6.0.2/parsec/utils/output.c:64:5: error: unknown type name 'HANDLE'
   64 |     HANDLE ldi_syslog_ident;

5. fix: replace file debug.c

E:/msys64_test/usr/local/mfaverge-parsec-6.0.2/parsec/utils/debug.c:155:10: fatal error: execinfo.h: No such file or directory
  155 | #include <execinfo.h>

6. fix: replace files dbpreader.c, CMakeLists.txt, parsec_options.h.in (https://bitbucket.org/icldistcomp/parsec/pull-requests/440/mmap-fix)

E:/msys64_test/usr/local/mfaverge-parsec-6.0.2/tools/profiling/dbpreader.c:14:10: fatal error: sys/mman.h: No such file or directory
   14 | #include <sys/mman.h>

7. fix: replace file CMakeLists.txt (replace all c1x → c99)

[ 12%] Linking C executable testgraph.exe
/bin/sh: -latomic: command not found

8. fix: replace file jdf2c.c

E:/msys64_test/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/parsec_ptgpp.dir/objects.a(jdf2c.c.obj):jdf2c.c:(.text+0x1388a): undefined reference to `fsync'

9. fix: replace file parsec_description_structures.h

E:/msys64_test/usr/local/mfaverge-parsec-6.0.2/parsec/include/parsec/parsec_description_structures.h:60:29: error: expected ';', ',' or ')' before '.' token
   60 | #define rop2          u_expr.range.op2

10. fix: replace file execution_stream.h

E:/msys64_test/usr/local/mfaverge-parsec-6.0.2/parsec/include/parsec/execution_stream.h:27:10: fatal error: sys/resource.h: No such file or directory
   27 | #include <sys/resource.h>

11. fix: replace file Manual edit winuser (INPUT,*PINPUT,*LPINPUT INPUT1,*PINPUT,*LPINPUT)

E:/msys64_test/mingw64/x86_64-w64-mingw32/include/winuser.h:2676:5: error: 'INPUT' redeclared as different kind of symbol
 2676 |   } INPUT,*PINPUT,*LPINPUT;

12. fix: replace file parsec.c ()

E:/msys64_test/usr/local/mfaverge-parsec-6.0.2/parsec/parsec.c:182:76: error: 'parsec_runtime_bind_main_thread' undeclared (first use in this function)
  182 |     if( (0 != startup->virtual_process->vp_id) || (0 != startup->th_id) || parsec_runtime_bind_main_thread ) {

13. fix: replace file profiling.c

E:/msys64_test/usr/local/mfaverge-parsec-6.0.2/parsec/profiling.c:480:18: error: '_SC_PAGESIZE' undeclared (first use in this function); did you mean 'USN_PAGE_SIZE'?
  480 |     ps = sysconf(_SC_PAGESIZE);

These patches allowed me to get the libparsec.a library, I attach files with patch to verify correctness.

I am not a programmer so some fixes are just commented code (9, 12, 13).

Please look: https://bitbucket.org/icldistcomp/parsec/issues/270/parsec-and-mingw64

Comments (3)

  1. Log in to comment