compiling error core.c in mapcache with cygwin

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

compiling error core.c in mapcache with cygwin

Gery
Hello,

When installing mapcache in cygwin, `make` produced:

    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c: In function ‘mapcache_prefetch_tiles’:
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:81:3: error: unknown type name ‘apr_thread_t’
       apr_thread_t **threads;
       ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:82:3: error: unknown type name ‘apr_threadattr_t’
       apr_threadattr_t *thread_attrs;
       ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:83:7: warning: unused variable ‘nthreads’ [-Wunused-variable]
       int nthreads;
           ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:82:21: warning: unused variable ‘thread_attrs’ [-Wunused-variable]
       apr_threadattr_t *thread_attrs;
                         ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:81:18: warning: unused variable ‘threads’ [-Wunused-variable]
       apr_thread_t **threads;
                      ^

I searched for some hints about this error but didn't find anything. Looking for `apr_thread_t` and cygwin, I found some pages pointing to an error with apache, but not really sure if apache has something to do here.

thanks for any hints on this,

Gery
_______________________________________________
mapserver-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/mapserver-users
Reply | Threaded
Open this post in threaded view
|

Re: compiling error core.c in mapcache with cygwin

Andy Colson
On 01/03/2015 08:08 AM, Gery . wrote:

> Hello,
>
> When installing mapcache in cygwin, `make` produced:
>
>      /opt/mapcache/mapcache-rel-1-2-1/lib/core.c: In function ‘mapcache_prefetch_tiles’:
>      /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:81:3: error: unknown type name ‘apr_thread_t’
>         apr_thread_t **threads;
>         ^
>      /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:82:3: error: unknown type name ‘apr_threadattr_t’
>         apr_threadattr_t *thread_attrs;
>         ^
>      /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:83:7: warning: unused variable ‘nthreads’ [-Wunused-variable]
>         int nthreads;
>             ^
>      /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:82:21: warning: unused variable ‘thread_attrs’ [-Wunused-variable]
>         apr_threadattr_t *thread_attrs;
>                           ^
>      /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:81:18: warning: unused variable ‘threads’ [-Wunused-variable]
>         apr_thread_t **threads;
>                        ^
>
> I searched for some hints about this error but didn't find anything. Looking for `apr_thread_t` and cygwin, I found some pages pointing to an error with apache, but not really sure if apache has something to do here.
>
> thanks for any hints on this,
>
> Gery

You need the Apache Portable Runtime library.  Its a generic lib, not the webserver.

This gives an overview of all the area's it covers:

http://apr.apache.org/docs/apr/1.4/modules.html



-Andy

_______________________________________________
mapserver-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/mapserver-users
Reply | Threaded
Open this post in threaded view
|

Re: compiling error core.c in mapcache with cygwin

Gery
This post was updated on .
Andy Colson wrote
You need the Apache Portable Runtime library.  Its a generic lib, not the webserver.

This gives an overview of all the area's it covers:

http://apr.apache.org/docs/apr/1.4/modules.html
Thanks Andy for the reply, I do have apr, no idea if it's the generic lib or webserver one but they are 1.4 version:

Gery@gery /opt/mapcache/mapcache-rel-1-2-1/build
$ cygcheck -c | grep apr
apr1                                         1.4.8-1                          OK
aprutil1                                     1.5.4-1                          OK
libapr1                                      1.4.8-1                          OK
libapr1-debuginfo                       1.4.8-1                          OK
libapr1-devel                             1.4.8-1                          OK
libaprutil1                                 1.5.4-1                          OK
libaprutil1-debuginfo                   1.5.4-1                          OK
libaprutil1-devel                         1.5.4-1                          OK

My apache version and details here:

Gery@gery /opt/mapcache/mapcache-rel-1-2-1/build
$ apachectl2 -V
Server version: Apache/2.2.29 (Unix)
Server built:   Sep 17 2014 17:10:18
Server's Module Magic Number: 20051115:36
Server loaded:  APR 1.4.8, APR-Util 1.5.4
Compiled using: APR 1.4.8, APR-Util 1.5.2
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/usr"
 -D SUEXEC_BIN="/usr/bin/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2/httpd2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/etc/apache2/httpd.conf"

Based on Stephen's answer (http://stackoverflow.com/questions/27755442/compiling-error-core-c-in-mapcache-with-cygwin), I should compile mapcache only as cgi (ie., no apache module), so I used:

cmake .. -DCMAKE_LEGACY_CYGWIN_WIN32=0 -DWITH_SQLITE=0 -DWITH_MAPSERVER=1 -DMAPSERVER_LIBRARY="/opt/mapserver/mapserver-6.4.1/build/libmapserver.dll.a" -DCMAKE_PREFIX_PATH="/opt/mapserver/mapserver-6.4.1;" -DWITH_APACHE=0

but I get the same error pointing to core.c. I used mapserver flags to use cgi as explained by Pablo's post (http://lists.osgeo.org/pipermail/mapserver-users/2013-September/075296.html).

So, after cmake I get:

Gery@gery /opt/mapcache/mapcache-rel-1-2-1/build
$ cmake .. -DCMAKE_LEGACY_CYGWIN_WIN32=0 -DWITH_SQLITE=0 -DWITH_MAPSERVER=1 -DMAPSERVER_LIBRARY="/opt/mapserver/mapserver-6.4.1/build/libmapserver.dll.a" -DCMAKE_PREFIX_PATH="/opt/mapserver/mapserver-6.4.1;" -DWITH_APACHE=0
-- The C compiler identification is GNU 4.8.3
-- The CXX compiler identification is GNU 4.8.3
-- Check for working C compiler: /usr/bin/gcc.exe
-- Check for working C compiler: /usr/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++.exe
-- Check for working CXX compiler: /usr/bin/c++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for strncasecmp
-- Looking for strncasecmp - found
-- Looking for symlink
-- Looking for symlink - found
-- Found ZLIB: /usr/lib/libz.dll.a (found version "1.2.8")
-- Found PNG: /usr/lib/libpng.dll.a (found version "1.5.18")
-- Found JPEG: /usr/lib/libjpeg.dll.a
-- Found CURL: /usr/lib/libcurl.dll.a (found version "7.38.0")
-- Found APR: /usr/lib/libapr-1.dll.a
-- Found APU: /usr/lib/libaprutil-1.dll.a
-- Found PkgConfig: /usr/bin/pkg-config.exe (found version "0.28")
-- checking for module 'pixman'
--   package 'pixman' not found
-- checking for module 'pixman-1'
--   found pixman-1, version 0.32.4
-- Found PIXMAN: /usr/lib/libpixman-1.dll.a
-- Found MAPSERVER: /opt/mapserver/mapserver-6.4.1/build/libmapserver.dll.a
-- * Configured options for the mapcache library
--  * Mandatory components
--   * png: /usr/lib/libpng.dll.a
--   * jpeg: /usr/lib/libjpeg.dll.a
--   * Curl: /usr/lib/libcurl.dll.a
--   * Apr: /usr/lib/libapr-1.dll.a
--  * Optional components
--   * PIXMAN: /usr/lib/libpixman-1.dll.a
--   * SQLITE: disabled
--   * Berkeley DB: disabled
--   * Memcache: disabled
--   * TIFF: disabled
--   * GeoTIFF: disabled
--   * Experimental TIFF write support: disabled
--   * PCRE: disabled
--   * Experimental mapserver support: /opt/mapserver/mapserver-6.4.1/build/libmapserver.dll.a
-- Found GDAL: /usr/local/lib/libgdal.dll.a
-- Found GEOS: /usr/local/lib/libgeos_c.dll.a
-- * Seeder Configuration Options:
--   * GEOS: /usr/local/lib/libgeos_c.dll.a
--   * OGR: /usr/local/lib/libgdal.dll.a
-- Found FCGI: /usr/lib/libfcgi.dll.a
-- * CGI Configuration Options:
--   * FastCGI: /usr/lib/libfcgi.dll.a
--  * Apache Module support status: DISABLED
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/mapcache/mapcache-rel-1-2-1/build

and after make I get:

Gery@gery /opt/mapcache/mapcache-rel-1-2-1/build
$ make
Scanning dependencies of target mapcache
[  2%] Building C object CMakeFiles/mapcache.dir/lib/axisorder.c.o
[  5%] Building C object CMakeFiles/mapcache.dir/lib/buffer.c.o
[  7%] Building C object CMakeFiles/mapcache.dir/lib/cache_bdb.c.o
[ 10%] Building C object CMakeFiles/mapcache.dir/lib/cache_disk.c.o
[ 12%] Building C object CMakeFiles/mapcache.dir/lib/cache_memcache.c.o
[ 15%] Building C object CMakeFiles/mapcache.dir/lib/cache_sqlite.c.o
[ 17%] Building C object CMakeFiles/mapcache.dir/lib/cache_tiff.c.o
[ 20%] Building C object CMakeFiles/mapcache.dir/lib/cache_tokyocabinet.c.o
[ 22%] Building C object CMakeFiles/mapcache.dir/lib/configuration.c.o
[ 25%] Building C object CMakeFiles/mapcache.dir/lib/configuration_xml.c.o
[ 27%] Building C object CMakeFiles/mapcache.dir/lib/core.c.o
/opt/mapcache/mapcache-rel-1-2-1/lib/core.c: In function ‘mapcache_prefetch_tiles’:
/opt/mapcache/mapcache-rel-1-2-1/lib/core.c:81:3: error: unknown type name ‘apr_thread_t’
   apr_thread_t **threads;
   ^
/opt/mapcache/mapcache-rel-1-2-1/lib/core.c:82:3: error: unknown type name ‘apr_threadattr_t’
   apr_threadattr_t *thread_attrs;
   ^
/opt/mapcache/mapcache-rel-1-2-1/lib/core.c:83:7: warning: unused variable ‘nthreads’ [-Wunused-variable]
   int nthreads;
       ^
/opt/mapcache/mapcache-rel-1-2-1/lib/core.c:82:21: warning: unused variable ‘thread_attrs’ [-Wunused-variable]
   apr_threadattr_t *thread_attrs;
                     ^
/opt/mapcache/mapcache-rel-1-2-1/lib/core.c:81:18: warning: unused variable ‘threads’ [-Wunused-variable]
   apr_thread_t **threads;
                  ^
CMakeFiles/mapcache.dir/build.make:287: recipe for target 'CMakeFiles/mapcache.dir/lib/core.c.o' failed
make[2]: *** [CMakeFiles/mapcache.dir/lib/core.c.o] Error 1
CMakeFiles/Makefile2:63: recipe for target 'CMakeFiles/mapcache.dir/all' failed
make[1]: *** [CMakeFiles/mapcache.dir/all] Error 2
Makefile:116: recipe for target 'all' failed
make: *** [all] Error 2

How could I know if my apr packages are causing the problem? is there a way to test that without installing a newer apache version?

Gery
Reply | Threaded
Open this post in threaded view
|

Re: compiling error core.c in mapcache with cygwin

Gery
sorry for bumping this post, but any clues about this issue with core.c? any ideas how to solve this core.c error message with the cygwin details I previously posted?

It'd be great your support on this, thanks in advance.
Reply | Threaded
Open this post in threaded view
|

Re: compiling error core.c in mapcache with cygwin

Andy Colson
On 01/10/2015 08:23 AM, Gery wrote:
> sorry for bumping this post, but any clues about this issue with core.c? any
> ideas how to solve this core.c error message with the cygwin details I
> previously posted?
>
> It'd be great your support on this, thanks in advance.
>

Sorry, no idea.

If you wanted to check some things:

near the top of core.c, there are probably includes for apr.  You could make sure they are actually included for cygwin (ifdef's for example).  (It could also be in core.h if there is one)

You could also make sure you dont have any duplicate apr headers.  Maybe one of your headers has the same name as one of theirs and your's is being included instead of the apr one.  Maybe old copies of apr headers lying around?

Does cygwin apr even support threads?  Maybe a quick test.c that includes apr and tries to use apr_thread_t might help.

-Andy

_______________________________________________
mapserver-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/mapserver-users
Reply | Threaded
Open this post in threaded view
|

Re: compiling error core.c in mapcache with cygwin

Andy Colson
I found a simple c test here:

http://dev.ariel-networks.com/apr/apr-tutorial/html/apr-tutorial-16.html

links to the test .c here:

http://dev.ariel-networks.com/apr/apr-tutorial/sample/thread-sample.c

I compiled it with:

gcc -Wall $(apr-1-config --cflags --cppflags --includes --link-ld)  thread-sample.c

and ./a.out ran fine.  (I'm on slackware linux though.  I don't have a windows box handy)

-Andy
_______________________________________________
mapserver-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/mapserver-users
Reply | Threaded
Open this post in threaded view
|

Re: compiling error core.c in mapcache with cygwin

tbonfort
In reply to this post by Gery

What apr version are you using?

On Jan 3, 2015 10:15 PM, "Gery ." <[hidden email]> wrote:
Hello,

When installing mapcache in cygwin, `make` produced:

    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c: In function ‘mapcache_prefetch_tiles’:
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:81:3: error: unknown type name ‘apr_thread_t’
       apr_thread_t **threads;
       ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:82:3: error: unknown type name ‘apr_threadattr_t’
       apr_threadattr_t *thread_attrs;
       ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:83:7: warning: unused variable ‘nthreads’ [-Wunused-variable]
       int nthreads;
           ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:82:21: warning: unused variable ‘thread_attrs’ [-Wunused-variable]
       apr_threadattr_t *thread_attrs;
                         ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:81:18: warning: unused variable ‘threads’ [-Wunused-variable]
       apr_thread_t **threads;
                      ^

I searched for some hints about this error but didn't find anything. Looking for `apr_thread_t` and cygwin, I found some pages pointing to an error with apache, but not really sure if apache has something to do here.

thanks for any hints on this,

Gery
_______________________________________________
mapserver-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/mapserver-users

_______________________________________________
mapserver-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/mapserver-users
Reply | Threaded
Open this post in threaded view
|

Re: compiling error core.c in mapcache with cygwin

tbonfort

From http://mail-archives.apache.org/mod_mbox/apr-dev/201209.mbox/%3C4994179EC7ED6843AAB0A30A1639E7F825143612EF@...%3E it would seem that threads are not supported by Apr on cygwin. Currently mapcache does not support unthreaded environments so there's nothing you can do without hacking the mapcache codebase. I believe the change would not be very extensive as the source WMS fetches only need to be sequentialized instead of parralelized in core.c

Thomas.

On Jan 11, 2015 7:50 AM, "thomas bonfort" <[hidden email]> wrote:

What apr version are you using?

On Jan 3, 2015 10:15 PM, "Gery ." <[hidden email]> wrote:
Hello,

When installing mapcache in cygwin, `make` produced:

    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c: In function ‘mapcache_prefetch_tiles’:
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:81:3: error: unknown type name ‘apr_thread_t’
       apr_thread_t **threads;
       ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:82:3: error: unknown type name ‘apr_threadattr_t’
       apr_threadattr_t *thread_attrs;
       ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:83:7: warning: unused variable ‘nthreads’ [-Wunused-variable]
       int nthreads;
           ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:82:21: warning: unused variable ‘thread_attrs’ [-Wunused-variable]
       apr_threadattr_t *thread_attrs;
                         ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:81:18: warning: unused variable ‘threads’ [-Wunused-variable]
       apr_thread_t **threads;
                      ^

I searched for some hints about this error but didn't find anything. Looking for `apr_thread_t` and cygwin, I found some pages pointing to an error with apache, but not really sure if apache has something to do here.

thanks for any hints on this,

Gery
_______________________________________________
mapserver-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/mapserver-users

_______________________________________________
mapserver-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/mapserver-users
Reply | Threaded
Open this post in threaded view
|

Re: compiling error core.c in mapcache with cygwin

Gery
Thanks Thomas, I just got an email from the Cygwin mailing list saying that threads were not enabled in the APR library because the unit tests didn't pass with them, so that's the problem as you pointed out. I'd like to hack the mapcache codebase but no idea how to start hacking it to get it working without threads, but if you could give me some hints such as what files are involved (I imagine only core.c), which sections/lines would be involved, sure I could do it, I'd appreciate it. If I get that working, sure other people can test that in Cygwin and your audience will eventually increase :)

Gery

Sent from my iRon

On Jan 10, 2015, at 19:02, "thomas bonfort [via OSGeo.org]" <[hidden email]> wrote:

From http://mail-archives.apache.org/mod_mbox/apr-dev/201209.mbox/%3C4994179EC7ED6843AAB0A30A1639E7F825143612EF@...%3E it would seem that threads are not supported by Apr on cygwin. Currently mapcache does not support unthreaded environments so there's nothing you can do without hacking the mapcache codebase. I believe the change would not be very extensive as the source WMS fetches only need to be sequentialized instead of parralelized in core.c

Thomas.

On Jan 11, 2015 7:50 AM, "thomas bonfort" <[hidden email]> wrote:

What apr version are you using?

On Jan 3, 2015 10:15 PM, "Gery ." <[hidden email]> wrote:
Hello,

When installing mapcache in cygwin, `make` produced:

    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c: In function ‘mapcache_prefetch_tiles’:
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:81:3: error: unknown type name ‘apr_thread_t’
       apr_thread_t **threads;
       ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:82:3: error: unknown type name ‘apr_threadattr_t’
       apr_threadattr_t *thread_attrs;
       ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:83:7: warning: unused variable ‘nthreads’ [-Wunused-variable]
       int nthreads;
           ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:82:21: warning: unused variable ‘thread_attrs’ [-Wunused-variable]
       apr_threadattr_t *thread_attrs;
                         ^
    /opt/mapcache/mapcache-rel-1-2-1/lib/core.c:81:18: warning: unused variable ‘threads’ [-Wunused-variable]
       apr_thread_t **threads;
                      ^

I searched for some hints about this error but didn't find anything. Looking for `apr_thread_t` and cygwin, I found some pages pointing to an error with apache, but not really sure if apache has something to do here.

thanks for any hints on this,

Gery
_______________________________________________
mapserver-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/mapserver-users

_______________________________________________
mapserver-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/mapserver-users


If you reply to this email, your message will be added to the discussion below:
http://osgeo-org.1560.x6.nabble.com/compiling-error-core-c-in-mapcache-with-cygwin-tp5179881p5180958.html
To unsubscribe from compiling error core.c in mapcache with cygwin, click here.
NAML
Reply | Threaded
Open this post in threaded view
|

Re: compiling error core.c in mapcache with cygwin

Gery
In reply to this post by tbonfort
Sorry for bumping this old thread, but any chances to get support in order to change core.c so mapcache can work in cygwin without (apr) threads enabled? would you have a core.c patched version? Thanks for any pointers.