View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0013314CMakeCMakepublic2012-06-18 16:022013-01-09 10:56
ReporterDaniel Richard G. 
Assigned ToBrad King 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformItaniumOSHP-UXOS Version11.23
Product VersionCMake 2.8.8 
Target VersionCMake 2.8.9Fixed in VersionCMake 2.8.9 
Summary0013314: Fixes for various dashboard test failures
DescriptionThis 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)
TagsNo tags attached.
Attached Filespatch file icon cmake-test-fixes.patch [^] (2,991 bytes) 2012-06-18 16:02 [Show Content]
patch file icon cmake-fpmmt-nognu.patch [^] (1,583 bytes) 2012-06-18 22:18 [Show Content]

 Relationships

  Notes
(0029726)
Brad King (manager)
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 (manager)
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. (reporter)
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 (manager)
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 (manager)
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 (manager)
2012-06-18 16:33

Applied Tests/IncludeDirectories fix:

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cad69215 [^]
(0029732)
Brad King (manager)
2012-06-18 16:34

Applied Tests/VSGNUFortran fix:

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=307d45ea [^]
(0029737)
Daniel Richard G. (reporter)
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 (manager)
2012-06-19 08:17

Applied Tests/Assembler fix:

 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d6865175 [^]
(0029740)
Brad King (manager)
2012-06-19 08:27

Applied (new) Tests/FindPackageModeMakefileTest fix:

 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=09ff191c [^]
(0032031)
Robert Maynard (manager)
2013-01-09 10:56

Closing resolved issues that have not been updated in more than 4 months.

 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


Copyright © 2000 - 2018 MantisBT Team