Installing MinGW¶
This is slightly experimental, but we have built Vorpal with it, and it is currently our only path to building facetsall.
This is for 64 bit only.
- Install the latest compilers from http://tdm-gcc.tdragon.net/download. The webdl installer is recommended. Assuming the version is 5.1.0-2, install into C:\TDM-GCC-64\5.1.0-2.
- This should add
C:\TDM-GCC-64\5.1.0-2\bin
correctly to the end of your Windows path, but one should check. - Most recent attempt required installing binutils to be able to create libraries with the mingw ar. Will need some more sorting out, as previously found:
NumPy build failure with incorrect MinGW binutils:
generate_def(dll_file, def_file)
File "C:\Users\jsalvatier\workspace\numpy\numpy\distutils\mingw32ccompiler.py", line 282, in generate_def
raise ValueError("Symbol table not found")
To make your mingw paths consistent, do
mount binary C:/TDM-GCC-64 /TDM-GCC-64
in the bash shell.
To make this permanent, put
C:/TDM-GCC-64 /TDM-GCC-64 ntfs binary 0 0
as one line in /etc/fstab.
[Installing ATLAS on Windows] requires that one link the MinGW compilers into /usr/bin as follows for 64-bit:
cd /usr/bin
ln -s /TDM-GCC-64/5.1.0-2/bin/x86_64-w64-mingw32-gcc.exe .
ln -s /TDM-GCC-64/5.1.0-2/bin/x86_64-w64-mingw32-g++.exe .
ln -s /TDM-GCC-64/5.1.0-2/bin/x86_64-w64-mingw32-gfortran.exe .
MPI for MinGW¶
These notes have not been upgraded in a while.
A useful reference is http://www.symscape.com/configure-msmpi-for-mingw-w64.
- Copy the Microsoft HPC Pack 2008 SDK distribution to a new place:
cd /winsame
mkdir contrib-mingw
cd contrib-mingw
mkdir microsoft-hpc-mingw
cd microsoft-hpc-mingw
cp -R /cygdrive/c/Program\ Files/Microsoft\ HPC\ Pack\ 2008\ SDK/* .
- Add
#include <basetsd.h>
to the copied mpi.h as line 304. - If
msmpi.dll
is not in/winsame/contrib-mingw/microsoft-hpc-mingw/Lib/amd64
, there may be a copy ofmsmpi.dll
in `C:\Windows\System321 that you can copy over. If so, do the following before the above.
cp /cygdrive/c/Windows/System32/msmpi.dll /winsame/contrib-mingw/microsoft-hpc-mingw/Lib/amd64 # For 64 bit, otherwise i386
- Once
msmpi.dll
is in/winsame/contrib-mingw/microsoft-hpc-mingw/Lib/amd64
do the following:
cd /winsame/contrib-mingw/microsoft-hpc-mingw/Lib
cd amd64
/TDM-GCC-64/5.1.0-2/x86_64-w64-mingw32/bin/gendef msmpi.dll # creates msmpi.def
/TDM-GCC-64/5.1.0-2/x86_64-w64-mingw32/bin/dlltool -d msmpi.def -l libmsmpi.a -D msmpi.dll
The build system for your project then will need to add the flags
-I/winsame/contrib-mingw/microsoft-hpc-mingw/Include/mpi.h
-L/winsame/contrib-mingw/microsoft-hpc-mingw/Lib/amd64 -lmsmpi
for compiling and linking.
MPI for MinGW Fortran¶
- modify mpif.h by adding the following as line 9:
use ISO_C_BINDING
Change the line 308 (309 now that you've added the above as line 9) to read
PARAMETER (MPI_ADDRESS_KIND=C_INTPTR_T)
- modify mpi.f90 by adding the following as line 10:
use ISO_C_BINDING
Change line 311 (312 now that you've added the above as line 10) to read
PARAMETER (MPI_ADDRESS_KIND=C_INTPTR_T)
and compile to generate the module files:
$ mingw32-gfortran.exe -o mpigf.o -c mpi.f90 && rm mpigf.o
The link flags are now:
-L/winsame/contrib-mingw32/microsoft-hpc-mingw/Lib/amd64 -lmsmpifec -lmsmpi
Updated by Redmine Admin almost 9 years ago · 2 revisions