Re: Build error: with_ssh2=static, VC9, makefile.vc
Guenter in gmane.comp.web.curl.library (Thu, 01 Nov 2012 01:29:57 +0100): Hi Jan, Am 30.10.2012 23:18, schrieb Jan Ehrhardt: Vanished once again under the radar? Or did I miss a patch? no and no :-) I was just otherwise busy, but good you pinged again! Just pushed a simple patch: https://github.com/bagder/curl/commit/c81eb7e226be6c8ead3865592f3f2487fab4caeb I hope that fixes the issue; I did also remove the debug suffix since none of the other depndent libs have this, so not sure why libssh2 should be with debug code; it seems that the whole makefile lacks of any debug settings for the dependencies, and probably it would make sense to support this, but I'm currently not up add this - patches welcome if someone needs it! Would be cool if you could test that now everthing's fine with the makefile - either with next daily snapshot or directly from git. Tested with the November 1 daily snapshot. Works flawlesly with a /winbuild commandline like: nmake /f makefile.vc mode=static VC=9 MACHINE=x86 WITH_DEVEL=../../win32build USE_IDN=yes WITH_WINSSL=static WITH_SSH2=static WITH_ZLIB=static ldap.obj was created with this commandline and ldap support was present. C:\php-sdk\curl-src\builds\libcurl-release-static-zlib-static-ssh2-static-ipv6-sspi-spnego-winssl\bincurl --version curl 7.28.1-20121101 (i386-pc-win32) libcurl/7.28.1-20121101 WinSSL zlib/1.2.7 WinIDN libssh2/1.4.2 Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp scp sftp smtp smtps telnet tftp Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM SPNEGO SSL SSPI libz Then I recall that there was some issue with the winssl code too which you mentioned before - is that still an issue? I think there was something where we should block something in the makefile so that its not possible to specify more than one ssl lib ...? In previous release there was a conflict between SSL and SSH2. You couldn't load them both, but this was apparently solved. Finally two other things: 1) we have also nmake makefiles in lib and src (which are use from main makefile); would be cool if you could take a look at these too (but in git are only Makefile.vc6, the other *.vc8 and *.vc9 are generated by the release script, so you have to test this with a daily snapshot if you have VC8 or 9); also one line in Makefile.vc6 I just found very strange: CFLAGSSSH2 = /DUSE_LIBSSH2 /DCURL_DISABLE_LDAP /DHAVE_LIBSSH2 /DHAVE_LIBSSH2_H /DLIBSSH2_WIN32 /DLIBSSH2_LIBRARY /I $(LIBSSH2_PATH)/include Tried to compile with makefile.vc9. I had to change inc32 in the makefile to include to make openssl to be included. C:\php-sdk\curl-src\libnmake /f makefile.vc9 CFG=release-ssl-ssh2-zlib generated the libcurl.lib But then I couldn't get src/makefile.vc9 to compile. Linker errors and the like. On inspection of the makefile.vc9 I did not even find any reference to SSH2 !? why the heck do we disable LDAP support when we build with ssh2 support??? Don't know. Jan --- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html
Re: Build error: with_ssh2=static, VC9, makefile.vc
Hi Jan, Am 30.10.2012 23:18, schrieb Jan Ehrhardt: Vanished once again under the radar? Or did I miss a patch? no and no :-) I was just otherwise busy, but good you pinged again! Just pushed a simple patch: https://github.com/bagder/curl/commit/c81eb7e226be6c8ead3865592f3f2487fab4caeb I hope that fixes the issue; I did also remove the debug suffix since none of the other depndent libs have this, so not sure why libssh2 should be with debug code; it seems that the whole makefile lacks of any debug settings for the dependencies, and probably it would make sense to support this, but I'm currently not up add this - patches welcome if someone needs it! Would be cool if you could test that now everthing's fine with the makefile - either with next daily snapshot or directly from git. Then I recall that there was some issue with the winssl code too which you mentioned before - is that still an issue? I think there was something where we should block something in the makefile so that its not possible to specify more than one ssl lib ...? Finally two other things: 1) we have also nmake makefiles in lib and src (which are use from main makefile); would be cool if you could take a look at these too (but in git are only Makefile.vc6, the other *.vc8 and *.vc9 are generated by the release script, so you have to test this with a daily snapshot if you have VC8 or 9); also one line in Makefile.vc6 I just found very strange: CFLAGSSSH2 = /DUSE_LIBSSH2 /DCURL_DISABLE_LDAP /DHAVE_LIBSSH2 /DHAVE_LIBSSH2_H /DLIBSSH2_WIN32 /DLIBSSH2_LIBRARY /I $(LIBSSH2_PATH)/include why the heck do we disable LDAP support when we build with ssh2 support??? 2) I did also recently modify the nmake makefiles of libssh2, and would be great if you (or someone else) could test these too ... Thanks, Gün. --- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html
Re: Build error: with_ssh2=static, VC9, makefile.vc
Guenter in gmane.comp.web.curl.library (Wed, 24 Oct 2012 04:21:59 +0200): sorry, this one got udner the radar ... :-P Vanished once again under the radar? Or did I miss a patch? Jan --- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html
Re: Build error: with_ssh2=static, VC9, makefile.vc
Guenter in gmane.comp.web.curl.library (Wed, 24 Oct 2012 04:21:59 +0200): Hi Jan, sorry, this one got udner the radar ... :-P No big deal. That is why I pinged ;-) I agree that since we have agent support we now need user32.lib at least when using a static libssh2.lib ... but since since the libssh2 DLL links itself against user32.lib why do we need it there too?? You might be right. I linked with the same libssh2_a.lib, which contains a reference to the external symbols __imp__FindWindowA and __imp__SendMessageA. I did not recompile libssh2 as shared in stead of static. Jan --- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html
Re: Build error: with_ssh2=static, VC9, makefile.vc
Jan Ehrhardt in gmane.comp.web.curl.library (Wed, 24 Oct 2012 09:42:48 +0200): Guenter in gmane.comp.web.curl.library (Wed, 24 Oct 2012 04:21:59 +0200): Hi Jan, sorry, this one got udner the radar ... :-P No big deal. That is why I pinged ;-) I agree that since we have agent support we now need user32.lib at least when using a static libssh2.lib ... but since since the libssh2 DLL links itself against user32.lib why do we need it there too?? You might be right. I linked with the same libssh2_a.lib, which contains a reference to the external symbols __imp__FindWindowA and __imp__SendMessageA. I did not recompile libssh2 as shared in stead of static. OK, recompiled libssh2. It produces a libssh.lib (without the _a), that seems do do nothing else than link all the functions to libssh2.dll. This libssh2.lib compiles fine in curl WITH_SSH2=dll. So line 131 can stay at SSH2_LIBS = libssh2.lib But and the '_debug' in line 135 does not seem te be needed. SSH2_LIBS = libssh2_a.lib user32.lib compiles fine WITH_SSH2=static. Jan --- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html
Re: Build error: with_ssh2=static, VC9, makefile.vc
Ping. Did Daniel or Gunther already have a chance to look at the proposed patches below? Jan Jan Ehrhardt in gmane.comp.web.curl.library (Fri, 19 Oct 2012 02:43:40 +0200): I am building libcurl_a.lib from the commandline, using VC9: nmake /f makefile.vc mode=static VC=9 MACHINE=x86 WITH_DEVEL=../../win32build USE_IDN=yes WITH_WINSSL=static WITH_SSH2=static WITH_ZLIB=static This fails with: libcurl_a.lib(agent.obj) : error LNK2019: unresolved external symbol __imp_FindWindowA referenced in function agent_connect_pageant libcurl_a.lib(agent.obj) : error LNK2019: unresolved external symbol __imp_SendMessageA referenced in function agent_transact_pageant At first I solved this by recompiling libssh2 without agent_ops_pageant. Recompiling libssh2 showed me that the missing symbols can be found in user32.dll: __imp__FindWindowA 100171f0 user32:USER32.dll Moreover, libssh2 includes user32.lib while linking. So, I changed line 135 in winbuild/MakefileBuild.vc from -SSH2_LIBS = libssh2_a_debug.lib into +SSH2_LIBS = libssh2_a_debug.lib user32.lib And libcurl builds fine again. Then I checked the preceding line 131 as well: -SSH2_LIBS = libssh2.lib +SSH2_LIBS = libssh2_a.lib user32.lib libssh2_a.lib is better than libssh2.lib, because libssh2 produces an _a.lib as standard, just like curl. And the user32.lib is also needed for with_ssh2=dll. Jan --- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html
Re: Build error: with_ssh2=static, VC9, makefile.vc
Hi Jan, sorry, this one got udner the radar ... :-P Am 24.10.2012 00:02, schrieb Jan Ehrhardt: Ping. Did Daniel or Gunther already have a chance to look at the proposed patches below? Moreover, libssh2 includes user32.lib while linking. So, I changed line 135 in winbuild/MakefileBuild.vc from -SSH2_LIBS = libssh2_a_debug.lib into +SSH2_LIBS = libssh2_a_debug.lib user32.lib And libcurl builds fine again. Then I checked the preceding line 131 as well: -SSH2_LIBS = libssh2.lib +SSH2_LIBS = libssh2_a.lib user32.lib libssh2_a.lib is better than libssh2.lib, because libssh2 produces an _a.lib as standard, just like curl. And the user32.lib is also needed for with_ssh2=dll. I agree that since we have agent support we now need user32.lib at least when using a static libssh2.lib ... but since since the libssh2 DLL links itself against user32.lib why do we need it there too?? Gün. --- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html