MantisBT - CMake |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0013314 | CMake | CMake | public | 2012-06-18 16:02 | 2013-01-09 10:56 |
|
Reporter | Daniel Richard G. | |
Assigned To | Brad King | |
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | |
Platform | Itanium | OS | HP-UX | OS Version | 11.23 |
Product Version | CMake 2.8.8 | |
Target Version | CMake 2.8.9 | Fixed in Version | CMake 2.8.9 | |
|
Summary | 0013314: Fixes for various dashboard test failures |
Description | This omnibus bug report addresses a handful of test failures that appear to have a straightforward solution. (Note: I have not been able to test these changes, as the normal CTest dashboard build reverts the Git repository it works from; is there a way to do this?)
A patch against git master is attached.
Failed test: Assembler
http://open.cdash.org/testDetails.php?test=149633033&build=2372627 [^]
http://open.cdash.org/testDetails.php?test=149289472&build=2361814 [^]
Test fails because a .s assembly file is compiled without CFLAGS, and then linked with CFLAGS. The CFLAGS for this dashboard build select 64-bit output, but the compiler/linker do 32-bit by default. The linker barfs when told to link a 32-bit object against a 64-bit C library.
Solution: Set COMPILE_FLAGS on the assembly source to ${CMAKE_C_FLAGS}. This should be safe because the test is written so that the assembly is only ever compiled by the C compiler.
Failed test: FindPackageModeMakefileTest
http://open.cdash.org/testDetails.php?test=148879982&build=2372627 [^]
Similar to the above, an object file is compiled with CXXFLAGS, and then linked without CXXFLAGS, and the linker barfs on the mismatched ABIs.
Solution: Use CXXFLAGS in the makefile's link rule. This is trivial enough, so I also retooled the makefile not to require GNU Make. (Using backticks instead of $(shell ...) is safe so long as you guard against the possibility of backslashes getting inside the backticks, which is why I used temporary shell variables.)
Failed test: IncludeDirectories
http://open.cdash.org/testDetails.php?test=148879964&build=2372627 [^]
Test fails because the HP-UX compiler really really wants source files to end with a newline.
Test solution: Pretty indentation and FILE(WRITE ...) don't mix.
Bonus warning fix for test: VSGNUFortran
http://open.cdash.org/testDetails.php?test=149538620&build=2361814 [^]
"warning: tokens ignored at end of directive line"
(Note: The test failure is due to the build host's software environment; I'm working on that) |
Steps To Reproduce | |
Additional Information | |
Tags | No tags attached. |
Relationships | |
Attached Files | cmake-test-fixes.patch (2,991) 2012-06-18 16:02 https://public.kitware.com/Bug/file/4362/cmake-test-fixes.patch
cmake-fpmmt-nognu.patch (1,583) 2012-06-18 22:18 https://public.kitware.com/Bug/file/4364/cmake-fpmmt-nognu.patch |
|
Issue History |
Date Modified | Username | Field | Change |
2012-06-18 16:02 | Daniel Richard G. | New Issue | |
2012-06-18 16:02 | Daniel Richard G. | File Added: cmake-test-fixes.patch | |
2012-06-18 16:10 | Brad King | Note Added: 0029726 | |
2012-06-18 16:23 | Brad King | Note Added: 0029727 | |
2012-06-18 16:27 | Daniel Richard G. | Note Added: 0029728 | |
2012-06-18 16:30 | Brad King | Note Added: 0029729 | |
2012-06-18 16:32 | Brad King | Note Added: 0029730 | |
2012-06-18 16:33 | Brad King | Note Added: 0029731 | |
2012-06-18 16:34 | Brad King | Note Added: 0029732 | |
2012-06-18 16:35 | Brad King | Assigned To | => Brad King |
2012-06-18 16:35 | Brad King | Status | new => assigned |
2012-06-18 22:18 | Daniel Richard G. | File Added: cmake-fpmmt-nognu.patch | |
2012-06-18 22:26 | Daniel Richard G. | Note Added: 0029737 | |
2012-06-19 08:17 | Brad King | Note Added: 0029739 | |
2012-06-19 08:27 | Brad King | Note Added: 0029740 | |
2012-06-19 08:28 | Brad King | Status | assigned => resolved |
2012-06-19 08:28 | Brad King | Resolution | open => fixed |
2012-08-09 19:40 | David Cole | Fixed in Version | => CMake 2.8.9 |
2012-08-09 19:40 | David Cole | Target Version | => CMake 2.8.9 |
2013-01-09 10:56 | Robert Maynard | Note Added: 0032031 | |
2013-01-09 10:56 | Robert Maynard | Status | resolved => closed |
Notes |
|
(0029726)
|
Brad King
|
2012-06-18 16:10
|
|
To run a dashboard that tests the current work tree do not include the "ctest_update" step. |
|
|
(0029727)
|
Brad King
|
2012-06-18 16:23
|
|
For Tests/Assembler please try this instead:
diff --git a/Tests/Assembler/CMakeLists.txt b/Tests/Assembler/CMakeLists.txt
index ad27e57..456e496 100644
--- a/Tests/Assembler/CMakeLists.txt
+++ b/Tests/Assembler/CMakeLists.txt
@@ -23,6 +23,7 @@ endif("${CMAKE_GENERATOR}" MATCHES "Makefile")
if(SRCS)
+ set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS}")
enable_language(ASM OPTIONAL)
else(SRCS)
message(STATUS "No assembler enabled, using C")
|
|
|
(0029728)
|
Daniel Richard G.
|
2012-06-18 16:27
|
|
I'll try that, and the other fixes. How do I exclude ctest_update? Currently, I kick things off with
ctest -S /path/to/my_dashboard.cmake -VV
Not clear on whether an additional command-line option is needed, or an edit to the top-level script... |
|
|
(0029729)
|
Brad King
|
2012-06-18 16:30
|
|
Re 0013314:0029728: The cmake_common.cmake script is for nightly builds that run ctest_update, not general dashboard runs. One approach is to configure and generate a build tree yourself, then run "make Experimental". Or you can just comment out ctest_update from cmake_common.cmake. |
|
|
(0029730)
|
Brad King
|
2012-06-18 16:32
|
|
The changes to Tests/FindPackageModeMakefileTest/Makefile.in do not work if there is a space in the path to the source/build trees. |
|
|
(0029731)
|
Brad King
|
2012-06-18 16:33
|
|
|
|
(0029732)
|
Brad King
|
2012-06-18 16:34
|
|
|
|
(0029737)
|
Daniel Richard G.
|
2012-06-18 22:26
|
|
The newer Tests/Assembler fix works for me.
As for Tests/FindPackageModeMakefileTest/Makefile.in: yep, my bad. I've reworked that makefile, and attached cmake-fpmmt-nognu.patch; this formulation handles spaces in the paths with both GNU and Unix make(1) programs. Let me know what you think.
(Is it supported to use e.g. CXX="/path/to/c++ -someopt"? I didn't touch the quoting on CMAKE_CXX_COMPILER, but that could be an issue...) |
|
|
(0029739)
|
Brad King
|
2012-06-19 08:17
|
|
|
|
(0029740)
|
Brad King
|
2012-06-19 08:27
|
|
|
|
(0032031)
|
Robert Maynard
|
2013-01-09 10:56
|
|
Closing resolved issues that have not been updated in more than 4 months. |
|