Build issues - libcurl

Message boards : BOINC client : Build issues - libcurl
Message board moderation

To post messages, you must log in.

AuthorMessage
ollyw

Send message
Joined: 22 Jan 14
Posts: 3
United Kingdom
Message 52091 - Posted: 22 Jan 2014, 17:21:29 UTC

I am trying to build the client at the moment in cygwin but getting an error to do with libcurl which I cant quite understand.

Everything is fine in the configure until this point:

...
...
checking library extension... a
checking shared object extension... dll
checking for gawk... (cached) /usr/bin/gawk
checking for curl-config... /usr/bin/curl-config
checking for the version of libcurl... 7.34.0
checking for libcurl >= version 7.17.1... yes
checking whether libcurl is usable... no
configure: error:
================================================================================
ERROR: could not find (recent enough) development-libs for libcurl.

  This library is required to build the boinc-client.
  (If you don't want to build the client, use --disable-client with configure.

  If libcurl-dev is installed on your system, make sure that the script
  'curl-config' is found in your PATH, and that
  'curl-config --version' gives something recent enough (see above).

  You can download libcurl from: http://curl.haxx.se/

================================================================================


from config.log:

configure:23578: result: 7.34.0
configure:23585: checking for libcurl >= version 7.17.1
configure:23598: result: yes
configure:24200: checking whether libcurl is usable
configure:24233: gcc -o conftest.exe -I/usr/include/w32api -D_WIN32 -DWIN32 -g -O2 -Wall -I/usr/include/w32api  -D_WIN32 -DWIN32    conftest.c -L/usr/lib/w32api  -lcurl >&5
In file included from conftest.c:29:0:
/usr/include/curl/curl.h:116:1: error: unknown type name 'SOCKET'
 typedef SOCKET curl_socket_t;
 ^
conftest.c: In function 'main':
conftest.c:36:5: warning: variable 'x' set but not used [-Wunused-but-set-variable]
 int x;
     ^
configure:24233: $? = 1


Anyone got ideas on how to either further diagnose or fix?

Thanks!
ID: 52091 · Report as offensive
ChristianB
Volunteer developer
Volunteer tester

Send message
Joined: 4 Jul 12
Posts: 321
Germany
Message 52122 - Posted: 24 Jan 2014, 12:20:57 UTC

I have no problem compiling the Client under Debian with the same libcurl version installed. Maybe you are lacking the header files in your cygwin environment?
ID: 52122 · Report as offensive
Juha
Volunteer developer
Volunteer tester
Help desk expert

Send message
Joined: 20 Nov 12
Posts: 801
Finland
Message 52126 - Posted: 24 Jan 2014, 18:32:12 UTC
Last modified: 24 Jan 2014, 18:32:21 UTC

SOCKET seems to be something defined in Windows headers. Do you have Platform SDK (or Windows SDK) installed and is it in /usr/include/w32api ?
ID: 52126 · Report as offensive
ollyw

Send message
Joined: 22 Jan 14
Posts: 3
United Kingdom
Message 52152 - Posted: 27 Jan 2014, 10:04:00 UTC - in response to Message 52122.  
Last modified: 27 Jan 2014, 10:08:38 UTC

Maybe you are lacking the header files in your cygwin environment?


Thanks for the response

Could you expand upon this at all? What headers are you referring to?
ID: 52152 · Report as offensive
ollyw

Send message
Joined: 22 Jan 14
Posts: 3
United Kingdom
Message 52153 - Posted: 27 Jan 2014, 10:08:03 UTC - in response to Message 52126.  

Do you have Platform SDK (or Windows SDK) installed and is it in /usr/include/w32api


Thanks for your reply

I have the directory and it has a load of files in. Am I looking for anything specific?
ID: 52153 · Report as offensive
Juha
Volunteer developer
Volunteer tester
Help desk expert

Send message
Joined: 20 Nov 12
Posts: 801
Finland
Message 52173 - Posted: 27 Jan 2014, 20:47:10 UTC

Ok, I guess I was wrong with that Platform SDK. Looks like you need to install win32api* package to compile Windows programs. Since you have that directory I think it's installed just fine.

So the SOCKET is defined in winsock.h/winsock2.h. curl.h includes that if you have WIN32 defined and __CYGWIN__ is not defined. If you have both WIN32 and __CYGWIN__ defined you don't get SOCKET defined but a few lines later curl.h assumes SOCKET is defined. WIN32 gets defined in m4/boinc_check_cygwin.m4 macro.

I'm not sure if this is a bug in CURL or in BOINC. You could try renaming boinc_check_cygwin.m4. After that run _autosetup and configure again. I don't think Cygwin is used much in BOINC world so there's good chances you need'll to fix something else.
ID: 52173 · Report as offensive
A51 Alien

Send message
Joined: 5 Feb 14
Posts: 2
United Kingdom
Message 52352 - Posted: 5 Feb 2014, 14:59:46 UTC - in response to Message 52173.  
Last modified: 5 Feb 2014, 15:03:03 UTC

I'm having the same issues on cygwin64.
Haven't tried compiling on cygwin32 yet, but I'm guessing it'll be the same.

here is the chuck-out
checking for curl-config... /usr/local/bin/curl-config
checking for the version of libcurl... 7.35.0
checking for libcurl >= version 7.17.1... yes
checking for ber_scanf in -llber... yes
checking whether libcurl is usable... no
configure: error:
================================================================================
ERROR: could not find (recent enough) development-libs for libcurl.

This library is required to build the boinc-client.
(If you don't want to build the client, use --disable-client with configure.

If libcurl-dev is installed on your system, make sure that the script
'curl-config' is found in your PATH, and that
'curl-config --version' gives something recent enough (see above).

You can download libcurl from: http://curl.haxx.se/

================================================================================


using the latest GIT Repo
(http://boinc.berkeley.edu/git/boinc-v2.git boinc_repo)
ID: 52352 · Report as offensive
A51 Alien

Send message
Joined: 5 Feb 14
Posts: 2
United Kingdom
Message 52354 - Posted: 5 Feb 2014, 15:48:25 UTC - in response to Message 52173.  
Last modified: 5 Feb 2014, 15:50:39 UTC

Juha wrote:
...You could try renaming boinc_check_cygwin.m4. After that run _autosetup and configure again.

That passed the "./configure" build :)

however... failed the "make" :(

Here is the chuck-out:

cd . && sh generate_svn_version.sh
make all-recursive
make[1]: Entering directory '/cygdrive/c/Projects/boinc/boinc_repo'
Making all in m4
make[2]: Entering directory '/cygdrive/c/Projects/boinc/boinc_repo/m4'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/cygdrive/c/Projects/boinc/boinc_repo/m4'
Making all in api
make[2]: Entering directory '/cygdrive/c/Projects/boinc/boinc_repo/api'
CXX boinc_api.lo
CXX graphics2_util.lo
CXX reduce_main.lo
CXXLD libboinc_api.la
libtool: link: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries
CXX boinc_opencl.lo
CXXLD libboinc_opencl.la
libtool: link: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries
rm -f libboinc_api.a
/usr/bin/ln .libs/libboinc_api.a .
rm -f libboinc_opencl.a
/usr/bin/ln .libs/libboinc_opencl.a .
make[2]: Leaving directory '/cygdrive/c/Projects/boinc/boinc_repo/api'
Making all in lib
make[2]: Entering directory '/cygdrive/c/Projects/boinc/boinc_repo/lib'
CXX libboinc_la-app_ipc.lo
CXX libboinc_la-base64.lo
CXX libboinc_la-cc_config.lo
CXX libboinc_la-cert_sig.lo
CXX libboinc_la-coproc.lo
CXX libboinc_la-diagnostics.lo
diagnostics.cpp:658:6: warning: unused parameter 'siginfo' [-Wunused-parameter]
void boinc_catch_signal(int signal, struct siginfo *siginfo, void *sigcontext) {
^
diagnostics.cpp:658:6: warning: unused parameter 'sigcontext' [-Wunused-parameter]
CXX libboinc_la-filesys.lo
CXX libboinc_la-gui_rpc_client.lo
CXX libboinc_la-gui_rpc_client_ops.lo
CXX libboinc_la-gui_rpc_client_print.lo
CXX libboinc_la-hostinfo.lo
CC libboinc_la-md5.lo
CXX libboinc_la-md5_file.lo
CXX libboinc_la-mem_usage.lo
CXX libboinc_la-mfile.lo
CXX libboinc_la-miofile.lo
CXX libboinc_la-msg_log.lo
CXX libboinc_la-network.lo
CXX libboinc_la-notice.lo
CXX libboinc_la-opencl_boinc.lo
CXX libboinc_la-parse.lo
CXX libboinc_la-prefs.lo
CXX libboinc_la-procinfo.lo
CXX libboinc_la-proc_control.lo
CXX libboinc_la-proxy_info.lo
CXX libboinc_la-shmem.lo
shmem.cpp: In function 'int create_shmem(key_t, int, gid_t, void**)':
shmem.cpp:417:42: error: 'SHM_R' was not declared in this scope
id = shmget(key, size, IPC_CREAT|SHM_R|SHM_W);
^
shmem.cpp:417:48: error: 'SHM_W' was not declared in this scope
id = shmget(key, size, IPC_CREAT|SHM_R|SHM_W);
^
Makefile:1383: recipe for target 'libboinc_la-shmem.lo' failed
make[2]: *** [libboinc_la-shmem.lo] Error 1
make[2]: Leaving directory '/cygdrive/c/Projects/boinc/boinc_repo/lib'
Makefile:621: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/cygdrive/c/Projects/boinc/boinc_repo'
Makefile:524: recipe for target 'all' failed
make: *** [all] Error 2


any ideas?
ID: 52354 · Report as offensive
Juha
Volunteer developer
Volunteer tester
Help desk expert

Send message
Joined: 20 Nov 12
Posts: 801
Finland
Message 52356 - Posted: 5 Feb 2014, 17:38:45 UTC - in response to Message 52354.  
Last modified: 5 Feb 2014, 17:41:40 UTC

CXXLD libboinc_api.la
libtool: link: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries
CXX boinc_opencl.lo
CXXLD libboinc_opencl.la
libtool: link: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries

This might mean troubles ahead.

shmem.cpp: In function 'int create_shmem(key_t, int, gid_t, void**)':
shmem.cpp:417:42: error: 'SHM_R' was not declared in this scope
id = shmget(key, size, IPC_CREAT|SHM_R|SHM_W);
^
any ideas?

Try replacing SHM_R|SHM_W with S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP

---

If I may ask, why Cygwin?
ID: 52356 · Report as offensive

Message boards : BOINC client : Build issues - libcurl

Copyright © 2024 University of California.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.