lftp 4.7.2 build fails in Cygwin
Andrew Schulman
schulman.andrew@epa.gov
Fri May 27 18:00: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.
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
More information about the Cygwin
mailing list