Opened 12 years ago

Closed 12 years ago

Last modified 11 years ago

#528 closed defect (wontfix)

GEOS CMake Windows SDK x64 crashes

Reported by: robe Owned by: mloskot
Priority: major Milestone: 3.3.6
Component: Build/Install (cmake) Version: 3.3.3
Severity: Unassigned Keywords: cmake, windows, msvc
Cc:

Description

Following Paul's instructions http://trac.osgeo.org/postgis/wiki/DevWikiWinMingWSys_20_MSVC

but using Microsoft Windows 7.1 (x64) SDK (should be equivalent VC2008)

When doing make check in PostGIS I get the same crash on cunit -- makevalid exception test.

So it seems exceptions aren't being handled right for windows 64-bit.

NOTe i get the same failures when compiling on mingw64 for anything higher the gcc 4.5.4. (gcc 4.6.3, gcc 4.6.1)

I also ran what I guessed is how you test

nmake test
Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

Running tests...
Test project C:/ming64/projects/geos/branches/geos-3.3.3vcbuild
    Start 1: geos_unit
1/4 Test #1: geos_unit ........................***Failed    0.27 sec
    Start 2: xmltester
2/4 Test #2: xmltester ........................   Passed    5.59 sec
    Start 3: bug234
3/4 Test #3: bug234 ...........................   Passed    0.02 sec
    Start 4: TestSweepLineSpeed
4/4 Test #4: TestSweepLineSpeed ...............   Passed    3.27 sec

75% tests passed, 1 tests failed out of 4

Total Test time (real) =  11.81 sec

Change History (15)

comment:1 by robe, 12 years ago

refer to #518

I suspect they are similar issues. It always crashes when it tries to throw an error.

comment:2 by strk, 12 years ago

Milestone: 3.3.43.3.5

comment:3 by strk, 12 years ago

Milestone: 3.3.53.3.6

comment:4 by mloskot, 12 years ago

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

I may be back to this issue once I have Windows with VS available (unknown timeframe)

comment:5 by mloskot, 12 years ago

Keywords: windows msvc added
Summary: GEOS CMAKE Windows SDK x64 crashesGEOS CMake Windows SDK x64 crashes

comment:6 by mloskot, 12 years ago

AFAIK, Microsoft Windows 7.1 (x64) SDK provides cl.exe version 16.0, which is equivalent to Visual Studio 2010

comment:7 by robe, 12 years ago

Guys you think this is a similar issue to the one I'm having with PLv8js. PLVbjs works great until it tries to throw a js_error exception and then it crahses the postgresql backend.

http://code.google.com/p/plv8js/issues/detail?id=29

Though that does it even with my 4.5.4.

comment:8 by mloskot, 12 years ago

ATM, I have neither means nor time to play with GEOS on Windows, thus I can't help.

comment:9 by strk, 12 years ago

Resolution: wontfix
Status: newclosed

lot's of WONTFIX for windows, I'm loving it :>

comment:10 by mloskot, 12 years ago

@strk

Feel free to discard CMake tickets, perhaps you can clarify the policy on wiki or just remove the wiki and CMake stuff from SVN to avoid confusions.

comment:11 by mloskot, 11 years ago

Regina,

You may want to clarify what 64-bit build mode you are using:

  • x64 on x86 (x64 cross-compiler)
  • x64 on x64

See Enable a 64-Bit Visual C++ Toolset on the Command Line.

comment:12 by robe, 11 years ago

I'll have to try again sometime later. At the time I was following Paul's steps

http://trac.osgeo.org/postgis/wiki/DevWikiWinMingWSys_20_MSVC

as noted except he only had a 32-bit windows box and wasn't attempting a 64-bit compilation. Building the 32-bit with his instructions was fairly trivial.

I was building on a windows 2008 x64bit with Visual C++ express and then discovered after following numerous threads that I couldn't make 64-bit binaries with the express version alone and was required to download the windows 7 SDK 64-bit. Things may have changed since then.

Have you ever tried building a 64-bit version with an express version. I know the 32-bit is fairly trivial and I think its fairly trivial with the full VS as well since its packaged in and you just need to toggle the right checkbox.

comment:13 by robe, 11 years ago

FWIW: It does seem like the new VS 2012 C++ express does support compiling x64bit now. In theory anyway: http://www.microsoft.com/visualstudio/eng/downloads#d-2012-express

When I'm not afraid of corrupting my existing VS 2010 install and I actually have disk space and time I can spare, I'll give the tortuous exercise a try unless someone beats me to it. That said -- if they express can't build a 64-bit I ain't interested since I need the buildbot to be able to do this without forking over money for another developer license.

comment:14 by mloskot, 11 years ago

Regina,

We build GEOS 64-bit using VS2010 and VS2012 every day. I've just run unit tests (built using: cmake -G "Visual Studio 11 Win64") to confirm and the only Visual C++ specific issue I notice is this

capi::GEOSUnaryUnion: ........NOTICE: IllegalArgumentException: 
  EdgeEnd with coordinate -1.#IND -1.#IND invalid for node -1.#IND -1.#IND

but no crashes occur at all.

Regarding 64-bit compilation support, I'm not sure what do you exactly mean on that page, but looking at this announcement Visual Studio Express 2012 for Windows Desktop is Here, it says:

We also included the C++ 64-bit cross-compiler and libraries, so you can build 64-bit desktop applications without needing to install an older version of the Windows SDK.

comment:15 by robe, 11 years ago

Mat,

That was my point. That last time I tried this and gave up, VS 2012 express was not out yet, and VS 2010 Express (I think not absolutely sure I recall at the time they didn't have the C++ express download available for this which is why pramsey use VS 2008 (and I tried 2008) and VS 2008 C++ Express required the SDK to build 64-bit. I think VS 2010 c++ express also required SDK gathering from the article.

So in old to build without SDK, I need to be running VS 2012 express (which is a problem for older PostgreSQL (< 9.2 possibly 9.2 as well) since they aren't built with that)

Note: See TracTickets for help on using tickets.