Na, egynapos szenvedés árán rájöttem, hogy ezt a parancsot kellene kivizsgálni, miért esik végetlen ciklusba:
/usr/local/src/cmake-3.0.1/Bootstrap.cmk/cmake \
/usr/local/src/cmake-3.0.1 \
-C/usr/local/src/cmake-3.0.1/Bootstrap.cmk\
/InitialCacheFlags.cmake\
-G"Unix Makefiles"\
-DCMAKE_BOOTSTRAP=1\
-DCMAKE_VERBOSE_MAKEFILE=1\
-DCMAKE_USE_SYSTEM_LIBRARY_CURL=1\
-DCMAKE_USE_SYSTEM_LIBRARY_EXPAT=1\
-DCMAKE_USE_SYSTEM_LIBRARY_ZLIB=1\
-DCMAKE_USE_SYSTEM_LIBRARY_BZIP2=1
(a gond az volt, hogy a logban úgy látszott, hogy -GUnix Makefile van a parancsban, tehát szétesett a parancs...
truss szerint ilyesmi a vége:
6422708: 24445123: kopen("/usr/local/src/cmake-3.0.1/CMakeFiles/CMakeTmp/CheckIncludeFile.cxx.tmp", O_RDONLY|O_LARGEFILE) = 3
6422708: 24445123: kioctl(3, 22528, 0x00000000, 0x00000000) Err#25 ENOTTY
6422708: 24445123: unlink("/usr/local/src/cmake-3.0.1/CMakeFiles/CMakeTmp/CheckIncludeFile.cxx") = 0
6422708: 24445123: kopen("/usr/local/src/cmake-3.0.1/CMakeFiles/CMakeTmp/CheckIncludeFile.cxx", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) = 4
6422708: 24445123: kioctl(4, 22528, 0x00000000, 0x00000000) Err#25 ENOTTY
6422708: 24445123: kread(3, " # i n c l u d e < i o".., 4096) = 48
6422708: 24445123: kread(3, " w a r n i n g , i f".., 4048) = 0
Vagyis mintha az end-of-file már egy túl bonyolult jelenség lenne, amit csak végtelen ciklussal lehet elviselhetővé tenni...
Ilyesmit ír a gdb utolsó erejével:
2137 while(fin)
2138 {
2139 fin.read(buffer, bufferSize);
2140 if(fin.gcount())
2141 {
2142 fout.write(buffer, fin.gcount());
2143 }
2144 }
Namostan ez tényleg lehet egy file-másolás, de vajon mi a gond?
Mondjuk egy kicsit korábban egy érdekes komment van:
// This copy loop is very sensitive on certain platforms with
// slightly broken stream libraries (like HPUX). Normally, it is
// incorrect to not check the error condition on the fin.read()
// before using the data, but the fin.gcount() will be zero if an
// error occurred. Therefore, the loop should be safe everywhere.
(Off: kb 25 éve mondogatom, hogy a C++ egyelőre kiforratlan, experimentális termék, komoly munkára ne használjuk, de figyel rám valaki?! Naná, hogy nem.)