View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0015576 | CMake | CMake | public | 2015-05-20 10:41 | 2015-11-02 09:15 | ||||
Reporter | Michael Scott | ||||||||
Assigned To | Brad King | ||||||||
Priority | normal | Severity | block | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | HP-UX IA64 | OS | HP-UX | OS Version | B.11.23 | ||||
Product Version | CMake 3.2.2 | ||||||||
Target Version | CMake 3.3 | Fixed in Version | CMake 3.3 | ||||||
Summary | 0015576: cannot build CMake on old versions of HP-UX IA64 | ||||||||
Description | Cannot build CMake 3.2.2 on old versions of HP-UX (IA64), as isfinite, used in cmjsoncpp/json_writer.cpp, is not defined for this platform. I can see a fix is proposed in the following commit http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7b1cdb00 [^] , however this commit doesn't work for IA64 HP-UX platforms, in this case isfinite should be defined as _Isfinite I believe. A quick test with that change allows me to get past that section. | ||||||||
Steps To Reproduce | Download CMake version 3.2.2 source, attempt to build on a HP-UX IA64 machine running version B.11.23 | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | |||||||||
Relationships | |
Relationships |
Notes | |
(0038779) Brad King (manager) 2015-05-20 10:51 |
FYI, we are only able to support platforms for which nightly testing submits to our dashboard: https://open.cdash.org/index.php?project=CMake [^] Instructions to run a testing dashboard client are here: http://www.cmake.org/Wiki/CMake/Git/Dashboard [^] Currently a few HP-UX versions and architecture combinations are submitting and are clean as of commit 594dd9b3 in 'master': B.11.11 9000/785 gcc B.11.11 9000/785 aCC B.11.23 ia64 aCC B.11.31 ia64 aCC Some of these were only recently added and some post-3.2 fixes were made for them. Does our Git 'master' build for you? Do you have a different os/arch/compiler combination? |
(0038781) Brad King (manager) 2015-05-20 10:53 |
> B.11.11 9000/785 aCC Actually this submission is only running the test suite but uses the gcc-built cmake binary because that compiler can no longer build CMake itself. |
(0038783) Michael Scott (reporter) 2015-05-20 12:14 |
The compiler is HP gcc version 4.7.0. Uname reports "HP-UX B.11.23 U ia64" for the OS/Arch. Building from the Git master gives me the same problem, with the error "'finite' was not declared in this scope". |
(0038784) Brad King (manager) 2015-05-20 12:52 |
Re 0015576:0038783: I don't have access to any of these system. Will you please propose a specific modification/patch to the preprocessor logic? |
(0038793) Michael Scott (reporter) 2015-05-21 16:20 |
Sure I'll try and come up with a patch proposal over the next couple of days. I've been trying to determine if it's an issue with HP-UX itself (the c/c++ library I guess?) or the GCC we're using, but the documentation available isn't great and the behaviour is odd (using isfinite with gcc is fine, but using it with g++ isn't). Thanks for the quick replies by the way, great support for CMake! |
(0038795) Michael Scott (reporter) 2015-05-24 04:56 edited on: 2015-05-24 05:24 |
Looking at the math.h which its including from /usr/include/math.h, I can see why its not picking up isfinite... # if defined(_PA_RISC) || !defined(__cplusplus) ... # define isfinite(x) _ISFINITE(x) I'm guessing its a bug and it assumes that c++ code will use cmath (which works on this server) instead of math.h. Could the following change be made to the CMake cpp file? BEFORE: // HP-UX #if defined(__hpux) # if !defined(isfinite) # define isfinite finite # endif #endif AFTER: // HP-UX #if defined(__hpux) # if !defined(isfinite) // Some versions of HP-UX don't define isfinite in math.h for C++ Itanium, so we // have to use the internal version instead # if defined(__ia64) && !defined(finite) # define isfinite(x) (sizeof(x) == sizeof(float) ? _Isfinitef(x) : _Isfinite(x)) # else # define isfinite finite # endif # endif #endif |
(0038801) Brad King (manager) 2015-05-26 10:13 |
Re 0015576:0038795: Thanks. Applied: jsoncpp: Provide 'isfinite' impl on more HP-UX versions http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9217b678 [^] |
(0039823) Robert Maynard (manager) 2015-11-02 09:15 |
Closing resolved issues that have not been updated in more than 4 months. |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
2015-05-20 10:41 | Michael Scott | New Issue | |
2015-05-20 10:51 | Brad King | Note Added: 0038779 | |
2015-05-20 10:53 | Brad King | Note Added: 0038781 | |
2015-05-20 12:14 | Michael Scott | Note Added: 0038783 | |
2015-05-20 12:52 | Brad King | Note Added: 0038784 | |
2015-05-21 16:20 | Michael Scott | Note Added: 0038793 | |
2015-05-24 04:56 | Michael Scott | Note Added: 0038795 | |
2015-05-24 05:24 | Michael Scott | Note Edited: 0038795 | |
2015-05-26 10:13 | Brad King | Note Added: 0038801 | |
2015-05-26 10:13 | Brad King | Assigned To | => Brad King |
2015-05-26 10:13 | Brad King | Status | new => resolved |
2015-05-26 10:13 | Brad King | Resolution | open => fixed |
2015-05-26 10:13 | Brad King | Fixed in Version | => CMake 3.3 |
2015-05-26 10:13 | Brad King | Target Version | => CMake 3.3 |
2015-11-02 09:15 | Robert Maynard | Note Added: 0039823 | |
2015-11-02 09:15 | Robert Maynard | Status | resolved => closed |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |