|
[Sponsors] |
OpenFOAM on MinGW crosscompiler hosted on Linux |
![]() |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
![]() |
![]() |
#22 |
New Member
Allen Zhao
Join Date: Mar 2009
Location: Westmont, IL, USA
Posts: 26
Rep Power: 17 ![]() |
Hi, Richard,
Thank you so much for your work. Sorry that I was sidetrip to another project these days and have not tested your patch. Just tested your patch on a SuSE 10.2 box, and it went much further than before. There is only one roadblock left, though: SOURCE=interfaceProperties.C ; mingw32-g++ -Dlinux -DDP -DWIN32 -DLITTLE_ENDIAN -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -O3 -DNDEBUG -DNoRepository -ftemplate-depth-40 -I/User/allen/OpenFOAM/OpenFOAM-1.4.1/src/finiteVolume/lnInclude -IlnInclude -I. -I/User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OSspecific/MSwindows/lnInclude -I/User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude -c $SOURCE -o Make/linuxmingw32DPOpt/interfaceProperties.o In file included from /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/Time.H:47, from /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/GeometricField.C:28, from /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/GeometricField.H:570, from /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/GeometricScalarField. H:39, from /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/GeometricFields.H:35, from /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/finiteVolume/lnInclude/volFields.H:38, from interfaceProperties.H:42, from interfaceProperties.C:35: /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/cpuTime.H:40:23: error: sys/times.h: No such file or directory In file included from /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/Time.H:47, from /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/GeometricField.C:28, from /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/GeometricField.H:570, from /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/GeometricScalarField. H:39, from /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/GeometricFields.H:35, from /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/finiteVolume/lnInclude/volFields.H:38, from interfaceProperties.H:42, from interfaceProperties.C:35: /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/cpuTime.H:57: error: field 'startTime_' has incomplete type /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/cpuTime.H:58: error: field 'lastTime_' has incomplete type /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/cpuTime.H:59: error: field 'newTime_' has incomplete type make: *** [Make/linuxmingw32DPOpt/interfaceProperties.o] Error 1 ------------------------------------------ It sounds like the <sys/times.h> is not available. I checked the following location: hurricane:/usr/mingw/i686-pc-mingw32/include # ls sys/time*.h sys/time.h sys/timeb.h My minGW problem? Here is my MinGW installation: hurricane:/User/allen/OpenFOAM/OpenFOAM-1.4.1 # mingw32-gcc --version mingw32-gcc (GCC) 4.2.1-sjlj (mingw32-2) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. I grab the source code from MinGW's site. Maybe I should just grab a vanilla gnu c as you have mentioned? |
|
![]() |
![]() |
![]() |
![]() |
#23 |
New Member
Allen Zhao
Join Date: Mar 2009
Location: Westmont, IL, USA
Posts: 26
Rep Power: 17 ![]() |
Still have the same issue (<sys/times.h> missing) when using a 4.2.3 MinGW compiler (compiled from vanilla gnu C).
Any suggestions? I notice that the Linux' /usr/include/sys/ indeed has times.h there. But the MinGW gcc does not have it. Can it be my MinGW build process? |
|
![]() |
![]() |
![]() |
![]() |
#24 |
Senior Member
Richard Smith
Join Date: Mar 2009
Location: Enfield, NH, USA
Posts: 138
Blog Entries: 4
Rep Power: 17 ![]() |
Hi Allen,
From the look of your error message: /User/allen/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/cpuTime.H:57: error: field 'startTime_' has incomplete type I think you've got include files in the wrong place. I'm guessing that is probably due to you having compiled another platform with this build prior to applying the patch (v4). I suggest you remove all lnInclude directories by using wcleanLnInclude in the top OpenFOAM directory. Also make sure that the Unix directory is deleted from src/OpenFOAM/OSspecific. Hopefully it's this include issue and not your MinGW configuration. Rich
__________________
Symscape, Computational Fluid Dynamics for all |
|
![]() |
![]() |
![]() |
![]() |
#25 |
New Member
Allen Zhao
Join Date: Mar 2009
Location: Westmont, IL, USA
Posts: 26
Rep Power: 17 ![]() |
Hi, Rich,
Thanks for the pointers. Well, tried from scratch again, and still got the same errors. Where do you have struct tms defined in your MinGW header? In my MinGW, /usr/local/mingw/mingw32/include/ should be the location, and there is not <sys/times.h> there. Do you see times.h in your path? Maybe I miss something in my MinGW installation. Best regards, Allen |
|
![]() |
![]() |
![]() |
![]() |
#26 |
Senior Member
Richard Smith
Join Date: Mar 2009
Location: Enfield, NH, USA
Posts: 138
Blog Entries: 4
Rep Power: 17 ![]() |
Hi Allen,
There shouldn't be a reference to <sys/times.h> or tms in your OpenFOAM MinGW build - they only apply to Unix. So I think your MinGW configuration is fine. Somehow it seems that your MinGW OpenFOAM build is pointing to src/OSspecific/Unix, whereas it should be pointing to src/OSspecific/MSwindows. Check when compiling a source file that the build line includes: -I<openfoam-home>/src/MSwindows/lnInclude Check that the environment variable: export WM_OS_SPECIFIC=OSspecific/MSwindows is set in: .OpenFOAM-1.4.1/bashrc-mingw32 and that you have sourced it prior to compiling. Anyone else seen this problem or has a suggestion as to how to avoid it? Rich
__________________
Symscape, Computational Fluid Dynamics for all |
|
![]() |
![]() |
![]() |
![]() |
#27 |
New Member
Allen Zhao
Join Date: Mar 2009
Location: Westmont, IL, USA
Posts: 26
Rep Power: 17 ![]() |
Hi, Rich,
Just check my OpenFOAM directory, before patching, I have: <openfoam-home>/OpenFOAM-1.4.1/src/OpenFOAM/OSspecific/Unix/ OSspecific.H Unix.H cpuTime fileStat.C printStack.C timer.C Unix.C clockTime dummyPrintStack.C fileStat.H signals timer.H After OSspecific is removed and a the v4-patch is applied, I have this now: <openfoam-home>/OpenFOAM-1.4.1/src/OpenFOAM/OSspecific OSspecific.H I do not see the MSwindows directory. Any pointers? This seems to be the source of the trouble. The bashrc-mingw32 does contains the following line: # Operating System/Platform from Unix or MSwindows # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ export WM_OS_SPECIFIC=OSspecific/MSwindows Best regards, Allen Zhao |
|
![]() |
![]() |
![]() |
![]() |
#28 |
Senior Member
Richard Smith
Join Date: Mar 2009
Location: Enfield, NH, USA
Posts: 138
Blog Entries: 4
Rep Power: 17 ![]() |
Hi Allen,
Sorry, I mistyped where the MSwindows directory now lives - no longer under src/OpenFOAM. It should be: OpenFOAM-1.4.1/src/OSspecific/MSwindows There should be a single file in the old OSspecific directory: OpenFOAM-1.4.1/src/OpenFOAM/OSspecific/OSspecific.H as you correctly have. Sorry for the confusion. If you are still having problems, please post the error message from the compiler - especially with relation to which files it can't find. Rich
__________________
Symscape, Computational Fluid Dynamics for all |
|
![]() |
![]() |
![]() |
![]() |
#29 |
New Member
Allen Zhao
Join Date: Mar 2009
Location: Westmont, IL, USA
Posts: 26
Rep Power: 17 ![]() |
Something interesting with the OpenFOAM source structure:
After unpack the big tar.gz file to OpenFOAM-1.4.1/ directory, I do not see src/OSspecific/ there, but rather src/OpenFOAM/OSspecific/ and src/OpenFOAM/OSspecific/Unix/ Just read the v4-mingw-openfoam-1-4-1.patch which use "src/OSspecific/" everywhere. I follow the http://www.symscape.com/openfoam-on-windows, first renamed src/OpenFOAM/OSspecific to src/OpenFOAM/OSspecific.orig, and then did `patch -p0 < v4-mingw-openfoam-1-4-1.patch`. This recreates the src/OSspecific directory, but there is only one file in it. Obviously I must have applied your patch incorrectly. ;( |
|
![]() |
![]() |
![]() |
![]() |
#30 |
Senior Member
Richard Smith
Join Date: Mar 2009
Location: Enfield, NH, USA
Posts: 138
Blog Entries: 4
Rep Power: 17 ![]() |
That's correct.
src/OpenFOAM/OSspecific/Unix is gone and OSspecific.H is the only file in the src/OpenFOAM/OSspecific directory. src/OSspecific is created by the patch with subdirectories MSwindows and Unix that contain platform specific sources. Note src/OSspecific and src/OpenFOAM/OSspecific are different locations.
__________________
Symscape, Computational Fluid Dynamics for all |
|
![]() |
![]() |
![]() |
![]() |
#31 |
Senior Member
Richard Smith
Join Date: Mar 2009
Location: Enfield, NH, USA
Posts: 138
Blog Entries: 4
Rep Power: 17 ![]() |
Another thought.
It's not enough to just rename src/OpenFOAM/OSspecific, you have to move it out of the OpenFOAM distribution, otherwise the symbolic link builder will find it and add links to it - this could be the cause of your problems.
__________________
Symscape, Computational Fluid Dynamics for all |
|
![]() |
![]() |
![]() |
![]() |
#32 |
Member
Jason Dale
Join Date: Mar 2009
Location: UK
Posts: 80
Rep Power: 17 ![]() |
Hi,
Nice piece of kit! Would love to get it working but my limited linux knowledge isn't helping....all day! My problem is that i get stuck at the building gcc stage. For OpenSUSE 10.3 32bit, it worked ok for this config MINGW_URL="http://heanet.dl.sourceforge.net/sourceforge/mingw" GCC_CORE_ARCHIVE="gcc-core-3.4.5-20060117-1-src.tar.gz" GCC_GPP_ARCHIVE="gcc-g++-3.4.5-20060117-1-src.tar.gz" GCC_G77_ARCHIVE="" GCC_OBJC_ARCHIVE="" GCC_JAVA_ARCHIVE="" GCC_ADA_ARCHIVE="" GCC_PATCH="" BINUTILS_ARCHIVE="binutils-2.18.50-20080109-src.tar.gz" MINGW_ARCHIVE="mingw-runtime-3.9.tar.gz" W32API_ARCHIVE="w32api-3.9.tar.gz" But then when I tried to compile OF, after a few seconds it crashed. So, I figured the gcc was so out of date from gcc so I have been trying gcc-xxx-4.2.1.tar.gz, the same as the OF 1.4.1 distribution (hope Im doing this right???) Next config is here, downloaded from different places: GCC_CORE_ARCHIVE="gcc-core-4.2.1.tar.gz" GCC_GPP_ARCHIVE="gcc-g++-4.2.1.tar.gz" GCC_GPP_ARCHIVE="" GCC_G77_ARCHIVE="" GCC_OBJC_ARCHIVE="" GCC_JAVA_ARCHIVE="" GCC_ADA_ARCHIVE="" GCC_PATCH="" BINUTILS_ARCHIVE="binutils-2.18.50-20080109-src.tar.gz" MINGW_ARCHIVE="mingw-runtime-3.14-src.tar.gz" W32API_ARCHIVE="w32api-3.11-src.tar.gz" Earlier, the compiler complained complained that MPRF was buggy so I updated GMP and MPRF and got a bit further. But now it seems to crash out at a point that mentions time.h??? (I saw this mentioned above) Here is my make.log file ![]() the error is at the end and configure.log ![]() Now I'm stuck, would greatly appreciate some help... Thanks Jason |
|
![]() |
![]() |
![]() |
![]() |
#33 |
Senior Member
Richard Smith
Join Date: Mar 2009
Location: Enfield, NH, USA
Posts: 138
Blog Entries: 4
Rep Power: 17 ![]() |
Hi Jason,
Rather than compile your own MinGW cross-compiler, I'd suggest using the pre-compiled binaries Bernhard mentioned at: http://sourceforge.net/projects/mingw-cross/ There's a chance I just got lucky when I compiled my own from scratch. If it helps I'm using Ubuntu 7.10 32bit. Rich
__________________
Symscape, Computational Fluid Dynamics for all |
|
![]() |
![]() |
![]() |
![]() |
#34 |
New Member
Allen Zhao
Join Date: Mar 2009
Location: Westmont, IL, USA
Posts: 26
Rep Power: 17 ![]() |
Hi, Rich,
Thank you so much for the pointers. You must be right about the renaming of src/OpenFOAM/OSspecific. Once I removed the directory completely, I bypassed the road block and started to have codes compiled. Thanks again. |
|
![]() |
![]() |
![]() |
![]() |
#35 |
Member
Jason Dale
Join Date: Mar 2009
Location: UK
Posts: 80
Rep Power: 17 ![]() |
Hi Rich,
Yes I also tried those too but maybe I made a mistake and got lost along the way. Is it the rpm's I need to download? I tried to install those but then my machine complained that the dependencies were not available or something. Could you list the exact files that I need to download and then what do I do after that? Install them and then just type ./Allmake? Will try it again tomorrow, maybe it was the updates that I needed that stopped that one working... Thanks Jason |
|
![]() |
![]() |
![]() |
![]() |
#36 |
Senior Member
Richard Smith
Join Date: Mar 2009
Location: Enfield, NH, USA
Posts: 138
Blog Entries: 4
Rep Power: 17 ![]() |
Hi Jason,
I'll have to defer you to Bernhard or Takuya for details on the pre-compiled MinGW compiler. Once you think the MinGW compiler is ready for action I'd suggest you compile a simple program such as: #include <iostream> int main(int argc, char* argv) { std::cout << "Hello World, I'm alive!" << std::endl return 0; } Transfer the compiled binary to your windows environment and make sure it works. Then it should be as easy as: cd <openfoam-home>; ./Allwmake Rich
__________________
Symscape, Computational Fluid Dynamics for all |
|
![]() |
![]() |
![]() |
![]() |
#37 |
Senior Member
Richard Smith
Join Date: Mar 2009
Location: Enfield, NH, USA
Posts: 138
Blog Entries: 4
Rep Power: 17 ![]() |
Anyone spot the mistakes?
argv should be argv[] std::endl should be std::endl; Hope that's it.
__________________
Symscape, Computational Fluid Dynamics for all |
|
![]() |
![]() |
![]() |
![]() |
#38 |
Super Moderator
Takuya OSHIMA
Join Date: Mar 2009
Location: Niigata City, Japan
Posts: 518
Blog Entries: 1
Rep Power: 20 ![]() |
Hi Jason, Richard,
The mingw-cross packages I used were binutils, gcc-core, gcc-g++, gcc-gfortran, runtime, w32api, but I don't know if all of them were indeed required. If it helps I did all under Ubuntu 7.10 on VMware. You have to adjust compiler executable names mingw32-gcc, mingw32-g++, mingw32-ld in OpenFOAM-1.4.1/wmake/rules/linuxmingw32/{c,c++,general} and OpenFOAM-1.4.1/.OpenFOAM-1.4.1/bashrc-ming32 to i386-mingw32-gcc, i386-mingw32-g++, i386-ming32-ld. Takuya |
|
![]() |
![]() |
![]() |
![]() |
#39 |
Member
Jason Dale
Join Date: Mar 2009
Location: UK
Posts: 80
Rep Power: 17 ![]() |
Thanks Takuya,
I'm getting closer! If I download the rpms and try to install with the software installer I get the error here: Dependency Resolution Failed Unresolved dependencies: Installing mingw-binutils-2.18.50-4.fc8.i386[Local packages] There are no installable providers of rtld(GNU_HASH) for mingw-binutils-2.18.50-4.fc8.i386[Local packages] If I log out and log in as root and extract the rpms to the correct locations, then, log out again , the executables i386-mingw32-xxx can be found by the system. If I compile this #include <iostream> using namespace std; int main () { cout << "Hello World!"; return 0; } by typing for example >g++ helloworld.cpp I get an executable a.out it it runs fine. All good so far.. When I type >i386-mingw32-g++ helloworld.cpp I get the following error i386-mingw32-g++: error trying to exec 'cc1plus': execvp: No such file or directory (I also get this when trying with OF) I also had to download the mingw-gcc-objc rpm to make sure that this file cc1plus is there. Is this because I didn't install the mingw correctly, just extracted the files? Any idea what I can do? Regards Jason |
|
![]() |
![]() |
![]() |
![]() |
#40 |
New Member
Allen Zhao
Join Date: Mar 2009
Location: Westmont, IL, USA
Posts: 26
Rep Power: 17 ![]() |
Jason,
I think your problem is due to the fact that those rpm are built on Fedora Core 8 box (FC8). Although the glibc version should be very close to OpenSUSE 10.3, but who knows? Just my 2 cents. Regards, Allen |
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
OpenFOAM 15x MinGW Windows Port | gocarts | OpenFOAM Installation | 1 | April 17, 2009 10:41 |
divide by zero FPE issue in OpenFOAM 141 MingW port | allenzhao | OpenFOAM Installation | 9 | September 22, 2008 17:13 |
OpenFOAM on SuSE Linux 100 | musahossein | OpenFOAM Installation | 4 | June 20, 2008 16:47 |
OpenFoam and Linux | Tomislav Maric | Main CFD Forum | 13 | October 25, 2007 04:45 |
OpenFOAM and linux distros | billy | OpenFOAM | 8 | September 8, 2005 01:43 |