[cmake-developers] Incomplete gfortran library link command sometimes mysteriously occurs with MinGW/MSYS on Wine-1.5.15 platform
Clinton Stimpson
clinton at elemtech.com
Thu Oct 25 15:37:17 EDT 2012
Alan,
I've been watching this somewhat. If this gets narrowed down enough to a
relatively simple example, I could try it out myself too.
I didn't see the example attached to this email thread, so maybe someone can
send me the example.
Clint
On Thursday, October 25, 2012 11:20:17 AM Alan W. Irwin wrote:
> Here are the results requested by Brad:
>
> bash.exe-3.1$ ls
> CMakeFortranCompilerId.F a.exe info.cmake
>
> bash.exe-3.1$ cat info.cmake
> file(STRINGS a.exe _strings LIMIT_COUNT 4 REGEX "INFO:")
> foreach(info ${_strings})
> message(STATUS "[${info}]")
> endforeach()
>
> bash.exe-3.1$ /z/home/wine/newstart/cmake-2.8.9-win32-x86/bin/cmake.exe -P
> info.cmake
>
> bash.exe-3.1$
> /z/home/wine/newstart/bootstrap_cmake/install_4.7.0/bin/cmake.exe -P
> info.cmake -- [INFO:compiler[GNU]INFO:platform[]]
>
> So these results show a clear difference between the two CMake
> versions on Wine-1.5.15; the file(STRINGS,...) command fails to work
> properly (delivers an empty _strings) while the bootstrapped version
> works properly.
>
> (Note, I am now using MinGW-4.7.0 rather than the MinGW-4.5.2 results
> I discussed before. Exhaustive CMake, PLplot, ephcom, and te_gen
> tests show that both versions of MinGW are reliable on Wine-1.5.15 so
> long as you use the bootstrapped version of CMake above, and I have
> decided to go with the 4.7.0 version from now on.)
>
> Just in case the problem was caused by the file hash issue that Clint
> Stimpson found a few years back for Wine, I also copied a.exe to b.exe, and
> ran the equivalent commands with appropriately modified info.cmake to look
> at b.exe, but the results were the same; nothing for downloaded
> CMake-2.8.9 while the bootstrapped version gave the expected result.
>
> Now that we have a clear fundamental difference between the two cmake
> versions can you simplify the test case a lot more? I am thinking along
> the lines of a simple C++ test programme (with one version compiled
> there and one version compiled here) that attempts to do the same
> thing as above.
>
> I also hope Clint Stimpson (who I put on the CC list) is willing to
> start participating in this conversation since he has some Wine
> expertise that he can bring to the table. Perhaps once you
> have simplified the example still further, he will be able
> to spot the area of Wine that could be the issue.
>
> Note also, that whatever the issue is, it does not occur for the
> command generated by CMake to link C libraries. So I would look
> carefully at how that link command is generated for C versus Fortran
> libraries to see if there are any gratuitous differences that could be
> eliminated.
>
> Finally, I very much appreciate the CMake developers' continued
> willingness to spend some effort on Wine platform concerns. I am very
> happy to cooperate in any way possible to get to the bottom of the
> current issue on that platform, because other than this one issue
> (which can be worked around by using the bootstrapped version of
> CMake) it is running very smoothly for me for a number of exhaustive
> tests. Nevertheless, if there are a number of additional tests you
> would like to run for the present case, then you might want to
> consider running them on your own Wine platform rather than attempting
> to debug the problem slowly at one remove through me.
>
> If you want to pursue that option further, here are the two absolutely
> straightforward steps you have to do to set up a Wine platform
> on Linux.
>
> (1) You need to build Wine-1.5.15 under Linux making sure you have
> ncurses support included in the configuration step. See
> http://www.winehq.org/download/ and
> http://wiki.winehq.org/Recommended_Packages for clear instructions
> which I followed myself for my Debian wheezy platform. Alternatively,
> that first page may give you access to binary versions of Wine-1.5.15
> that you could install for your particular Linux distribution.
>
> (2) Download and install MinGW-4.7.0 and the corresponding latest MSYS
> on Wine using
>
> wineconsole mingw-get-inst-20120426.exe
>
> Make sure you check the box that says update to the latest
> versions (which gets you MinGW-4.7.0), and check the box for
> the full MSYS tools as well (which includes bash).
>
> That second step literally only takes 5 minutes. After that you run
> all commands under bash.exe on the Wine platform using, e.g.,
>
> wineconsole --backend=curses MinGW_4.7.0/msys/1.0/bin/bash.exe
>
> The big advantage of that curses backend for wineconsole is you can
> cut and paste to it from Linux and vice versa. To save a lot of
> typing and to always have reproducible results under the bash.exe
> environment, I typically source a file (using the bash . operator) to
> set up all the environment variables I need, then use bash(.exe) to
> execute a shell script which runs the build and install of any
> software that I need. For an example of this approach see the
> files I sent to David for the test case that we are still using
> for comparisons.
>
> Alan
> __________________________
> Alan W. Irwin
>
> Astronomical research affiliation with Department of Physics and Astronomy,
> University of Victoria (astrowww.phys.uvic.ca).
>
> Programming affiliations with the FreeEOS equation-of-state
> implementation for stellar interiors (freeeos.sf.net); the Time
> Ephemerides project (timeephem.sf.net); PLplot scientific plotting
> software package (plplot.sf.net); the libLASi project
> (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
> and the Linux Brochure Project (lbproject.sf.net).
> __________________________
>
> Linux-powered Science
> __________________________
--
Clinton Stimpson
Elemental Technologies, Inc
Computational Simulation Software, LLC
www.csimsoft.com
More information about the cmake-developers
mailing list