[CMake] CMake hangs on new install

Phil Smith phil at voltage.com
Tue Nov 2 10:05:57 EDT 2010


Is anyone else successfully using a toolchain file for an in-source build with 2.8.2 or later? We can't be the only ones?! I've reduced this to a relatively minimal case, but it doesn't fail on the first TryCompile, so I can't just stuff in a dummy "compiler".

With the toolchain file below (repeated for readability, but same as that shown WAY below) and a minimal CMakeLists.txt:
------------
cmake_minimum_required (VERSION 2.6)
project(TEMP C)
------------
...it still hangs with 2.8.3-rc4.

Here's the CMake command:
cmake -DCMAKE_TOOLCHAIN_FILE:string="./zosport.cmake" -G"Unix Makefiles" ./

and zosport.cmake:
------------
# This is a CMake Toolchain file, required for cross-compiling using
# the Dignus cross-compilers on Windows, compiling for z/OS.
# Tell CMAKE the target system name
SET(CMAKE_SYSTEM_NAME "IBM_ZOS")
# Specify the cross-compilers
SET(CMAKE_C_COMPILER   "regina.exe" "cc.rex dcc.exe")
SET(CMAKE_CXX_COMPILER "regina.exe" "cc.rex dcxx.exe")
SET(CMAKE_C_CREATE_STATIC_LIBRARY "DAR -rv <TARGET> <OBJECTS>")
SET(CMAKE_CXX_LINK_EXECUTABLE "plink.exe \"-S$ENV{DIGNUS_PROGRAM}/objs_norent/&M\" <OBJECTS> -o <TARGET>")
SET(CMAKE_C_LINK_EXECUTABLE   "plink.exe \"-S$ENV{DIGNUS_PROGRAM}/objs_norent/&M\" <OBJECTS> -o <TARGET>")
------------

Note that the reason for cc.rex as the "compiler" is that our cross-compiler is an old-school two-stage compiler (C to assembler, assembler to object). So cc.rex combines both stages into one. This is how we're able to see the missing output file (and double space) after the -o option. We've been using this cc.rex for 2.5 years; I'm pretty confident it isn't the problem.

Anyone? Bueller???

...phsiii
-----Original Message-----
From: cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] On Behalf Of Phil Smith
Sent: Wednesday, October 27, 2010 6:12 PM
To: cmake at cmake.org
Cc: Janet Graff
Subject: Re: [CMake] CMake hangs on new install

RESOLVED: We realized that the bad machine was CMake 2.8.2, and mine (good) was 2.8.0. So I saved a copy of my 2.8.0 install and installed 2.8.2 over it. I then had the hang symptom!

I swapped the directories back, and it worked again.

We found a saved copy of the 2.8.1 installer, installed that on the "bad" machine, and now it works. So this is something between 2.8.1 (which we have on a machine that works) and 2.8.2.

This is a nasty bug -- we spent several man-days off and on tinkering with it. I know nothing of CMake internals, but am happy to work with anyone interested to figure it out.

...phsiii

-----Original Message-----
From: cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] On Behalf Of Phil Smith
Sent: Wednesday, October 27, 2010 4:58 PM
To: william.crocker at analog.com; cmake at cmake.org
Cc: Janet Graff
Subject: Re: [CMake] CMake hangs on new install

It's not *a program*, it's the compiler. Which is being invoked wrong BY CMAKE -- "dash o blank blank inputfilespec" instead of "dash o blank outputfilespec inputfilespec". So what's a debugger going to tell me? I already know.

-----Original Message-----
From: cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] On Behalf Of william.crocker at analog.com
Sent: Wednesday, October 27, 2010 4:56 PM
To: cmake at cmake.org
Subject: Re: [CMake] CMake hangs on new install

If you have an instance of a program which has hung,
I would attach to it with a debugger and see where it
is, what it is doing (or not doing in this case)
and what it is waiting for.

Bill

Phil Smith wrote:
> So....no ideas nowhere nohow?
> 
>  
> 
> We have:
> 
> -          Reinstalled CMake
> 
>  
> 
> -          Reinstalled Cygwin
> 
>  
> 
> -          Tried a tiny, two-line CMakeLists.txt in an empty directory:
> 
> *cmake_minimum_required (VERSION 2.6)*
> 
> *project(TEMP C)
> 
> *
> 
> The command line to CMake (in a .bat file) is:
> 
> *cmake -DCMAKE_TOOLCHAIN_FILE:string="%~dp0\zosport.cmake" -G"Unix 
> Makefiles" .\*
> 
> * *
> 
> This works (well, works on the "good" machines, fails in the same way on 
> the bad) from the command line in that otherwise empty directory, 
> provided the %~dp0 is replaced with the appropriate path.
> 
>  
> 
> -          Tried CMake on the same machine, with a Windows build (the 
> failing case is for cross-compiling - I should have noted that before); 
> it worked.
> 
>  
> 
> So on this one machine, CMake isn't totally busted, but DOES NOT like 
> cross-compiling. The contents of zosport.cmake are:
> 
>  
> 
> *# This is a CMake Toolchain file, required for cross-compiling using*
> 
> *# the Dignus cross-compilers on Windows, compiling for z/OS.*
> 
> * *
> 
> *# Tell CMAKE the target system name*
> 
> *SET(CMAKE_SYSTEM_NAME "IBM_ZOS")*
> 
> * *
> 
> *# Specify the cross-compilers*
> 
> *SET(CMAKE_C_COMPILER   "regina.exe" "cc.rex dcc.exe")*
> 
> *SET(CMAKE_CXX_COMPILER "regina.exe" "cc.rex dcxx.exe")*
> 
> * *
> 
> *SET(CMAKE_C_CREATE_STATIC_LIBRARY "DAR -rv <TARGET> <OBJECTS>")*
> 
> * *
> 
> *SET(CMAKE_CXX_LINK_EXECUTABLE "plink.exe 
> \"-S$ENV{DIGNUS_PROGRAM}/objs_norent/&M\" <OBJECTS> -o <TARGET>")*
> 
> *SET(CMAKE_C_LINK_EXECUTABLE   "plink.exe 
> \"-S$ENV{DIGNUS_PROGRAM}/objs_norent/&M\" <OBJECTS> -o <TARGET>")*
> 
>  
> 
> The IBM_ZOS.cmake in the Platform\ directory contains:
> 
>  
> 
> *INCLUDE(Platform/UnixPaths)*
> 
>  
> 
> And that's about all I can see that's specific to the cross-compiling. 
> Since the problem occurs in the parameters it uses to call the compiler, 
> it doesn't seem to be the compiler that's at fault.
> 
>  
> 
> *From:* cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] *On 
> Behalf Of *Phil Smith
> *Sent:* Tuesday, October 26, 2010 8:12 PM
> *To:* cmake at cmake.org
> *Subject:* [CMake] CMake hangs on new install
> 
>  
> 
> This is driving me nuts, and it's almost certainly something dumb. One 
> of my CMake users lost a hard drive and had to reimage.
> 
>  
> 
> Now she's installed CMake 2.8 and it LOOKS like it's all OK, but any 
> attempt to do a CMake hangs because the attempt to compile 
> CMakeCCompilerId.c winds up passing a bunch of flags and then "-o  
> CMakeCCompilerId.c" - that is, the -o flag, TWO spaces, and then 
> CMakeCCompilerId.c. So there's no output file specification; the input 
> filespec becomes the output, and the compiler dutifully waits for input 
> from stdin.
> 
>  
> 
> Now, I think I've seen this before, but I'm damned if I can remember 
> what causes it. As far as I can tell, the compiler call is generated 
> within cmake.exe, which kinda makes it hard to debug.
> 
>  
> 
> Any ideas? Thanks in advance...
> 
> -- 
> 
> ...phsiii
> 
>  
> 
> Phil Smith III
> 
> phil at voltage.com <mailto:phil at voltage.com>
> 
> Voltage Security, Inc.
> 
> www.voltage.com <http://www.voltage.com>
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


More information about the CMake mailing list