Opened 13 years ago

Closed 11 years ago

#276 closed defect (fixed)

"make check" failed at geos_unit on mingw

Reported by: sanak Owned by: geos-devel@…
Priority: major Milestone: 3.3.0
Component: Default Version: main
Severity: Unassigned Keywords: mingw
Cc:

Description

"make check" failed(crushed) at geos_unit on mingw as following versions.

  • svn-trunk(r2610)
  • 3.1.1(tar.bz2)
  • 3.0.4(tar.bz2)

After remove "-O2" option from CXXFLAGS in tests/unit/Makefile, and remove all object files(*.o) in tests/unit folder, then execute "make check" again, geos_unit can execute normally, and all tests passed.

Regards,

Attachments (1)

geos_unit-mingw.patch (551 bytes ) - added by sanak 13 years ago.
MinGW diff command patch

Download all attachments as: .zip

Change History (9)

comment:1 by pramsey, 13 years ago

I'm not sure how to address this, the flags are inherited from the lower level Makefile. You could compile the whole suite w/o optimization or just not compile w/ 'check'. Do you have a patch?

by sanak, 13 years ago

Attachment: geos_unit-mingw.patch added

MinGW diff command patch

in reply to:  1 comment:2 by sanak, 13 years ago

pramsey,

You could compile the whole suite w/o optimization

I had build whole suite without optimization(./configure CXXFLAGS="-g" && make && make check), but XMLTester crushed at heisenbugs.xml and stmlf-cases-20070119.xml this time.

or just not compile w/ 'check'.

The compilation seems to be no problem, because geos_unit.exe was created. The crush occurred when shell script(tests/unit/testrunner) execute geos_unit(.exe).

Do you have a patch?

Yes, please see the attached file(geos_unit-mingw.patch).

Regards,

comment:3 by strk, 13 years ago

Sanak, does the crash still occur with r2669 ? Can you attach a backtrace ? Which version of mingw are you using ? Which version of GCC does it contain ?

in reply to:  3 comment:4 by sanak, 13 years ago

strk,

Sanak, does the crash still occur with r2669 ?

Yes, it still occur with r2669.

Can you attach a backtrace ?

When I build geos trunk(r2669) for gdb(backtrace) with "-g" option(./configure CXXFLAGS="-g" && make && make check), xmltester crash at heisenbugs.xml and stmlf-cases-20070119.xml.

  • XMLTester gdb output
    $ gdb ./XMLTester
    GNU gdb 6.3
    Copyright 2004 Free Software Foundation, Inc.
    GDB is free software, covered by the GNU General Public License, and you are
    welcome to change it and/or distribute copies of it under certain conditions.
    Type "show copying" to see the conditions.
    There is absolutely no warranty for GDB.  Type "show warranty" for details.
    This GDB was configured as "i686-pc-mingw32"...(no debugging symbols found)
    
    (gdb) run ./tests/fme.xml
    Starting program: e:\mingw\geos-trunk\tests\xmltester/./XMLTester.exe ./tests/fme.xml
    Files: 1
    Tests: 1
    Failed: 0
    Succeeded: 1
    
    Program exited normally.
    (gdb) run ./tests/heisenbugs.xml
    Starting program: e:\mingw\geos-trunk\tests\xmltester/./XMLTester.exe ./tests/heisenbugs.xml
    
    Program exited with code 030000000005.
    (gdb) backtrace
    (gdb) No stack.
    
    (gdb) No stack.
    run ./tests/stmlf/stmlf-cases-20070119.xml
    Starting program: e:\mingw\geos-trunk\tests\xmltester/./XMLTester.exe ./tests/stmlf/stmlf-cases-20070119.xml
    
    Program exited with code 030000000005.
    (gdb) backtrace
    (gdb) No stack.
    

And, geos_unit didn't crash. (but linearref::LocationIndexedLine assertion failed as follows.)

  • geos_unit output
    :
    geos::io::WKBReader: .......
    geos::linearref::LocationIndexedLine: ..........[11=F].............
    geos::noding::BasicSegmentString: ....
    geos::noding::NodedSegmentString: .....
    :
    ---> group: geos::linearref::LocationIndexedLine, test: test<11>
         problem: assertion failed
    
    tests summary: failures:1 ok:540
    FAIL: geos_unit.exe
    

Which version of mingw are you using ? Which version of GCC does it contain ?

I use MinGW-5.1.4 and g++(GCC)-3.4.5 (mingw-vista special r3) on Windows XP SP3. (I had followed the PostGIS Windows compilation guide(http://trac.osgeo.org/postgis/wiki/UsersWikiWinCompile ))

Is there person who had succeeded "make check" on Windows MinGW environment?

And, should I change this Milestone from 3.2.0 to 3.3.0?

Regards,

comment:5 by strk, 13 years ago

Check if your .exe is really a binary file, as it should be a shell script instead (libtool script). If it is a libtool script you'll need to use something like: $ libtool --mode=execute gdb ./XMLTester

I don't compile with mingw so can't help there. Probably worth moving to 3.3.0 milestone.

comment:6 by strk, 13 years ago

Milestone: 3.2.03.3.0

comment:7 by robe, 13 years ago

Just noticed its failing for me too, I guess I wasn't paying attention since the .dlls were being generated and I have it as part of my PostGIS build script. though I thought I was paying more attention last week and it was passing make check. This may not be related to this issue, but I'm getting the below error at the end of my

make clean && make && make check

C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line.
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.
.libs/libgeos_c_la-geos_ts_c.o: In function `GEOSProject_r':
c:/projects/geos/trunk/capi/geos_ts_c.cpp:4378: undefined reference to `geos::linearref::LengthIndexedLine::LengthIndexedLine(geos::geom::Geometry const*)'
c:/projects/geos/trunk/capi/geos_ts_c.cpp:4378: undefined reference to `geos::linearref::LengthIndexedLine::project(geos::geom::Coordinate const&) const'
.libs/libgeos_c_la-geos_ts_c.o: In function `GEOSInterpolate_r':
c:/projects/geos/trunk/capi/geos_ts_c.cpp:4385: undefined reference to `geos::linearref::LengthIndexedLine::LengthIndexedLine(geos::geom::Geometry const*)'
c:/projects/geos/trunk/capi/geos_ts_c.cpp:4386: undefined reference to `geos::linearref::LengthIndexedLine::extractPoint(double) const'
collect2: ld returned 1 exit status
make[1]: *** [libgeos_c.la] Error 1
make[1]: Leaving directory `/c/projects/geos/trunk/capi'
make: *** [all-recursive] Error 1

comment:8 by robe, 11 years ago

Resolution: fixed
Status: newclosed

This works for me, but my make check tests are failing on 4 tests. I'll put as separate ticket.

Note: See TracTickets for help on using tickets.