[CMake] 3.1 can't link my MinGW executables any more.

Bill Somerville bill at classdesign.com
Mon Dec 1 12:20:33 EST 2014


On 01/12/2014 17:12, Bill Somerville wrote:
> On 01/12/2014 17:04, Bill Somerville wrote:
>> On 01/12/2014 16:33, Brad King wrote:
>>
>> Hi Brad,
>>> On 11/29/2014 06:58 AM, Bill Somerville wrote:
>>>> -lgfortran -lquadmath -lm -lkernel32 -luser32 -lgdi32 -lwinspool
>>>> -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
>>>>
>>>> but in 3.1.0-rc2 I get:
>>>>
>>>> -lquadmath -lm -lkernel32 -luser32 -lgdi32 -lwinspool
>>>> -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
>>> The missing -lgfortran may be due to a failure to detect the implicit
>>> libraries linked by the gfortran front-end.  Compare these files:
>>>
>>>   CMakeFiles/3.0.2/CMakeFortranCompiler.cmake
>>>   CMakeFiles/3.1.0-rc2/CMakeFortranCompiler.cmake
>>>
>>> In particular check the values of
>>>
>>>   CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES
>>>   CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES
Forgot to mention that this the case, here are the files:

https://dl.dropboxusercontent.com/u/4192709/CMakeFortranCompiler.cmake.3.0.2

https://dl.dropboxusercontent.com/u/4192709/CMakeFortranCompiler.cmake.3.1.0-rc2 

>>>
>>> recorded in the two files.  Check CMakeFiles/CMakeOutput.log and/or
>>> CMakeFiles/CMakeError.log for information about how the values were
>>> extracted.  Something here may have changed in 3.1.
>> An initial scan of the CMakeFiles/CMakeOutput.log for the same 
>> project between 3.0.2 and 3.1.0-rc2 shows huge differences and I 
>> can't see any obvious single cause of the issue. Here are the two 
>> files FWIW:
>>
>> https://dl.dropboxusercontent.com/u/4192709/CMakeOutput.log.3.0.2
>>
>> https://dl.dropboxusercontent.com/u/4192709/CMakeOutput.log.3.1.0-rc2
>>
>> One thing that looks suspicious are the lines mapping words to 
>> content along the lines of :
>>
>>     arg [-lmingw32] ==> lib [mingw32]
>>     arg [-lgcc] ==> lib [gcc]
>>     arg [-lgcc_eh] ==> lib [gcc_eh]
>>
>> which in 3.1 look like this:
>>
>>     arg [-lmingw32] ==> lib []
>>     arg [-lgcc] ==> lib []
>>     arg [-lgcc_eh] ==> lib []
>>
>> I'm not sure where they are generated.
> An extra data point, the configure phase appears to work but I've just 
> noticed this:
>
> -- Verifying Fortran/CXX Compiler Compatibility - Failed
>
> because the link test there fails for the same reason - missing 
> Fortran library. That one had slipped under the net since the 
> configure pass carried on running finders after that message.
>>>
>>> Thanks,
>>> -Brad
>>>
>> 73
>> Bill
>> G4WJS.
> Regards
> Bill Somerville.



More information about the CMake mailing list