[CMake] Porting cmake to OS/390

Magnus Sirwiö sirwio at hotmail.com
Tue Dec 19 05:57:48 EST 2006


Hi,

I have now after a few, well to be honest many, trials found out the cause 
of my initial errors. The flex generated files are generated on ASCII 
platforms. The generated files will not work out of the box on a platform 
whos using a character set as EBCDIC!

First I tried regenerating the lex files using the available flex 2.5.4a on 
our mainframe. Did not work. CMake is using a later flex wich is not 
available on mainframes...
Second I tried porting a flex version that would produces correct output but 
did not quite succeed.
After banging my head at least ten times on the wall and reading numerous 
mail group posts I found the idea that one could manually alter the flex 
generated lookup tables to suit the ebcdic platform.

This actually worked and I'm now looking for input on the next obstacle. 
When cmake itself is bootstrapping I get the following output.

IBMUSER:/code/cmake/cmake-2.4.3: > Bootstrap.cmk/cmake . 
-C"Bootstrap.cmk/InitialCacheFlags.cmake" -G"Unix Makefiles"

loading initial cache file Bootstrap.cmk/InitialCacheFlags.cmake
System is unknown to cmake, create:
/code/cmake/cmake-2.4.3/Modules/Platform/OS/390.cmake to use this system, 
please send your config file to cmake at www.cmake.org so it can be added to 
cmake
You CMakeCache.txt file was copied to CopyOfCMakeCache.txt. Please send that 
file to cmake at www.cmake.org.
-- Check for working CXX compiler: /bin/c++
System is unknown to cmake, create:
/code/cmake/cmake-2.4.3/Modules/Platform/OS/390.cmake to use this system, 
please send your config file to cmake at www.cmake.org so it can be added to 
cmake
-- Check for working CXX compiler: /bin/c++ -- broken
CMake Error: Error in cmake code at
/code/cmake/cmake-2.4.3/Modules/CMakeTestCXXCompiler.cmake:25:
MESSAGE The C++ compiler "/bin/c++" is not able to compile a simple test 
program.
It fails with the following output:
/bin/gmake -f CMakeFiles/cmTryCompileExec.dir/build.make 
CMakeFiles/cmTryCompileExec.dir/build
gmake[1]: Entering directory `/code/cmake/cmake-2.4.3/CMakeFiles/CMakeTmp'
/code/cmake/cmake-2.4.3/Bootstrap.cmk/cmake -E cmake_progress_report 
/code/cmake/cmake-2.4.3/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec.dir/testCXXCompiler.o
/bin/c++   -D_XOPEN_SOURCE -D_ALL_SOURCE -DOS_390      -o 
CMakeFiles/cmTryCompileExec.dir/testCXXCompiler.o -c 
/code/cmake/cmake-2.4.3/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
Linking CXX executable cmTryCompileExec
/code/cmake/cmake-2.4.3/Bootstrap.cmk/cmake -P 
CMakeFiles/cmTryCompileExec.dir/cmake_clean_target.cmake
/bin/c++    -D_XOPEN_SOURCE -D_ALL_SOURCE -DOS_390      
"CMakeFiles/cmTryCompileExec.dir/testCXXCompiler.o"   -o cmTryCompileExec
FSUM3010 Specify a file with the correct suffix (.cxx, .hh, .i, .c, .i, .s, 
.o, .x, .p, .I, or .a), or a corresponding data set name, instead of -o.
gmake[1]: Leaving directory `/code/cmake/cmake-2.4.3/CMakeFiles/CMakeTmp'
gmake[1]: *** [cmTryCompileExec] Error 1
gmake: *** [cmTryCompileExec/fast] Error 2


CMake will not be able to correctly generate this project.
Current CMake stack: 
/code/cmake/cmake-2.4.3/CMakeLists.txt;/code/cmake/cmake-2.4.3/Modules/CMakeCInformation.cmake;/code/cmake/cmake-2.4.3/Modules/CMakeCXXInformation.cmake;/code/cmake/cmake-2.4.3/Modules/CMakeTestCXXCompiler.cmake
-- Configuring done

I suspect that the failure to compile has to do with the order of arguments 
given to the compiler. I had to modify the bootstrap sligthly and put the -o 
outfile before any source to get things to work.
Eg.
c++ -o hello hello.c     OK
c++ hello.c -o hello     NOT OK

There also seem to be a problem with the output of uname -s since the result 
contains a /
What is a good workaround for this?

As always - Suggestions and hints are welcome especially on a way to declare 
the order of parameters to the c++ compiler.

Once I got this running I will of course post a detail description on howto 
to get cmake to run on OS/390!!!

- Magnus


>From: "Magnus Sirwiö" <sirwio at hotmail.com>
>To: cmake at cmake.org
>Subject: [CMake] Porting cmake to OS/390
>Date: Thu, 07 Dec 2006 07:18:19 +0000
>MIME-Version: 1.0
>X-Originating-IP: [194.23.69.245]
>X-Originating-Email: [sirwio at hotmail.com]
>X-Sender: sirwio at hotmail.com
>Received: from public.kitware.com ([66.194.253.19]) by 
>bay0-mc11-f3.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.2444); Wed, 6 
>Dec 2006 23:18:33 -0800
>Received: from public.kitware.com (localhost [127.0.0.1])by 
>public.kitware.com (Postfix) with ESMTP id A4585134365for 
><sirwio at hotmail.com>; Thu,  7 Dec 2006 02:18:32 -0500 (EST)
>Received: from bay0-omc3-s15.bay0.hotmail.com 
>(bay0-omc3-s15.bay0.hotmail.com[65.54.246.215])by public.kitware.com 
>(Postfix) with ESMTP id 907E31338D6for <cmake at cmake.org>; Thu,  7 Dec 2006 
>02:18:23 -0500 (EST)
>Received: from hotmail.com ([64.4.18.67]) by 
>bay0-omc3-s15.bay0.hotmail.comwith Microsoft SMTPSVC(6.0.3790.2668); Wed, 6 
>Dec 2006 23:18:22 -0800
>Received: from mail pickup service by hotmail.com with Microsoft 
>SMTPSVC;Wed, 6 Dec 2006 23:18:22 -0800
>Received: from 69.45.64.100 by by24fd.bay24.hotmail.msn.com with HTTP;Thu, 
>07 Dec 2006 07:18:19 GMT
>X-Message-Info: LsUYwwHHNt3660MmjhEvYg2f34OAemlKagRhjiGbCrU=
>X-Original-To: cmake at cmake.org
>Delivered-To: cmake at cmake.org
>X-OriginalArrivalTime: 07 Dec 2006 07:18:22.0436 
>(UTC)FILETIME=[E0D57A40:01C719CF]
>X-BeenThere: cmake at cmake.org
>X-Mailman-Version: 2.1.4
>Precedence: list
>List-Id: Cross-Platform Make <cmake.cmake.org>
>List-Unsubscribe: 
><http://www.cmake.org/mailman/listinfo/cmake>,<mailto:cmake-request at cmake.org?subject=unsubscribe>
>List-Archive: <http://public.kitware.com/pipermail/cmake>
>List-Post: <mailto:cmake at cmake.org>
>List-Help: <mailto:cmake-request at cmake.org?subject=help>
>List-Subscribe: 
><http://www.cmake.org/mailman/listinfo/cmake>,<mailto:cmake-request at cmake.org?subject=subscribe>
>Errors-To: cmake-bounces+sirwio=hotmail.com at cmake.org
>Return-Path: cmake-bounces+sirwio=hotmail.com at cmake.org
>
>Hi,
>
>I'm trying to bootstrap cmake on a OS/390 mainframe. I have succeeded so 
>far that the cmake executable is created in the Bootstrap.cmk folder but 
>the actual bootstrapping of cmake itself fails.
>
>Attached are two logfiles. The first is from the bootstap and the other is 
>from the bootstrapping of cmake that fails.
>
>Any hints are welcome!
>
>- Magnus
>
>---- ./bootstrap output
>CMake 2.4-3, Copyright (c) 2006 Kitware, Inc., Insight Consortium
>C compiler on this system is: c89 -D_XOPEN_SOURCE -D_ALL_SOURCE
>C++ compiler on this system is: c++ -D_XOPEN_SOURCE -D_ALL_SOURCE
>Makefile processor on this system is: gmake
>c++ is not GNU compiler
>c++ has STL in std:: namespace
>c++ has ANSI streams
>c++ has streams in std:: namespace
>c++ has sstream
>c++ has operator!=(string, char*)
>c++ has stl iterator_traits
>c++ has standard template allocator
>c++ has allocator<>::rebind<>
>c++ does not have non-standard allocator<>::max_size argument
>c++ has stl containers supporting allocator objects
>c++ has header cstddef
>c++ requires template friends to use <>
>c++ supports member templates
>c++ has standard template specialization syntax
>c++ has argument dependent lookup
>c++ does not have struct stat with st_mtim member
>c++ has ANSI for scoping
>---------------------------------------------
>gmake: `cmake' is up to date.
>-- Configuring done
>---------------------------------------------
>Error when bootstrapping CMake:
>Problem while running initial CMake
>---------------------------------------------
>
>
>
>-----  Bootstrapping cmake output
>IBMUSER:/code/cmake/cmake-2.4.3: > Bootstrap.cmk/cmake . 
>-C"Bootstrap.cmk/InitialCacheFlags.cmake" -G"Unix Makefiles"
>loading initial cache file Bootstrap.cmk/InitialCacheFlags.cmake
>CMake Error: Error in cmake code at
>/code/cmake/cmake-2.4.3/Bootstrap.cmk/InitialCacheFlags.cmake:1:
>Parse error.  Expected a command name, got unquoted argument with text "# 
>Generated by /code/cmake/cmake-2.4.3/bootstrap
># Default cmake settings.  These may be overridden any settings below.
>SET (CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Install path prefix, 
>prepended onto install directories." FORCE)
>SET (CMAKE_DOC_DIR "/doc/CMake" CACHE PATH "Install location for 
>documentation (relative to prefix)." FORCE)
>SET (CMAKE_MAN_DIR "/man" CACHE PATH "Install location for man pages 
>(relative to prefix)." FORCE)
>SET (CMAKE_DATA_DIR "/share/CMake" CACHE PATH "Install location for data 
>(relative to prefix)." FORCE)
>".
>CMake Error: Error in cmake code at
>/code/cmake/cmake-2.4.3/CMakeLists.txt:1:
>Parse error.  Expected a command name, got unquoted argument with text 
>"PROJECT(CMake)
>CMAKE_MINIMUM_REQUIRED(VERSION 2.0)
>MARK_AS_ADVANCED(CMAKE_BACKWARDS_COMPATIBILITY)
>
># The CMake version number.
>SET(CMake_VERSION_MAJOR 2)
>SET(CMake_VERSION_MINOR 4)
>SET(CMake_VERSION_PATCH 3)
>SET(CMake_VERSION "${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
>SET(CMake_VERSION_FULL "${CMake_VERSION}.${CMake_VERSION_PATCH}")
>...
>...
>
>_________________________________________________________________
>Don't just search. Find. Check out the new MSN Search! 
>http://search.msn.com/
>
>_______________________________________________
>CMake mailing list
>CMake at cmake.org
>http://www.cmake.org/mailman/listinfo/cmake

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/



More information about the CMake mailing list