[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