lftp 4.7.2 build fails in Cygwin

Hans-Bernhard Bröker HBBroeker@t-online.de
Fri May 27 16:33:00 GMT 2016


Am 26.05.2016 um 19:20 schrieb Andrew Schulman:
> Cygwin 2.5.1 x86_64
> g++ 5.3.0
>
> In Cygwin, build of lftp 4.7.2 fails in two places:
>
> (1)
>
> /home/andrex/dev/cygwin/lftp/lftp-4.7.2-1.x86_64/src/lftp-4.7.2/src/xmalloc.h:31:38:
> error: expected ';', ',' or ')' before '=' token
>  char *xstrdup(const char *s,int spare=0);
>                                       ^
>
> g++ seems not to like the default value 'spare=0' in the function declaration.

I'm convinced g++ actually likes that just fine.  The problem is that 
this header is being pulled in by a plain C source file: lftp_rl.c.  But 
C does no have default arguments; those only exist in C++.

The underlying reason appearst to be that there is a conflict between 
src/History.h and /usr/include/readline/history.h.

This file wants to include readline's history.h, but "thanks" to 
Windows's harebrained handling of filename cases, gets src/History.h 
instead.  Which is a C++ header file, and new with 4.7.2.

> (2)
>
> /home/andrex/dev/cygwin/lftp/lftp-4.7.2-1.x86_64/src/lftp-4.7.2/src/xmalloc.h:32:21:
> error: expected ';', ',' or ')' before '&' token
>  char *xstrset(char *&mem,const char *s);

Same problem, same cause: that is not legal C code, so the C compiler is 
correct in rejecting it.

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list