I am using swivm to install SWI-Prolog in a CI environment to test my Prolog programs against the latest stable version of SWI-Prolog. Recently, the tests are failing because the installation of v8.0.1 fails with this message (e.g., here):
CMake Error at cmake/AlignOf.cmake:42 (MESSAGE):
Check alignment: unable to compile test program.
Call Stack (most recent call first):
cmake/Config.cmake:98 (alignof)
src/CMakeLists.txt:26 (include)
I assume this is due to a missing prerequisite introduced with v8. Has anyone a hint which package is missing to run the check for alignment?
The test doesn’t demand any packages. It does require the C compiler to support __alignof though. A quick search suggests support is at least GCC 4.6. In your logs there is The C compiler identification is GNU 4.8.4, which is pretty old. You should have a look at compiling cmake/CheckAlignment.c using this compiler. Possibly some declaration is needed?
Hi Jan. Thank you for the quick reply. Telling Travis CI to use a more up-to-date environment with dist: xenial, the installation of SWI-Prolog is successful again.
I see. Guess I never re-ran a full CMake after this problem was introduced. Turns out the code uses for(int i = 0; ..., which is a C99 construct and gcc 4 requires a flag to support C99. Modified the test to compile with non-C99 compilers.
Trusty is out of support shortly, but there are surely other platforms using ancient gcc versions.