This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Cygwin build for mingw32 host build failure in binutils-gdb/intl with make 4.0
- From: "Pierre Muller" <pierre dot muller at ics-cnrs dot unistra dot fr>
- To: <binutils at sourceware dot org>
- Date: Wed, 10 Dec 2014 13:50:46 +0100
- Subject: Cygwin build for mingw32 host build failure in binutils-gdb/intl with make 4.0
- Authentication-results: sourceware.org; auth=none
Hi,
I get build failure trying to compile mingw32 using
i686-w64-mingw32-gcc on a cygwin installation.
After some checks, I suspect that the problem comes from the fact
that cygwin has make 4.0 version.
in intl sub-directory,
plural.c is regenerated using
bison -y -d --name-prefix=__gettext --output plural.c
../../../binutils-gdb/intl/plural.y
command,
while on msys with make 3.81,
the file ../../../binutils-gdb/intl/plural.c source is used.
Installed bison version is 3.0.2
and the newly generated plural.c leads to this error below:
It seems that this problem is also mingw32 specific because
for native cygwin compilation, the all target in intl sub-directory is
all-no.
But forcing the compilation by running
make ?C intl all-yes
also leads to a generation of plural.c aand to the same compilation error.
How should this problem be fixed?
Pierre Muller
i686-w64-mingw32-gcc -c -gstabs+ -O0 -D__USE_MINGW_ACCESS -DHAVE_CONFIG_H
-I. -I../../../binutils-gdb/intl plural.c
In file included from ../../../binutils-gdb/intl/plural.y:35:0:
../../../binutils-gdb/intl/plural-exp.h:102:23: error: conflicting types for
'libintl_gettextparse'
# define PLURAL_PARSE libintl_gettextparse
^
../../../binutils-gdb/intl/plural.y:40:25: note: in expansion of macro
'PLURAL_PARSE'
# define __gettextparse PLURAL_PARSE
^
plural.c:185:5: note: in expansion of macro '__gettextparse'
int __gettextparse (void);
^
../../../binutils-gdb/intl/plural-exp.h:102:23: note: previous declaration
of 'libintl_gettextparse' was here
# define PLURAL_PARSE libintl_gettextparse
^
../../../binutils-gdb/intl/plural-exp.h:114:12: note: in expansion of macro
'PLURAL_PARSE'
extern int PLURAL_PARSE PARAMS ((void *arg));
^
../../../binutils-gdb/intl/plural-exp.h:102:23: error: conflicting types for
'libintl_gettextparse'
# define PLURAL_PARSE libintl_gettextparse
^
../../../binutils-gdb/intl/plural.y:40:25: note: in expansion of macro
'PLURAL_PARSE'
# define __gettextparse PLURAL_PARSE
^
plural.c:63:25: note: in expansion of macro '__gettextparse'
#define yyparse __gettextparse
^
plural.c:1130:1: note: in expansion of macro 'yyparse'
yyparse (void)
^
../../../binutils-gdb/intl/plural-exp.h:102:23: note: previous declaration
of 'libintl_gettextparse' was here
# define PLURAL_PARSE libintl_gettextparse
^
../../../binutils-gdb/intl/plural-exp.h:114:12: note: in expansion of macro
'PLURAL_PARSE'
extern int PLURAL_PARSE PARAMS ((void *arg));
^
plural.c: In function 'libintl_gettextparse':
plural.c:1299:7: error: too few arguments to function '__gettextlex'
yychar = yylex (&yylval);
^
plural.c:64:25: note: declared here
#define yylex __gettextlex
^
../../../binutils-gdb/intl/plural.y:69:12: note: in expansion of macro
'yylex'
static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
^
../../../binutils-gdb/intl/plural.y:178:29: error: 'arg' undeclared (first
use in this function)
((struct parse_args *) arg)->res = $1;
^
../../../binutils-gdb/intl/plural.y:178:29: note: each undeclared identifier
is reported only once for each function it appears in
Makefile:133: recipe for target 'plural.o' failed
make: *** [plural.o] Error 1