> 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.
Thanks, Hans-Bernard! You nailed it. I wasn't close to figuring that out. The patch below solves the problem. Andrew diff -urN lftp-4.7.2.orig/src/lftp_rl.c lftp-4.7.2/src/lftp_rl.c --- lftp-4.7.2.orig/src/lftp_rl.c 2016-02-20 08:57:53.000000000 -0500 +++ lftp-4.7.2/src/lftp_rl.c 2016-05-27 05:23:06.893807600 -0400 @@ -20,7 +20,7 @@ #include <config.h> #include <stdio.h> #include <readline.h> -#include <history.h> +#include <readline/history.h> #include <stdlib.h> #include <string.h> #include "lftp_rl.h" -- 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