[CMake] CMake on OpenVMS - Bootstrap CMake complaining that “pid_t doesn’t exist on this platform?”

Custin, Jay (CSC Sw Middleware) jay.custin at hpe.com
Sun Nov 1 16:19:43 EST 2015


Still kicking myself… “normally” I would “delete” files that I had modified by first renaming them to “hide” them and only then actually delete them… Well sure enough the one time I feel confident apparently I whacked something I shouldn’t have (guessing)…

Regardless of which the CMake execution at the tail end of the bootstrap now complains about pid_t not existing… as you can see in the following excerpt from manually executing the command with the –trace option:

/PRJ_ROOT/CMAKE-3_3_2/Modules/CheckTypeSize.cmake(246):  set(PID_T_KEYS )
/PRJ_ROOT/CMAKE-3_3_2/Modules/CheckTypeSize.cmake(247):  set(_map_file ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/CheckTypeSize/PID_T.cmake )
/PRJ_ROOT/CMAKE-3_3_2/Modules/CheckTypeSize.cmake(248):  if(NOT DEFINED HAVE_PID_T )
/PRJ_ROOT/CMAKE-3_3_2/Modules/CheckTypeSize.cmake(251):  include(${_map_file} OPTIONAL )
/PRJ_ROOT/CMAKE-3_3_2/Modules/CheckTypeSize.cmake(252):  set(_map_file )
/PRJ_ROOT/CMAKE-3_3_2/Modules/CheckTypeSize.cmake(253):  set(_builtin )
/PRJ_ROOT/CMAKE-3_3_2/Modules/CheckTypeSize.cmake(256):  if(PID_T_KEYS )
/PRJ_ROOT/CMAKE-3_3_2/Modules/CheckTypeSize.cmake(265):  elseif(PID_T )
/PRJ_ROOT/CMAKE-3_3_2/Modules/CheckTypeSize.cmake(267):  else()
/PRJ_ROOT/CMAKE-3_3_2/Modules/CheckTypeSize.cmake(268):  set(PID_T_CODE /* #undef PID_T */ )
/PRJ_ROOT/CMAKE-3_3_2/Utilities/cmlibarchive/CMakeLists.txt(1128):  IF(NOT HAVE_PID_T )
/PRJ_ROOT/CMAKE-3_3_2/Utilities/cmlibarchive/CMakeLists.txt(1129):  IF(WIN32 )
/PRJ_ROOT/CMAKE-3_3_2/Utilities/cmlibarchive/CMakeLists.txt(1131):  ELSE(WIN32 )
/PRJ_ROOT/CMAKE-3_3_2/Utilities/cmlibarchive/CMakeLists.txt(1132):  MESSAGE(FATAL_ERROR pid_t doesn't exist on this platform? )
CMake Error at Utilities/cmlibarchive/CMakeLists.txt:1132 (MESSAGE):
  pid_t doesn't exist on this platform?

I > thought < about simply tweaking the code to override the apparent “missing” definition, but then decided that clearly something else prevents CMake from finding it and so thought I would pose the question here to see if anyone has any ideas.

The problem with this comes from knowing for certain that pid_t DOES exist in the default HP C header:

ITAN1> sea/num unistd.h "ifndef __PID_T"/win=(0,3)
   353  #   ifndef __PID_T
   354  #      define __PID_T 1
   355         typedef __pid_t pid_t;
   356  #   endif

And
ITAN1> sea unistd.h/num "types.h"
    31  #include <decc$types.h>
ITAN1> sea types.h /num/win=(0,3) "#if !defined __PID_T"
   104  #if !defined __PID_T  && !defined _DECC_V4_SOURCE
   105  #   define __PID_T 1
   106      typedef __pid_t pid_t;
   107  #endif


The error occurs in this section of Utilities/cmlibarchive/CMakeLists.txt:

Line#
1127  CHECK_TYPE_SIZE(pid_t       PID_T)
1128  IF(NOT HAVE_PID_T)
1129    IF(WIN32)
1130      SET(pid_t "int")
1131    ELSE(WIN32)
1132      MESSAGE(FATAL_ERROR "pid_t doesn't exist on this platform?")
1133    ENDIF(WIN32)
1134  ENDIF(NOT HAVE_PID_T)


Anyone have any ideas?

JayC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20151101/48cb6601/attachment.html>


More information about the CMake mailing list