[CMake] Problems moving my project to 2.6.0
Karl Wallner
list at weps.de
Sat May 10 14:45:06 EDT 2008
I currently moving a about 60000 LoC-Project from cmake-2.4.8 to cmake-2.6.0.
Cmake segfaults during make process when trying to build shared libraries:
make[2]: Entering directory
`/build/wepsDIS-0.9.2-BUILD.linux-g++-Debug-CMake26-uups'
cd /build/wepsDIS-0.9.2-BUILD.linux-g++-Debug-CMake26-uups &&
/opt/cmake26/bin/cmake -E cmake_depends "Unix Makefiles"
/project/dis/WORKSPACE/wepsDIS
/project/dis/WORKSPACE/wepsDIS/SDK/libDIS/debug_shared
/build/wepsDIS-0.9.2-BUILD.linux-g++-Debug-CMake26-uups
/build/wepsDIS-0.9.2-BUILD.linux-g++-Debug-CMake26-uups/SDK/libDIS/debug_shared
/build/wepsDIS-0.9.2-BUILD.linux-g++-Debug-CMake26-uups/SDK/libDIS/debug_shared/CMakeFiles/DISd.dir/DependInfo.cmake
--color=
make[2]: *** [SDK/libDIS/debug_shared/CMakeFiles/DISd.dir/depend] Fehler 139
make[2]: Leaving directory `/build/wepsDIS-0.9.2-BUILD.linux-g++-Debug-CMake26-uups'
make[1]: *** [SDK/libDIS/debug_shared/CMakeFiles/DISd.dir/all] Fehler 2
make[1]: Leaving directory `/build/wepsDIS-0.9.2-BUILD.linux-g++-Debug-CMake26-uups'
make: *** [all] Fehler 2
Backtrace shows:
Program received signal SIGSEGV, Segmentation fault.
0xb7deb344 in std::string::c_str () from /usr/lib/libstdc++.so.5
(gdb) bt
#0 0xb7deb344 in std::string::c_str () from /usr/lib/libstdc++.so.5
#1 0x082f7646 in cmLocalUnixMakefileGenerator3::CheckMultipleOutputs
(this=0x8484678, verbose=false) at
/opt/cmake26/BUILD/cmake-2.6.0/Source/cmLocalUnixMakefileGenerator3.cxx:1584
#2 0x082f5d13 in cmLocalUnixMakefileGenerator3::UpdateDependencies
(this=0x8484678, tgtInfo=0x845b9bc
"/build/wepsDIS-0.9.2-BUILD.linux-g++-Debug-CMake26-uups/SDK/libDIS/debug_shared/CMakeFiles/DISd.dir/DependInfo.cmake",
verbose=false,
color=true) at
/opt/cmake26/BUILD/cmake-2.6.0/Source/cmLocalUnixMakefileGenerator3.cxx:1328
#3 0x081ff794 in cmake::ExecuteCMakeCommand (args=@0xbff49c70) at
/opt/cmake26/BUILD/cmake-2.6.0/Source/cmake.cxx:1509
#4 0x0817d433 in do_cmake (ac=10, av=0xbff49f04) at
/opt/cmake26/BUILD/cmake-2.6.0/Source/cmakemain.cxx:451
#5 0x0817c5e0 in main (ac=10, av=0xbff49f04) at
/opt/cmake26/BUILD/cmake-2.6.0/Source/cmakemain.cxx:283
Looks the problem is in "cmLocalUnixMakefileGenerator3::CheckMultipleOutputs":
(gdb) f 1
#1 0x082f7646 in cmLocalUnixMakefileGenerator3::CheckMultipleOutputs
(this=0x8484678, verbose=false) at
/opt/cmake26/BUILD/cmake-2.6.0/Source/cmLocalUnixMakefileGenerator3.cxx:1584
1584 if(cmSystemTools::FileExists(dependee.c_str()) &&
(gdb) p dependee
$1 = (const string &) @0x848f894: {_M_dataplus = {<std::allocator<char>> = {<No
data fields>}, _M_p = 0xc <Address 0xc out of bounds>}}
(gdb) p pairs_string
$2 = 0x849c7ec
"/build/wepsDIS-0.9.2-BUILD.linux-g++-Debug-CMake26-uups/SDK/libDIS/debug_shared/libDISd.so;/build/wepsDIS-0.9.2-BUILD.linux-g++-Debug-CMake26-uups/SDK/libDIS/debug_shared/libDISd.so.;0.9.2\"\";/build/"...
I was wondering why the version/soversion of the shared library was still
quoted. So I decided to unquote soversion and version in
"cmTarget::GetLibraryNamesInternal" (See patch ... or ugly hack attached).
After that everything works fine.
-- Karl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cmake-2.6.0-unquote-soversion.patch
Type: text/x-patch
Size: 1862 bytes
Desc: not available
URL: <http://www.cmake.org/pipermail/cmake/attachments/20080510/48f5af62/attachment.bin>
More information about the CMake
mailing list