[pgrouting-dev] Issue with compiling 64-bit under mingw64
Stephen Woodbridge
woodbri at swoodbridge.com
Mon Apr 8 06:18:29 PDT 2013
On 4/8/2013 4:06 AM, Paragon Corporation wrote:
> 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
Ok, so I guess the obvious question for me is does it work on 32 bit
without this. Maybe it is just old cruft that we don't need in either
tree with the current tools.
-Steve
> -----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
>
>
> _______________________________________________
> 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