Opened 11 years ago

Closed 7 years ago

#630 closed defect (fixed)

CMake with mingw-w64 fail

Reported by: robe Owned by: robe
Priority: major Milestone: 3.6.2
Component: Build/Install (cmake) Version: main
Severity: Unassigned Keywords:
Cc: akks

Description (last modified by mloskot)

Mat,

I'm getting similar error to ticket here #557

I tried with both my existing 4.5.4 Mingw install and 4.8.0 that Mark suggested and get same failure. On bright side 4.8.0 doesn't seem to crash like 4.6 did (when compiling with ./configure), but gives lots of failures during regress testing like 46 out of 3000 failures. more on that later.

My build command was:

export OS_BUILD=64
export GEOS_VER=3.4.0dev
PROJECTS=/c/ming${OS_BUILD}/projects

tools/svn_repo_revision.sh
rm -rf build/mingw
mkdir -p build/mingw
cd build/mingw
cmake -G"MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD} ../../

make
-- The C compiler identification is GNU 4.8.0
-- The CXX compiler identification is GNU 4.8.0
-- Check for working C compiler: c:/ming64/mingw64/bin/gcc.exe
-- Check for working C compiler: c:/ming64/mingw64/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: c:/ming64/mingw64/bin/g++.exe
-- Check for working CXX compiler: c:/ming64/mingw64/bin/g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Setting GEOS version 3.4.0dev as port of JTS 1.12.0
-- Setting GEOS C API version 1.8.0
-- Setting GEOS build type - Debug
-- Forcing IEEE 754 using flag -ffloat-store - ON
-- Setting GEOS compilation with small functions inlining - ON
-- Setting GEOS compilation with assert() macro enabled - OFF
-- Looking for include file stdint.h
-- Looking for include file stdint.h - found
-- Looking for include file inttypes.h
-- Looking for include file inttypes.h - found
-- Looking for include file ieeefp.h
-- Looking for include file ieeefp.h - not found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of int64_t
-- Check size of int64_t - done
-- Performing Test HAVE_STD_ISNAN
-- Performing Test HAVE_STD_ISNAN - Failed
-- Looking for isnan
-- Looking for isnan - found
-- Performing Test HAVE_STD_ISFINITE
-- Performing Test HAVE_STD_ISFINITE - Failed
-- Looking for isfinite
-- Looking for isfinite - found
-- Enable GEOS Unit Tests build - ON
-- Enable GEOS XML Tester build - ON
-- Enable GEOS large geometry tests build - ON
-- CMake 2.8.10.2 successfully configured geos using MSYS Makefiles generator
-- Configuring done
-- Generating done
-- Build files have been written to: C:/ming64/projects/geos/branches/geos-3.4/b
uild/mingw
Scanning dependencies of target geos
[  0%] Building CXX object src/CMakeFiles/geos.dir/algorithm/Angle.cpp.obj
c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/Angle.cpp:1:0: warning:
-fPIC ignored for target (all code is position independent) [enabled by default]

 /**********************************************************************
 ^
In file included from C:/ming64/projects/geos/branches/geos-3.4/include/geos/geo
m/Coordinate.h:19:0,
                 from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/An
gle.cpp:23:
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl: In m
ember function 'bool geos::geom::Coordinate::isNull() const':
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:13
6:27: error: 'isnan' was not declared in this scope
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:38:10
: note: in expansion of macro 'ISNAN'
  return (ISNAN(x) && ISNAN(y) && ISNAN(z));
          ^
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:13
6:27: note: suggested alternative:
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:38:10
: note: in expansion of macro 'ISNAN'
  return (ISNAN(x) && ISNAN(y) && ISNAN(z));
          ^
In file included from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/An
gle.cpp:19:0:
c:\ming64\mingw64\include\c++\4.8.0\cmath:836:5: note:   'std::isnan'
     isnan(_Tp __f)
     ^
In file included from C:/ming64/projects/geos/branches/geos-3.4/include/geos/geo
m/Coordinate.h:19:0,
                 from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/An
gle.cpp:23:
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl: In m
ember function 'bool geos::geom::Coordinate::equals3D(const geos::geom::Coordina
te&) const':
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:13
6:27: error: 'isnan' was not declared in this scope
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:77:21
: note: in expansion of macro 'ISNAN'
   ((z == other.z)||(ISNAN(z) && ISNAN(other.z)));
                     ^
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:13
6:27: note: suggested alternative:
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:77:21
: note: in expansion of macro 'ISNAN'
   ((z == other.z)||(ISNAN(z) && ISNAN(other.z)));
                     ^
In file included from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/An
gle.cpp:19:0:
c:\ming64\mingw64\include\c++\4.8.0\cmath:836:5: note:   'std::isnan'
     isnan(_Tp __f)
     ^
make[2]: *** [src/CMakeFiles/geos.dir/algorithm/Angle.cpp.obj] Error 1
make[1]: *** [src/CMakeFiles/geos.dir/all] Error 2
make: *** [all] Error 2
[  0%] Building CXX object src/CMakeFiles/geos.dir/algorithm/Angle.cpp.obj
c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/Angle.cpp:1:0: warning:
-fPIC ignored for target (all code is position independent) [enabled by default]

 /**********************************************************************
 ^
In file included from C:/ming64/projects/geos/branches/geos-3.4/include/geos/geo
m/Coordinate.h:19:0,
                 from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/An
gle.cpp:23:
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl: In m
ember function 'bool geos::geom::Coordinate::isNull() const':
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:13
6:27: error: 'isnan' was not declared in this scope
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:38:10
: note: in expansion of macro 'ISNAN'
  return (ISNAN(x) && ISNAN(y) && ISNAN(z));
          ^
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:13
6:27: note: suggested alternative:
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:38:10
: note: in expansion of macro 'ISNAN'
  return (ISNAN(x) && ISNAN(y) && ISNAN(z));
          ^
In file included from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/An
gle.cpp:19:0:
c:\ming64\mingw64\include\c++\4.8.0\cmath:836:5: note:   'std::isnan'
     isnan(_Tp __f)
     ^
In file included from C:/ming64/projects/geos/branches/geos-3.4/include/geos/geo
m/Coordinate.h:19:0,
                 from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/An
gle.cpp:23:
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl: In m
ember function 'bool geos::geom::Coordinate::equals3D(const geos::geom::Coordina
te&) const':
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:13
6:27: error: 'isnan' was not declared in this scope
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:77:21
: note: in expansion of macro 'ISNAN'
   ((z == other.z)||(ISNAN(z) && ISNAN(other.z)));
                     ^
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:13
6:27: note: suggested alternative:
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:77:21
: note: in expansion of macro 'ISNAN'
   ((z == other.z)||(ISNAN(z) && ISNAN(other.z)));
                     ^
In file included from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/An
gle.cpp:19:0:
c:\ming64\mingw64\include\c++\4.8.0\cmath:836:5: note:   'std::isnan'
     isnan(_Tp __f)
     ^
make[2]: *** [src/CMakeFiles/geos.dir/algorithm/Angle.cpp.obj] Error 1

Attachments (5)

Makefile (24.0 KB ) - added by robe 11 years ago.
Makefile.zip (28.6 KB ) - added by robe 11 years ago.
build/mingw/src folder makefile
geos3.4.0_cmake_mingw64.diff (2.1 KB ) - added by robe 11 years ago.
mingw64_profiler.diff (911 bytes ) - added by robe 11 years ago.
std_check.diff (794 bytes ) - added by akks 10 years ago.
more reliable detecion of std::isnan and std::isfinite

Download all attachments as: .zip

Change History (45)

comment:1 by robe, 11 years ago

Let me try the second part again:

-- The C compiler identification is GNU 4.8.0
-- The CXX compiler identification is GNU 4.8.0
-- Check for working C compiler: c:/ming64/mingw64/bin/gcc.exe
-- Check for working C compiler: c:/ming64/mingw64/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: c:/ming64/mingw64/bin/g++.exe
-- Check for working CXX compiler: c:/ming64/mingw64/bin/g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Setting GEOS version 3.4.0dev as port of JTS 1.12.0
-- Setting GEOS C API version 1.8.0
-- Setting GEOS build type - Debug
-- Forcing IEEE 754 using flag -ffloat-store - ON
-- Setting GEOS compilation with small functions inlining - ON
-- Setting GEOS compilation with assert() macro enabled - OFF
-- Looking for include file stdint.h
-- Looking for include file stdint.h - found
-- Looking for include file inttypes.h
-- Looking for include file inttypes.h - found
-- Looking for include file ieeefp.h
-- Looking for include file ieeefp.h - not found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of int64_t
-- Check size of int64_t - done
-- Performing Test HAVE_STD_ISNAN
-- Performing Test HAVE_STD_ISNAN - Failed
-- Looking for isnan
-- Looking for isnan - found
-- Performing Test HAVE_STD_ISFINITE
-- Performing Test HAVE_STD_ISFINITE - Failed
-- Looking for isfinite
-- Looking for isfinite - found
-- Enable GEOS Unit Tests build - ON
-- Enable GEOS XML Tester build - ON
-- Enable GEOS large geometry tests build - ON
-- CMake 2.8.10.2 successfully configured geos using MSYS Makefiles generator
-- Configuring done
-- Generating done
-- Build files have been written to: C:/ming64/projects/geos/branches/geos-3.4
uild/mingw
Scanning dependencies of target geos
[  0%] Building CXX object src/CMakeFiles/geos.dir/algorithm/Angle.cpp.obj
c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/Angle.cpp:1:0: warning
-fPIC ignored for target (all code is position independent) [enabled by defaul

 /**********************************************************************
 ^
In file included from C:/ming64/projects/geos/branches/geos-3.4/include/geos/g
m/Coordinate.h:19:0,
                 from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/
gle.cpp:23:
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl: In
ember function 'bool geos::geom::Coordinate::isNull() const':
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:
6:27: error: 'isnan' was not declared in this scope
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:38:
: note: in expansion of macro 'ISNAN'
  return (ISNAN(x) && ISNAN(y) && ISNAN(z));
          ^
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:
6:27: note: suggested alternative:
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:38:
: note: in expansion of macro 'ISNAN'
  return (ISNAN(x) && ISNAN(y) && ISNAN(z));
          ^
In file included from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/
gle.cpp:19:0:
c:\ming64\mingw64\include\c++\4.8.0\cmath:836:5: note:   'std::isnan'
     isnan(_Tp __f)
     ^
In file included from C:/ming64/projects/geos/branches/geos-3.4/include/geos/g
m/Coordinate.h:19:0,
                 from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/
gle.cpp:23:
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl: In
ember function 'bool geos::geom::Coordinate::equals3D(const geos::geom::Coordi
te&) const':
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:
6:27: error: 'isnan' was not declared in this scope
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:77:
: note: in expansion of macro 'ISNAN'
   ((z == other.z)||(ISNAN(z) && ISNAN(other.z)));
                     ^
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:
6:27: note: suggested alternative:
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:77:
: note: in expansion of macro 'ISNAN'
   ((z == other.z)||(ISNAN(z) && ISNAN(other.z)));
                     ^
In file included from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/
gle.cpp:19:0:
c:\ming64\mingw64\include\c++\4.8.0\cmath:836:5: note:   'std::isnan'
     isnan(_Tp __f)
     ^
make[2]: *** [src/CMakeFiles/geos.dir/algorithm/Angle.cpp.obj] Error 1
make[1]: *** [src/CMakeFiles/geos.dir/all] Error 2
make: *** [all] Error 2
[  0%] Building CXX object src/CMakeFiles/geos.dir/algorithm/Angle.cpp.obj
c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/Angle.cpp:1:0: warning
-fPIC ignored for target (all code is position independent) [enabled by defaul

 /**********************************************************************
 ^
In file included from C:/ming64/projects/geos/branches/geos-3.4/include/geos/g
m/Coordinate.h:19:0,
                 from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/
gle.cpp:23:
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl: In
ember function 'bool geos::geom::Coordinate::isNull() const':
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:
6:27: error: 'isnan' was not declared in this scope
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:38:
: note: in expansion of macro 'ISNAN'
  return (ISNAN(x) && ISNAN(y) && ISNAN(z));
          ^
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:
6:27: note: suggested alternative:
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:38:
: note: in expansion of macro 'ISNAN'
  return (ISNAN(x) && ISNAN(y) && ISNAN(z));
          ^
In file included from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/
gle.cpp:19:0:
c:\ming64\mingw64\include\c++\4.8.0\cmath:836:5: note:   'std::isnan'
     isnan(_Tp __f)
     ^
In file included from C:/ming64/projects/geos/branches/geos-3.4/include/geos/g
m/Coordinate.h:19:0,
                 from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/
gle.cpp:23:
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl: In
ember function 'bool geos::geom::Coordinate::equals3D(const geos::geom::Coordi
te&) const':
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:
6:27: error: 'isnan' was not declared in this scope
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:77:
: note: in expansion of macro 'ISNAN'
   ((z == other.z)||(ISNAN(z) && ISNAN(other.z)));
                     ^
C:/ming64/projects/geos/branches/geos-3.4/build/mingw/include/geos/platform.h:
6:27: note: suggested alternative:
 #  define ISNAN(x) isnan(x)
                           ^
C:/ming64/projects/geos/branches/geos-3.4/include/geos/geom/Coordinate.inl:77:
: note: in expansion of macro 'ISNAN'
   ((z == other.z)||(ISNAN(z) && ISNAN(other.z)));
                     ^
In file included from c:/ming64/projects/geos/branches/geos-3.4/src/algorithm/
gle.cpp:19:0:
c:\ming64\mingw64\include\c++\4.8.0\cmath:836:5: note:   'std::isnan'
     isnan(_Tp __f)
     ^
make[2]: *** [src/CMakeFiles/geos.dir/algorithm/Angle.cpp.obj] Error 1
make[1]: *** [src/CMakeFiles/geos.dir/all] Error 2
make: *** [all] Error 2

comment:2 by robe, 11 years ago

I made progress on this by looking at notes from http://osgeo-org.1560.x6.nabble.com/Compiling-geos-with-mingw64-td5034567.html

I was able to compile with the below and some modifications to files which I'll clean up and provide a patch for once I'm done

cmake -G"MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD} -DHAVE_STD_ISNAN=1 -DHAVE_LONG_LONG_INT_64=1 -DGEOS_ENABLE_INLINE=ON  -DGEOS_ENABLE_TESTS=ON  

make
make install
make test
make check

However I don't think -DGEOS_ENABLE_INLINE=ON is working. It says it is in the output, but I get linker failures unless I explicitly change

geos/inline.h

# define INLINE inline

as David did.

I also think you might be missing an important include. I had to change some conditions in profiler.h to

#if defined(__MINGW32__) && !defined( __MINGW64__)

when I really want to do:

 #if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR)

to properly handle building both win32 and win64 binaries with mingw64 chain

as detailed here:

http://sourceforge.net/mailarchive/message.php?msg_id=28305973

So after that long exercise I am here:

Running tests...
Test project C:/ming64/projects/geos/branches/geos-3.4/build/mingw
    Start 1: geos_unit
1/4 Test #1: geos_unit ........................   Passed    0.24 sec
    Start 2: xmltester
2/4 Test #2: xmltester ........................   Passed    6.53 sec
    Start 3: bug234
3/4 Test #3: bug234 ...........................   Passed    0.01 sec
    Start 4: TestSweepLineSpeed
4/4 Test #4: TestSweepLineSpeed ...............   Passed    1.70 sec

100% tests passed, 0 tests failed out of 4

Total Test time (real) =   8.51 sec
Scanning dependencies of target check
make[3]: ctest: Command not found
make[3]: *** [CMakeFiles/check] Error 127
make[2]: *** [CMakeFiles/check.dir/all] Error 2
make[1]: *** [CMakeFiles/check.dir/rule] Error 2
make: *** [check] Error 2

which is good progress I guess

comment:3 by robe, 11 years ago

The ctest issue was because I didn't have cmake bin folder in my search path. I was using an alias for cmake to run. After adding to my path -- yeh complete success.

Linking CXX executable ../../bin/TestSweepLineSpeed.exe
[100%] Built target TestSweepLineSpeed
Scanning dependencies of target bug234
[100%] Building CXX object tests/bigtest/CMakeFiles/bug234.dir/bug234.cpp.obj
c:/ming64/projects/geos/branches/geos-3.4/tests/bigtest/bug234.cpp:1:0: warning:
 -fPIC ignored for target (all code is position independent) [enabled by default
]
 #include <vector>
 ^
Linking CXX executable ../../bin/bug234.exe
[100%] Built target bug234
Running tests...
Test project C:/ming64/projects/geos/branches/geos-3.4/build/mingw
    Start 1: geos_unit
1/4 Test #1: geos_unit ........................   Passed    0.13 sec
    Start 2: xmltester
2/4 Test #2: xmltester ........................   Passed    6.44 sec
    Start 3: bug234
3/4 Test #3: bug234 ...........................   Passed    0.01 sec
    Start 4: TestSweepLineSpeed
4/4 Test #4: TestSweepLineSpeed ...............   Passed    1.72 sec

100% tests passed, 0 tests failed out of 4

Total Test time (real) =   8.32 sec
Scanning dependencies of target check
Test project C:/ming64/projects/geos/branches/geos-3.4/build/mingw
    Start 1: geos_unit
1/4 Test #1: geos_unit ........................   Passed    0.11 sec
    Start 2: xmltester
2/4 Test #2: xmltester ........................   Passed    6.43 sec
    Start 3: bug234
3/4 Test #3: bug234 ...........................   Passed    0.01 sec
    Start 4: TestSweepLineSpeed
4/4 Test #4: TestSweepLineSpeed ...............   Passed    1.71 sec

100% tests passed, 0 tests failed out of 4

Total Test time (real) =   8.29 sec
Built target check

I'll attach a patch once I've cleaned up the junk I shouldn't have put in. n test wt my curent mingw64. This is using mingw64 gcc 4.8

x86_64-w64-mingw32-gcc-4.8.0-win64_rubenvb.7z from

http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/rubenvb/gcc-4.8-release/

I still need to test with win32 also.

comment:4 by robe, 11 years ago

Component: DefaultBuild/Install (cmake)
Owner: changed from geos-devel@… to mloskot

comment:5 by robe, 11 years ago

Milestone: 3.4.0

comment:6 by mloskot, 11 years ago

Description: modified (diff)

comment:7 by mloskot, 11 years ago

Regina,

The *GEOS_ENABLE_INLINE=ON* works for me without problems:

d:\dev\geos\_svn\trunk\_build> cmake -G "Visual Studio 11" ^
    -DGEOS_ENABLE_INLINE=YES ^
    -DGEOS_ENABLE_TESTS=ON ^
    ..

and then I can take peek into MSBuild output and find out the corresponding preprocessor definition is set as expected:

d:\dev\geos\_svn\trunk\_build>msbuild /verbosity:diagnostic geos.sln | grep GEOS_INLINE
  PreprocessorDefinitions =
    WIN32;_WINDOWS;_DEBUG;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;NOMINMAX;
    GEOS_INLINE;CMAKE_INTDIR="Debug";GEOS_DLL_EXPORT;_WINDLL;_MBCS;
...

Regarding any changes related to *MINGW64* and others, I'd suggest you apply the change that works for you, and I only test if nothing is broken.

I see that latest GCC is messing with NAN macro/functin discovered in platform.h, I wonder if GEOS builds on Linux with this version of GCC.

comment:8 by mloskot, 11 years ago

BTW, try setting:

cmake -DCMAKE_VERBOSE_MAKEFILE=YES ....

and then you will be able to see if GEOS_INLINE is actually defined.

comment:9 by robe, 11 years ago

I had ON before but noticed you have YES in yours

cmake -G"MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD} -DHAVE_STD_ISNAN=1 -DHAVE_LONG_LONG_INT_64=1 -DGEOS_ENABLE_INLINE=YES  -DGEOS_ENABLE_TESTS=ON  ../../

Still doesn't work without hard coding

I'll attach the makefile

by robe, 11 years ago

Attachment: Makefile added

comment:10 by robe, 11 years ago

Sorry I attached the wrong makefile I think. You probably want the one in src folder.

also BTW the output says its inlining but its not:

#define GEOS_SVN_REVISION 3805
Wrote rev '3805' in file './geos_svn_revision.h'
-- The C compiler identification is GNU 4.8.0
-- The CXX compiler identification is GNU 4.8.0
-- Check for working C compiler: c:/ming64/mingw64/bin/gcc.exe
-- Check for working C compiler: c:/ming64/mingw64/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: c:/ming64/mingw64/bin/g++.exe
-- Check for working CXX compiler: c:/ming64/mingw64/bin/g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Setting GEOS version 3.4.0dev as port of JTS 1.12.0
-- Setting GEOS C API version 1.8.0
-- Setting GEOS build type - Debug
-- Forcing IEEE 754 using flag -ffloat-store - ON
-- Setting GEOS compilation with small functions inlining - YES
-- Setting GEOS compilation with assert() macro enabled - OFF
-- Looking for include file stdint.h
-- Looking for include file stdint.h - found
-- Looking for include file inttypes.h
-- Looking for include file inttypes.h - found
-- Looking for include file ieeefp.h
-- Looking for include file ieeefp.h - not found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of int64_t
-- Check size of int64_t - done
-- Performing Test HAVE_STD_ISFINITE
-- Performing Test HAVE_STD_ISFINITE - Failed
-- Looking for isfinite
-- Looking for isfinite - found
-- Enable GEOS Unit Tests build - ON
-- Enable GEOS XML Tester build - ON
-- Enable GEOS large geometry tests build - ON
-- CMake 2.8.10.2 successfully configured geos using MSYS Makefiles generator
-- Configuring done
-- Generating done
-- Build files have been written to: C:/ming64/projects/geos/branches/3.4/buil
mingw

I'm attaching the source one now.

by robe, 11 years ago

Attachment: Makefile.zip added

build/mingw/src folder makefile

comment:11 by mloskot, 11 years ago

Regina,

FYI, CMake accepts both, ON or YES, as values.

Here is my test I've done on Linux x64 with 4.8.1:

$ cd ~/dev/geos/_svn/trunk
$ mkdir _build
$ cd _build
$ cmake -DCMAKE_VERBOSE_MAKEFILE=YES -DGEOS_ENABLE_INLINE=YES -DGEOS_ENABLE_TESTS=YES ..
-- The C compiler identification is GNU 4.8.1
-- The CXX compiler identification is GNU 4.8.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Setting GEOS version 3.4.0dev as port of JTS 1.12.0
-- Setting GEOS C API version 1.8.0
-- Setting GEOS C API soversion 1
-- Setting GEOS build type - Debug
-- Forcing IEEE 754 using flag -ffloat-store - ON
-- Setting GEOS compilation with small functions inlining - YES
-- Setting GEOS compilation with assert() macro enabled - OFF
-- Looking for include file stdint.h
-- Looking for include file stdint.h - found
-- Looking for include file inttypes.h
-- Looking for include file inttypes.h - found
-- Looking for include file ieeefp.h
-- Looking for include file ieeefp.h - not found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of int64_t
-- Check size of int64_t - done
-- Performing Test HAVE_STD_ISNAN
-- Performing Test HAVE_STD_ISNAN - Success
-- Performing Test HAVE_STD_ISFINITE
-- Performing Test HAVE_STD_ISFINITE - Failed
-- Looking for isfinite
-- Looking for isfinite - found
-- Enable GEOS Unit Tests build - ON
-- Enable GEOS XML Tester build - ON
-- Enable GEOS large geometry tests build - ON
-- CMake 2.8.11 successfully configured geos using Unix Makefiles generator
-- Configuring done
-- Generating done
-- Build files have been written to: /home/mloskot/dev/geos/_svn/trunk/_build

and build, GEOS_INLINE properly defined:

$ make 
/usr/bin/cmake -H/home/mloskot/dev/geos/_svn/trunk -B/home/mloskot/dev/geos/_svn/trunk/_build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/mloskot/dev/geos/_svn/trunk/_build/CMakeFiles /home/mloskot/dev/geos/_svn/trunk/_build/CMakeFiles/progress.marks
make -f CMakeFiles/Makefile2 all
make[1]: Entering directory `/home/mloskot/dev/geos/_svn/trunk/_build'
make -f src/CMakeFiles/geos.dir/build.make src/CMakeFiles/geos.dir/depend
make[2]: Entering directory `/home/mloskot/dev/geos/_svn/trunk/_build'
cd /home/mloskot/dev/geos/_svn/trunk/_build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/mloskot/dev/geos/_svn/trunk /home/mloskot/dev/geos/_svn/trunk/src /home/mloskot/dev/geos/_svn/trunk/_build /home/mloskot/dev/geos/_svn/trunk/_build/src /home/mloskot/dev/geos/_svn/trunk/_build/src/CMakeFiles/geos.dir/DependInfo.cmake --color=
Scanning dependencies of target geos
make[2]: Leaving directory `/home/mloskot/dev/geos/_svn/trunk/_build'
make -f src/CMakeFiles/geos.dir/build.make src/CMakeFiles/geos.dir/build
make[2]: Entering directory `/home/mloskot/dev/geos/_svn/trunk/_build'
/usr/bin/cmake -E cmake_progress_report /home/mloskot/dev/geos/_svn/trunk/_build/CMakeFiles 
[  0%] Building CXX object src/CMakeFiles/geos.dir/linearref/LinearLocation.cpp.o
cd /home/mloskot/dev/geos/_svn/trunk/_build/src && /usr/bin/c++   -DGEOS_DLL_EXPORT -DGEOS_INLINE -D_DEBUG -pedantic -ansi  -ffloat-store -Wall -Wno-long-long -fPIC -g -fPIC -I/home/mloskot/dev/geos/_svn/trunk/include -I/home/mloskot/dev/geos/_svn/trunk/_build/capi -I/home/mloskot/dev/geos/_svn/trunk/_build/include    -o CMakeFiles/geos.dir/linearref/LinearLocation.cpp.o -c /home/mloskot/dev/geos/_svn/trunk/src/linearref/LinearLocation.cpp
/usr/bin/cmake -E cmake_progress_report /home/mloskot/dev/geos/_svn/trunk/_build/CMakeFiles 
...

Again, same as with VS2012, works for me.

I have run the same test on another Linux with GCC 4.7.3, all works. (The only issue is this:

capi/geos_ts_c.cpp:98:34: fatal error: ../geos_svn_revision.h: No such file or directory

but that needs to be addressed anyway, similarly to PostGIS or in more portable/Windows-friendly way.)

comment:12 by robe, 11 years ago

Okay still puzzled why its not push into the inline.h

anyrate regarding why I can't get defined(MINGW64_VERSION_MAJOR) to work I found the thread that discusses it.

http://blog.gmane.org/gmane.comp.gnu.mingw.w64.general/month=20100201

"To clarify things: MINGW32 and MINGW64 : They are both compiler 's built-in macros. MINGW32 is valid for both mingw.org and mingw-w64, for both x86 *and* for x64. MINGW64 is *only* valid for x64, therefore effectively for mingw-w64, because mingw.org doesn't support x64 (at least not yet.)

MINGW64_VERSION_MAJOR, on the other hand, is *not* a compiler built-in macro. It is a macro defined by the mingw-w64 headers, specifically through _mingw.h. Most, if not all, of the headers already include _mingw.h, so if you want to check for .MINGW64_VERSION_MAJOR you must do it *after* including some standart headers such as stdio.h or stdlib.h or even windows.h"

It's because it requires an include like stdio.h and stdlib.h or something. I don't know where to put that include though (so I can then correctly conditionalize profile.h and inline.h? Any clues. When I put in PostGIS and pgRouting, it just worked.

comment:13 by robe, 11 years ago

BTW mloskot if you have ubuntu, I suspect you could just use the linux binaries from

http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/rubenvb/gcc-4.8-release/

For Linux and just use Unix Makefiles instead of MSYS Makefiles

comment:14 by mloskot, 11 years ago

Regina, yes, I see what you mean now. It is also explained in the predef database at http://sourceforge.net/p/predef/wiki/Compilers/:

Notice that __MINGW32_MAJOR_VERSION, __MINGW32_MINOR_VERSION,
_MINGW64_VERSION_MAJOR, and __MINGW64_VERSION_MINOR
are only defined if appropriate headers are included. Appropriate headers are 
<stdlib.h>, <stdio.h>, <windows.h>, <windef.h>, and probably more.

I'd put it in platform.h, namely both templates:

include/geos/platform.h.cmake
include/geos/platform.h.in 

I use Arch Linux w/ GCC 4.8.1 and Debian (jessie) w/ GCC 4.7.3, but in fact, most of time I use clang 3.3.

comment:15 by robe, 11 years ago

Mat,

I put the

#include <stdlib.h>

at the top of platform.h.cmake, but it still didn't help the detection issue. I then realized the issue is in the files I need the detection platform.h is not included.

I had to explicitly add

#include <geos/platform.h> 

to the top of include/geos/inline.h

and include/geos/profile.h

Then it would pick up the

defined(__MINGW64_VERSION_MAJOR)

Given that I'm wondering if its better to just include <stdlib> directly in those files or if platform.h is better.

I'm still bugged about why the CMAKE -DGEOS_ENABLE_INLINE=YES is not working. Could it be that maybe its partly working. I'm thinking it might be the same thing that the files being compiled where the error happens are not getting the -DGEOS_ENABLE_INLINE because they aren't .c .cpp files.

I believe all of them are the .inl files and they register duplicate definition. If you relook at http://osgeo-org.1560.x6.nabble.com/Compiling-geos-with-mingw64-td5034567.html note you'll see where he:

// Fixe "multiple defines" in dot.inl files:
$ svn diff include/geos/inline.h
Index: include/geos/inline.h 

// Fixe "multiple defines" in dot.inl files:
$ svn diff include/geos/inline.h
Index: include/geos/inline.h
===================================================================
--- include/geos/inline.h    (revision 3765)
+++ include/geos/inline.h    (working copy)
@@ -18,7 +18,7 @@
  #ifdef GEOS_INLINE
  # define INLINE inline
  #else
-# define INLINE
+# define INLINE inline
  #endif 

comment:16 by robe, 11 years ago

Just for reference. these are the kind of errors I get if I don't hard-code the inline in the inline.h file even though I have it in CMake call and I see it being passed during compile

CMakeFiles/geos.dir/objects.a(inlines.cpp.obj): In function `ZNK4geos4geom18Coor
dinateLessThenclERKNS0_10CoordinateES4_':
C:/ming32/projects/geos/branches/3.4/include/geos/geom/Coordinate.inl:115: multi
ple definition of `geos::geom::CoordinateLessThen::operator()(geos::geom::Coordi
nate const&, geos::geom::Coordinate const&) const'
CMakeFiles/geos.dir/objects.a(Angle.cpp.obj):C:/ming32/projects/geos/branches/3.
4/include/geos/geom/Coordinate.inl:115: first defined here
CMakeFiles/geos.dir/objects.a(inlines.cpp.obj): In function `ZN4geos4geomeqERKNS
0_10CoordinateES3_':

clearly its passed during compile since I see lines like this:

cd /C/ming32/projects/geos/build/src && /c/ming32/mingw32/bin/g++.exe  
-DGEOS_DLL_EXPORT -DGEOS_INLINE -D_DEBUG -pedantic -ansi  -ffloat-store -Wall -Wno-long-
long -fPIC -g @CMakeFiles/geos.dir/includes_CXX.rsp   -o CMakeFiles/geos.dir/alg
orithm/distance/DistanceToPoint.cpp.obj -c /C/ming32/projects/geos/branches/3.4/
src/algorithm/distance/DistanceToPoint.cpp
c:/ming32/projects/geos/branches/3.4/src/algorithm/distance/DistanceToPoint.cpp:
1:0: warning: -fPIC ignored for target (all code is position independent)

Well the good news is that both my mingw64-w64 and mingw64-w32 build and regress fine with these edits. Just need to know what to include and I guess for now I can just force the inlining if mingw64 (might even need to do it for regular mingw )

comment:17 by robe, 11 years ago

Mat,

attached is my first cut patch. I'm rerunning using regular ./configure make to make sure I didn't break that. I am puzzled how that manages to skip all these issues. I guess I'll need to compare the make differences between the two. Cmake version seems much faster to compile than regular ./configure make. I assume that is expected?

by robe, 11 years ago

comment:18 by robe, 11 years ago

Summary: CMake with mingw failCMake with mingw-w64 fail

changed the title because these were mingw-w64 specific changes. I haven't tested on the original mingw project nor do I intend to.

comment:19 by robe, 11 years ago

One thing to notice, most of the changes in this diff are just to prevent mingw64 from being treated like mingw32, and be just treated like a regular unix build chain. I'm wondering if there is some other logic elsewhere that needs to be changed which is causing the IS_NAN and HAS_LONG_LONG to not be picked up right. I'll investigate later these MINGW32 hard-codings and make sure they are not forcing mingw64 from going doing a faulty chain.

BTW: I've documented build instructions here:

http://trac.osgeo.org/geos/wiki/BuildingOnMINGW64CMake

in reply to:  15 comment:20 by mloskot, 11 years ago

Replying to robe:

I had to explicitly add

#include <geos/platform.h> 

to the top of include/geos/inline.h

AFAIK, inline.h should not include any headers, it is injected at the bottom of other header files. Please, consult this change with Sandro.

and include/geos/profile.h

Then it would pick up the

defined(__MINGW64_VERSION_MAJOR)

Given that I'm wondering if its better to just include <stdlib> directly in those files or if platform.h is better.

I doubt it's a good idea to include any header in the inline.h.

I'm still bugged about why the CMAKE -DGEOS_ENABLE_INLINE=YES is not working.

It is working. We can see -DGEOS_INLINE in the command line for the compiler invocation, so this CMake option is working, AFAICT. What may not be working, is something later.

Could it be that maybe its partly working. I'm thinking it might be the same thing that the files being compiled where the error happens are not getting the -DGEOS_ENABLE_INLINE because they aren't .c .cpp files.

All headres that include inline.h are eventually included in some .cpp files, so GEOS_INLINE should be picked up.

I believe all of them are the .inl files and they register duplicate definition.

If GEOS_INLINE causes multiple definitions, then GCC on Linux and Visual C++ would complain about them, for sure.

If there is different behaviour from MinGW, the only comparison baseline I'd consider sensible is to compare compilation/linker flags in corresponding command lines (CMake vs autotools).

If both, CMake and autotools, generate equivalent command lines with all flags and symbols we expect, then the build configurations have nothing to do with the MinGW issue. Especially, if autotools-based build works perfectly well in Unix environment, without breaking the [One Definition Rule](http://en.wikipedia.org/wiki/One_Definition_Rule).

On MinGW side, perhaps analysing full output preprocessing output for single .cpp file which (directly or indirectly) includes the platform.h and/or inline.h would give any clues why the MINGW preprocessor define is not defined, something like:

cd trunk
g++ -dM -E -xc++ -I$PWD/include src/geom/LineSegment.cpp
g++ -dM -E -xc++ -DGEOS_INLINE -I$PWD/include src/geom/LineSegment.cpp

Then see if geos/geom/LineSegment.inl has been included and if you can grep out any

#define MINGW64_VERSION_MAJOR

in reply to:  17 comment:21 by mloskot, 11 years ago

Replying to robe:

I'm rerunning using regular ./configure make to make sure I didn't break that. I am puzzled how that manages to skip all these issues.

Yes, me too. Although I don't care about MinGW, I'm sorry I have to leave you with it on your own.

Cmake version seems much faster to compile than regular ./configure make. I assume that is expected?

Yes, it is.

A bit of anecdote:

Bernhard: Glynn, Are you using something platform portable like libtool already? Glynn: No, and I don't intend to; actually, if GRASS ever starts using libtool, I'm off.

comment:22 by robe, 11 years ago

mloskot perhaps I'm doing something wrong or that is why. If I do either of these:

g++ -dM -E -xc++ -I$PWD/include src/geom/LineSegment.cpp
g++ -dM -E -xc++ -DGEOS_INLINE -I$PWD/include src/geom/LineSegment.cpp

I get:

include/geos/geom/Coordinate.h:19:51: fatal
 error: geos/platform.h: No such file or directory
 #include <geos/platform.h> // for DoubleNotANumber

comment:23 by robe, 11 years ago

actually I really don't have that since that exists in the my cmake build dir

comment:24 by robe, 11 years ago

Hmm well it seems -DGEOS_ENABLE_INLINE was enabled by default. I tried passing -DGEOS_ENABLE_INLINE=NO to force it off and then I no longer even had to fiddle with inline.h.

I was changing a bunch of files adding platform.h in them so I'll have to take those out and start from scratch to verify that is the solution.

comment:25 by mloskot, 11 years ago

It does not seem, but (despite that I didn't remember) it is *ON* by default. ON is exactly what the CMakeLists.txt reports

option(GEOS_ENABLE_INLINE
  "Set to OFF|ON (default) to control GEOS compilation with small functions inlining" ON)

comment:26 by robe, 11 years ago

mloskot,

After all is said and done, I redownloaded the nightly tarball (just to make sure I had no configure junk left from a past make clean etc.).

and in the end the only thing I needed to change to make this work with mingw64 was the profile.h and be sure I set GEOS_ENABLE_INLINE=NO

Attached is my patch.

My final build script looks like this:

OS_BUILD=64
PROJECTS=/c/ming${OS_BUILD}/projects
cd ${PROJECTS}/geos/branches/geos-3.4
export PATH="${PATH}:/c/ming${OS_BUILD}/cmake-2.8.11-win32-x86/bin"
export GEOS_VER=3.4.0dev
export GEOS_BUILDTYPE=gcc_48_cmake
cd ../
rm -rf build
mkdir -p build
cd build
cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=${PROJECTS}/geos/rel-${GEOS_VER}w${OS_BUILD}${GEOS_BUILDTYPE} -DHAVE_STD_ISNAN=1 -DHAVE_LONG_LONG_INT_64=1 -DGEOS_ENABLE_INLINE=NO  -DGEOS_ENABLE_TESTS=ON  ../geos-3.4

make 
make install
make test

I'm not sure I need the HAVE_LONG_LONG_INT_64 anymore but was too tired to take it out. I know I don't for building the 32-bit chain.

by robe, 11 years ago

Attachment: mingw64_profiler.diff added

comment:27 by mloskot, 11 years ago

Owner: changed from mloskot to robe

Regina,

The patch looks fine to me, no intrusion on the non-MinGW grounds. So, if I were you, I'd commit, unless Sandro has objection.

comment:28 by robe, 11 years ago

I don't have commit rights to Geos or I better not since I'm not a GEOS developer and was never voted in as one.

comment:29 by strk, 11 years ago

Owner: changed from robe to strk
Status: newassigned

Is this needed in 3.3 branch too ?

comment:30 by strk, 11 years ago

Robe your patch committed as r3815 in 3.3 branch and r3816 in trunk. If everything is fine please close this extra-long ticket

comment:31 by robe, 11 years ago

Resolution: fixed
Status: assignedclosed

winnie doesn't seem to be fairing any worse with these changes than she was before so I think we are fine for both regular configure and cmake.

I'll eventually switch her to just building with cmake and start at 2.2. Or even possibly at 2.1 distributing geos cmake builds rather than libtool builds. I think that might actually make it easier for people to swap out the VC++ geos builds since it seems the VC++ dll names and ones generated by Cmake (mingw64) are the same.

comment:32 by akks, 10 years ago

Cc: akks added
Resolution: fixed
Status: closedreopened

Compilation on MinGW without -DHAVE_STD_ISNAN=1 still fails.

These detections seems to be incorrect: -- Performing Test HAVE_STD_ISNAN - Failed -- Performing Test HAVE_STD_ISFINITE - Failed and -DHAVE_STD_ISNAN=1 is just a workaround.

Maybe it is better to check for std::isnan and std::isfinite more reliably? (see also http://cmake.3232098.n2.nabble.com/Checking-function-or-symbol-in-namespace-tt4430504.html#none ).

I used the attached patch and the compilation passed on mingw-w64 cmake -G "MinGW Makefiles" mingw32-make

Could you please check it?

by akks, 10 years ago

Attachment: std_check.diff added

more reliable detecion of std::isnan and std::isfinite

comment:33 by akks, 10 years ago

Did anyone notice this ticket? Should I create PR on Github?

comment:34 by robe, 10 years ago

akks - no don't do that. Your diff is fine. Just been preoccupied with other things.

strk refuses to deal with anything involving CMake and mingw64, and since I'm the only one in group running both CMake and mingw64, guess that falls on me to test this.

comment:35 by robe, 10 years ago

Owner: changed from strk to robe
Status: reopenednew

comment:36 by robe, 10 years ago

Milestone: 3.4.03.4.3

comment:37 by strk, 7 years ago

Milestone: 3.4.33.6.1

Ticket retargeted after milestone deleted

comment:38 by strk, 7 years ago

Milestone: 3.6.13.6.2

Ticket retargeted after milestone closed

comment:39 by mloskot, 7 years ago

MinGW issues are PITA and I still can't help as I don't use it locally.

However, for another project, I managed to set up MinGW environments on AppVeyor CI

https://github.com/lexicalunit/nanodbc/blob/master/appveyor.yml

FYI, I have fixed and updated the appveyor.yml config (trunk and branches/3.6, #813). It is sound and green now. Feel free to add MinGW. Even if it fails, we can mark it with matrix.allow_failures (see the linked appveyor.yml) to keep the overall build status green.

comment:40 by robe, 7 years ago

Resolution: fixed
Status: newclosed

I forget what this is about. I don't think I get errors anymore in cmake tests under mingw. Closing it.

Note: See TracTickets for help on using tickets.