[pgrouting-dev] Issue with compiling 64-bit under mingw64

Paragon Corporation lr at pcorp.us
Mon Apr 8 01:06:15 PDT 2013


Yeh it passes all tests on 64-bit

So I guess just need to figure out what to do with the line part.  

#ifdef __MINGW64__
#define ELOG_H
#include <winsock2.h>
#endif 

-----Original Message-----
From: pgrouting-dev-bounces at lists.osgeo.org
[mailto:pgrouting-dev-bounces at lists.osgeo.org] On Behalf Of Paragon
Corporation
Sent: Monday, April 08, 2013 4:01 AM
To: 'pgRouting developers mailing list'
Subject: Re: [pgrouting-dev] Issue with compiling 64-bit under mingw64

Okay got it to compile

1) I had a dirty tree so restarted from scratch and then I started to get
the error you got even without the -DWITH_TSP=ON

2) For 64-bit I guess we can't have this line

#ifdef __MINGW64__
#define ELOG_H
#include <winsock2.h>
#endif

I took that out and then it compiled okay -- so maybe you should only check
for  the 32-bit case there (I forget what the flag is)


I still need to run the regression, but its now generating the tsp dll for
64-bit with 

cmake -G "MSYS Makefiles" -DWITH_DD=ON ..
make && make install

Thanks,
Regina



-----Original Message-----
From: pgrouting-dev-bounces at lists.osgeo.org
[mailto:pgrouting-dev-bounces at lists.osgeo.org] On Behalf Of Paragon
Corporation
Sent: Monday, April 08, 2013 3:16 AM
To: 'pgRouting developers mailing list'
Subject: Re: [pgrouting-dev] Issue with compiling 64-bit under mingw64

Okay just checked my ming32 and I was wrong,

It still builds the librouting_tsp.dll without the -DWITH_TSP=ON

If I take it out of my ming64, then no attempt at building the tsp dll seems
to be done, but it compiles the others.

I wonder if the issue is that a 32-bit lib is sneaking in somewhere.  That's
the occupational hazard of using 32-bit tools to build a 64-bit library.

When it comes across a 32-bit with a name it thinks it needs, things get
very confusing.

 
Thanks,
Regina
-----Original Message-----
From: pgrouting-dev-bounces at lists.osgeo.org
[mailto:pgrouting-dev-bounces at lists.osgeo.org] On Behalf Of Paragon
Corporation
Sent: Monday, April 08, 2013 2:53 AM
To: 'pgRouting developers mailing list'
Subject: Re: [pgrouting-dev] Issue with compiling 64-bit under mingw64

Not off hand.  I can look again and rebuild.  When I pulled that was the
latest without jumping into 4.6 GCC.  With 4.6 GCC I had major issues with
dealing with C++ code (particularly Geos) with it randomly crashing so
avoided it like the plague.

I thought both my ming32 and ming64 are running the same prerelease versions
though 

My ming64 compiles fine by taking out the 

-DWITH_TSP=ON

But then it doesn't regress because the create extension seems to load tsp
functions.

I'll have to double-check my ming32, but as I recall if I take out the
-DWITH_TSP it also fails the tests because its missing the tsp dll.

Thanks,
Regina

-----Original Message-----
From: pgrouting-dev-bounces at lists.osgeo.org
[mailto:pgrouting-dev-bounces at lists.osgeo.org] On Behalf Of Stephen
Woodbridge
Sent: Sunday, April 07, 2013 8:51 PM
To: pgrouting-dev at lists.osgeo.org
Subject: Re: [pgrouting-dev] Issue with compiling 64-bit under mingw64

Regina,

I just noticed that:

woodbri at imaptools /C/ming64/projects/pgrouting/build/src/tsp/src
$ gcc --version
gcc.exe (GCC) 4.5.4 20111030 (prerelease) [svn/rev.180676 - mingw-w64/oz]
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

our version of the gcc is a prerelease, do you know if there is a new
version that might be better? I looked at the sourceforge but it has a mess
of versions and I think it better is we stay in sync with one another.

-Steve

On 4/7/2013 8:19 PM, Stephen Woodbridge wrote:
> Ok, I just got back and I have the same problem on 64bit now that I 
> have a system to check it on.
>
> -DWITH_TSP=ON  should not be included any more. I may have forgotten 
> to take it out of makepgroutingw64.sh
>
> After looking at the compile error on 64 bit for 6 hours, I'm either 
> totally missing something obvious or this is looking like GNU compiler
bug.
>
> If you run the tools/makepgroutingw64.sh and then after it bombs:
>
> cd build
> make VERBOSE=1
>
> and this will should you something like:
>
> ...
> Scanning dependencies of target routing_tsp [ 66%] Building C object 
> src/tsp/src/CMakeFiles/routing_tsp.dir/tsp.c.obj
> [ 73%] Building C object
> src/tsp/src/CMakeFiles/routing_tsp.dir/tsplib.c.obj
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c: In function
> 'findEulerianPath':
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c:183:14: error: 'ERROR'
> undeclared (first use in this function)
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c:183:14: note: each 
> undeclared identifier is reported only once for each function it 
> appears in
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c: In function
> 'find_tsp_solution':
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c:446:18: error: 'FATAL'
> undeclared (first use in this function)
> make[2]: *** [src/tsp/src/CMakeFiles/routing_tsp.dir/tsplib.c.obj]
> Error 1
> make[1]: *** [src/tsp/src/CMakeFiles/routing_tsp.dir/all] Error 2
> make: *** [all] Error 2
>
> woodbri at imaptools /c/ming64/projects/pgrouting $ cd build
>
> woodbri at imaptools /c/ming64/projects/pgrouting/build
> $ make VERBOSE=1
> /C/ming64/msys/bin/cmake.exe -H/C/ming64/projects/pgrouting 
> -B/C/ming64/projects/pgrouting/build --check-build-system 
> CMakeFiles/Makefile.cmake 0 /C/ming64/msys/bin/cmake.exe -E 
> cmake_progress_start /C/ming64/projects/pgrouting/build/CMakeFiles
> /C/ming64/projects/pgrouting/build/CMakeFiles/progress.marks
> make -f CMakeFiles/Makefile2 all
> make[1]: Entering directory `/c/ming64/projects/pgrouting/build'
> make -f src/shooting_star/src/CMakeFiles/shooting_star.dir/build.make
> src/shooting_star/src/CMakeFiles/shooting_star.dir/depend
> make[2]: Entering directory `/c/ming64/projects/pgrouting/build'
> /C/ming64/msys/bin/cmake.exe -E cmake_depends "MSYS Makefiles"
> /C/ming64/projects/pgrouting
> /C/ming64/projects/pgrouting/src/shooting_star/src
> /C/ming64/projects/pgrouting/build
> /C/ming64/projects/pgrouting/build/src/shooting_star/src
> /C/ming64/projects/pgrouting/build/src/shooting_star/src/CMakeFiles/sh
> ooting_star.dir/DependInfo.cmake
> --color=
> make[2]: Leaving directory `/c/ming64/projects/pgrouting/build'
> make -f src/shooting_star/src/CMakeFiles/shooting_star.dir/build.make
> src/shooting_star/src/CMakeFiles/shooting_star.dir/build
> make[2]: Entering directory `/c/ming64/projects/pgrouting/build'
> make[2]: Nothing to be done for
> `src/shooting_star/src/CMakeFiles/shooting_star.dir/build'.
> make[2]: Leaving directory `/c/ming64/projects/pgrouting/build'
> /C/ming64/msys/bin/cmake.exe -E cmake_progress_report 
> /C/ming64/projects/pgrouting/build/CMakeFiles  11 12 [ 13%] Built 
> target shooting_star make -f 
> src/trsp/src/CMakeFiles/trsp.dir/build.make
> src/trsp/src/CMakeFiles/trsp.dir/depend
> make[2]: Entering directory `/c/ming64/projects/pgrouting/build'
> /C/ming64/msys/bin/cmake.exe -E cmake_depends "MSYS Makefiles"
> /C/ming64/projects/pgrouting /C/ming64/projects/pgrouting/src/trsp/src
> /C/ming64/projects/pgrouting/build
> /C/ming64/projects/pgrouting/build/src/trsp/src
> /C/ming64/projects/pgrouting/build/src/trsp/src/CMakeFiles/trsp.dir/De
> pendInfo.cmake
> --color=
> make[2]: Leaving directory `/c/ming64/projects/pgrouting/build'
> make -f src/trsp/src/CMakeFiles/trsp.dir/build.make
> src/trsp/src/CMakeFiles/trsp.dir/build
> make[2]: Entering directory `/c/ming64/projects/pgrouting/build'
> make[2]: Nothing to be done for `src/trsp/src/CMakeFiles/trsp.dir/build'.
> make[2]: Leaving directory `/c/ming64/projects/pgrouting/build'
> /C/ming64/msys/bin/cmake.exe -E cmake_progress_report 
> /C/ming64/projects/pgrouting/build/CMakeFiles  13 14 15 [ 33%] Built 
> target trsp make -f src/astar/src/CMakeFiles/astar.dir/build.make
> src/astar/src/CMakeFiles/astar.dir/depend
> make[2]: Entering directory `/c/ming64/projects/pgrouting/build'
> /C/ming64/msys/bin/cmake.exe -E cmake_depends "MSYS Makefiles"
> /C/ming64/projects/pgrouting
> /C/ming64/projects/pgrouting/src/astar/src
> /C/ming64/projects/pgrouting/build
> /C/ming64/projects/pgrouting/build/src/astar/src
> /C/ming64/projects/pgrouting/build/src/astar/src/CMakeFiles/astar.dir/
> DependInfo.cmake
> --color=
> make[2]: Leaving directory `/c/ming64/projects/pgrouting/build'
> make -f src/astar/src/CMakeFiles/astar.dir/build.make
> src/astar/src/CMakeFiles/astar.dir/build
> make[2]: Entering directory `/c/ming64/projects/pgrouting/build'
> make[2]: Nothing to be done for
`src/astar/src/CMakeFiles/astar.dir/build'.
> make[2]: Leaving directory `/c/ming64/projects/pgrouting/build'
> /C/ming64/msys/bin/cmake.exe -E cmake_progress_report 
> /C/ming64/projects/pgrouting/build/CMakeFiles  1 2 [ 46%] Built target 
> astar make -f src/dijkstra/src/CMakeFiles/dijkstra.dir/build.make
> src/dijkstra/src/CMakeFiles/dijkstra.dir/depend
> make[2]: Entering directory `/c/ming64/projects/pgrouting/build'
> /C/ming64/msys/bin/cmake.exe -E cmake_depends "MSYS Makefiles"
> /C/ming64/projects/pgrouting
> /C/ming64/projects/pgrouting/src/dijkstra/src
> /C/ming64/projects/pgrouting/build
> /C/ming64/projects/pgrouting/build/src/dijkstra/src
> /C/ming64/projects/pgrouting/build/src/dijkstra/src/CMakeFiles/dijkstr
> a.dir/DependInfo.cmake
> --color=
> make[2]: Leaving directory `/c/ming64/projects/pgrouting/build'
> make -f src/dijkstra/src/CMakeFiles/dijkstra.dir/build.make
> src/dijkstra/src/CMakeFiles/dijkstra.dir/build
> make[2]: Entering directory `/c/ming64/projects/pgrouting/build'
> make[2]: Nothing to be done for
> `src/dijkstra/src/CMakeFiles/dijkstra.dir/build'.
> make[2]: Leaving directory `/c/ming64/projects/pgrouting/build'
> /C/ming64/msys/bin/cmake.exe -E cmake_progress_report 
> /C/ming64/projects/pgrouting/build/CMakeFiles  3 4 [ 60%] Built target 
> dijkstra make -f CMakeFiles/routing.dir/build.make 
> CMakeFiles/routing.dir/depend
> make[2]: Entering directory `/c/ming64/projects/pgrouting/build'
> /C/ming64/msys/bin/cmake.exe -E cmake_depends "MSYS Makefiles"
> /C/ming64/projects/pgrouting /C/ming64/projects/pgrouting 
> /C/ming64/projects/pgrouting/build /C/ming64/projects/pgrouting/build
> /C/ming64/projects/pgrouting/build/CMakeFiles/routing.dir/DependInfo.c
> make
> --color=
> make[2]: Leaving directory `/c/ming64/projects/pgrouting/build'
> make -f CMakeFiles/routing.dir/build.make CMakeFiles/routing.dir/build
> make[2]: Entering directory `/c/ming64/projects/pgrouting/build'
> make[2]: Nothing to be done for `CMakeFiles/routing.dir/build'.
> make[2]: Leaving directory `/c/ming64/projects/pgrouting/build'
> /C/ming64/msys/bin/cmake.exe -E cmake_progress_report 
> /C/ming64/projects/pgrouting/build/CMakeFiles
> [ 60%] Built target routing
> make -f src/tsp/src/CMakeFiles/routing_tsp.dir/build.make
> src/tsp/src/CMakeFiles/routing_tsp.dir/depend
> make[2]: Entering directory `/c/ming64/projects/pgrouting/build'
> /C/ming64/msys/bin/cmake.exe -E cmake_depends "MSYS Makefiles"
> /C/ming64/projects/pgrouting /C/ming64/projects/pgrouting/src/tsp/src
> /C/ming64/projects/pgrouting/build
> /C/ming64/projects/pgrouting/build/src/tsp/src
> /C/ming64/projects/pgrouting/build/src/tsp/src/CMakeFiles/routing_tsp.
> dir/DependInfo.cmake
> --color=
> make[2]: Leaving directory `/c/ming64/projects/pgrouting/build'
> make -f src/tsp/src/CMakeFiles/routing_tsp.dir/build.make
> src/tsp/src/CMakeFiles/routing_tsp.dir/build
> make[2]: Entering directory `/c/ming64/projects/pgrouting/build'
> /C/ming64/msys/bin/cmake.exe -E cmake_progress_report 
> /C/ming64/projects/pgrouting/build/CMakeFiles 10 [ 66%] Building C 
> object src/tsp/src/CMakeFiles/routing_tsp.dir/tsplib.c.obj
> cd /C/ming64/projects/pgrouting/build/src/tsp/src && 
> /c/ming64/mingw64/bin/gcc.exe  -Drouting_tsp_EXPORTS -O2 -g
> -frounding-math @CMakeFiles/routing_tsp.dir/includes_C.rsp   -o
> CMakeFiles/routing_tsp.dir/tsplib.c.obj   -c
> /C/ming64/projects/pgrouting/src/tsp/src/tsplib.c
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c: In function
> 'findEulerianPath':
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c:183:14: error: 'ERROR'
> undeclared (first use in this function)
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c:183:14: note: each 
> undeclared identifier is reported only once for each function it 
> appears in
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c: In function
> 'find_tsp_solution':
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c:446:18: error: 'FATAL'
> undeclared (first use in this function)
> make[2]: *** [src/tsp/src/CMakeFiles/routing_tsp.dir/tsplib.c.obj]
> Error 1
> make[2]: Leaving directory `/c/ming64/projects/pgrouting/build'
> make[1]: *** [src/tsp/src/CMakeFiles/routing_tsp.dir/all] Error 2
> make[1]: Leaving directory `/c/ming64/projects/pgrouting/build'
> make: *** [all] Error 2
>
> So if I look at the commands that are getting executed you will notice 
> above on the gcc.exe there is:
>
>    @CMakeFiles/routing_tsp.dir/includes_C.rsp
>
> This appears to be a way to include command line options from a file. 
> So I just copied the options from the file to the commandline in the 
> next
> command:
>
> woodbri at imaptools /c/ming64/projects/pgrouting/build
> $ cd /C/ming64/projects/pgrouting/build/src/tsp/src
>
> woodbri at imaptools /C/ming64/projects/pgrouting/build/src/tsp/src
> $ /c/ming64/mingw64/bin/gcc.exe  -Drouting_tsp_EXPORTS -O2 -g 
> -frounding-math 
> -Ic:/ming64/projects/pgx64/pg92/include/postgresql/server
> -IC:/ming64/projects/pgrouting/src/astar/src
> -IC:/ming64/projects/pgrouting/src/dijkstra/src
> -IC:/ming64/projects/pgrouting/src/shooting_star/src
> -IC:/ming64/projects/pgrouting/src/tsp/src
> -IC:/ming64/projects/pgrouting/src/driving_distance/src
> -IC:/ming64/projects/pgrouting/src/trsp/src
> -Ic:/ming64/msys/local/include/boost-1_46_1
> -Ic:/ming64/projects/pgx64/pg92/include/postgresql/server/port/win32 -o
> CMakeFiles/routing_tsp.dir/tsplib.c.obj   -c
> /C/ming64/projects/pgrouting/src/tsp/src/tsplib.c
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c: In function
> 'findEulerianPath':
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c:183:14: error: 'ERROR'
> undeclared (first use in this function)
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c:183:14: note: each 
> undeclared identifier is reported only once for each function it 
> appears in
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c: In function
> 'find_tsp_solution':
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c:446:18: error: 'FATAL'
> undeclared (first use in this function)
>
> And tried to convert the "C:" to "/c" in this command:
>
> woodbri at imaptools /C/ming64/projects/pgrouting/build/src/tsp/src
> $ /c/ming64/mingw64/bin/gcc.exe  -Drouting_tsp_EXPORTS -O2 -g 
> -frounding-math 
> -I/c/ming64/projects/pgx64/pg92/include/postgresql/server
> -I/c/ming64/projects/pgrouting/src/astar/src
> -I/c/ming64/projects/pgrouting/src/dijkstra/src
> -I/c/ming64/projects/pgrouting/src/shooting_star/src
> -I/c/ming64/projects/pgrouting/src/tsp/src
> -I/c/ming64/projects/pgrouting/src/driving_distance/src
> -I/c/ming64/projects/pgrouting/src/trsp/src
> -I/c/ming64/msys/local/include/boost-1_46_1
> -I/c/ming64/projects/pgx64/pg92/include/postgresql/server/port/win32 -o
> CMakeFiles/routing_tsp.dir/tsplib.c.obj   -c
> /C/ming64/projects/pgrouting/src/tsp/src/tsplib.c
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c: In function
> 'findEulerianPath':
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c:183:14: error: 'ERROR'
> undeclared (first use in this function)
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c:183:14: note: each 
> undeclared identifier is reported only once for each function it 
> appears in
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c: In function
> 'find_tsp_solution':
> c:/ming64/projects/pgrouting/src/tsp/src/tsplib.c:446:18: error: 'FATAL'
> undeclared (first use in this function)
>
> Lets check that the file exists, and it does. This file gets included 
> from postgres.h
>
> $ /bin/find.exe /c/ming64/projects/pgx64/pg92/ -name postgres.h -print 
> /c/ming64/projects/pgx64/pg92/include/postgresql/server/postgres.h
>
> $ /bin/find.exe /c/ming64/projects/pgx64/pg92/ -name elog.h -print 
> /c/ming64/projects/pgx64/pg92/include/postgresql/server/utils/elog.h
>
> So I'm left with:
>
> 1. it works on 32 bit
> 2. the -Idirectory is included in the gcc 3. the include files exist 
> in the correct places 4. gcc does not appear to be loading them, but I 
> do not know why
>
> Anyone run into this problem before?
> Anyone have any ideas?
>
> -Steve
> _______________________________________________
> pgrouting-dev mailing list
> pgrouting-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pgrouting-dev

_______________________________________________
pgrouting-dev mailing list
pgrouting-dev at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


_______________________________________________
pgrouting-dev mailing list
pgrouting-dev at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


_______________________________________________
pgrouting-dev mailing list
pgrouting-dev at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev


_______________________________________________
pgrouting-dev mailing list
pgrouting-dev at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/pgrouting-dev




More information about the pgrouting-dev mailing list