Jens Mueller wrote: > Gour wrote: > > On Tue, 22 Feb 2011 09:42:46 +0100 > > Gour <[email protected]> wrote: > > > > > I installed CMakeD from the archlinux package, then pulled from the > > > repo and tried tests suite. Here is the result: > > > > Oops...forgot to run 'make test': > > > > [gour@atmarama build] make test > > Running tests... > > Test project /home/gour/repos/cmaked2/tests/build > > Start 1: app_1 > > 1/9 Test #1: app_1 ............................ Passed 0.00 sec > > Start 2: app_2 > > 2/9 Test #2: app_2 ............................ Passed 0.00 sec > > Start 3: app_3 > > 3/9 Test #3: app_3 ............................ Passed 0.00 sec > > Start 4: app_5 > > 4/9 Test #4: app_5 ............................ Passed 0.00 sec > > Start 5: app_4 > > 5/9 Test #5: app_4 ............................ Passed 0.00 sec > > Start 6: app_6 > > 6/9 Test #6: app_6 ............................ Passed 0.00 sec > > Start 7: app_7 > > 7/9 Test #7: app_7 ............................ Passed 0.00 sec > > Start 8: moduleB.d > > 8/9 Test #8: moduleB.d ........................ Passed 0.05 sec > > Start 9: moduleA.d > > 9/9 Test #9: moduleA.d ........................ Passed 0.05 sec > > > > 100% tests passed, 0 tests failed out of 9 > > > > Total Test time (real) = 0.28 sec > > > > > > So, everything is fine on x86_64 (however, still using 32bit dmd2 > > waiting for new package). > > If you want a 64-bit build. Change in tests/CMakeLists.txt the lines > SET( GLOBAL_DMD_DEFS "-w -wi" ) > SET( GLOBAL_GCC_DEFS "-Wall -pedantic -m32" ) > to > SET( GLOBAL_DMD_DEFS "-w -wi -m64" ) > SET( GLOBAL_GCC_DEFS "-Wall -pedantic -m64" ) > > I just did this. > $ file app_1/app_1 > app_1/app_1: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically > linked (uses shared libs), for GNU/Linux 2.6.18, not > stripped > > But something is wrong with app7 on amd64. > > $ make test > Running tests... > Test project /home/jkm/local/build/cmaked2/tests/build > Start 1: app_1 > 1/9 Test #1: app_1 ............................ Passed 0.00 sec > Start 2: app_2 > 2/9 Test #2: app_2 ............................ Passed 0.00 sec > Start 3: app_3 > 3/9 Test #3: app_3 ............................ Passed 0.00 sec > Start 4: app_5 > 4/9 Test #4: app_5 ............................ Passed 0.00 sec > Start 5: app_4 > 5/9 Test #5: app_4 ............................ Passed 0.00 sec > Start 6: app_6 > 6/9 Test #6: app_6 ............................ Passed 0.00 sec > Start 7: app_7 > 7/9 Test #7: app_7 ............................***Exception: SegFault 0.01 > sec > Start 8: moduleA.d > 8/9 Test #8: moduleA.d ........................ Passed 0.15 sec > Start 9: moduleB.d > 9/9 Test #9: moduleB.d ........................ Passed 0.11 sec > > 89% tests passed, 1 tests failed out of 9 > > Total Test time (real) = 0.30 sec > > The following tests FAILED: > 7 - app_7 (SEGFAULT) > Errors while running CTest > make: *** [test] Error 8 > > Somebody used CMakeD successfully with gdc and even there app_7 > segfaulted. So it appears to be a problem in app_7. If you comment out > the timing code it works. I will look later into this.
I changed the timing code within app7 to use StopWatch. It now works. But there are some hacks in CMakeD's test examples. In lib_2/CMakeLists.txt app_5/CMakeLists.txt the -m32 was pretty hard coded. For building 64 bit it should be now sufficient to set SET( GLOBAL_DMD_DEFS "-w -wi -m64" ) SET( GLOBAL_GCC_DEFS "-Wall -pedantic -m64" ) For 32 Bit SET( GLOBAL_DMD_DEFS "-w -wi" ) SET( GLOBAL_GCC_DEFS "-Wall -pedantic" ) the way it is set right now should work. But remember that you need to specify -m32 if you want to use the C linker. Because at least with gcc on x86-64 it defaults to link 64-bit code. That's why the -m32 is optional for dmd since this seems to be the default. But as said earlier this will very likely change once 64-bit is stable. I pushed the changes to google code. Have a try. Jens
