[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