This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: bcftools error running Make after installing update 2.4.1.1 to Cygwin64


On Mon, Jan 25, 2016 at 09:30:29PM +0000, David Stacey wrote:
> On 25/01/16 21:00, Robert May wrote:
> >many warnings are given in the following text - see end for error message
> >
> >echo '#define BCFTOOLS_VERSION "1.3"'> version.h
> >gcc -g -Wall -Wc++-compat -O2  -std=c99 -I. -Ihtslib-1.3 -DPLUGINPATH=\"/usr/local/libexec/bcftools\"  -c -o main.o main.c
> >gcc -g -Wall -Wc++-compat -O2  -std=c99 -I. -Ihtslib-1.3 -DPLUGINPATH=\"/usr/local/libexec/bcftools\"  -c -o vcfindex.o vcfindex.c
> >vcfindex.c: In function ?main_vcfindex?:
> >vcfindex.c:209:9: warning: implicit declaration of function ?alloca? [-Wimplicit-function-declaration]
> >          char*idx_fname = (char*)alloca(strlen(fname) + 5);
> >          ^
> >vcfindex.c:209:27: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
> >          char*idx_fname = (char*)alloca(strlen(fname) + 5);
>
> These warnings can be generated for a number of reasons. One is that the
> source code you are attempting to compile pre-dates this version of gcc.
> Another reason is that you are somehow using a combination of compiler
> switches that were never expected. A third reason is that the source code
> simply isn't well written, but the majority of Open Source contributors take
> great pride in their work.
>
> In your case, it could be the compiler switches - see below.
>
> >gcc -g -Wall -Wc++-compat -O2  -std=c99 -I. -Ihtslib-1.3 -DPLUGINPATH=\"/usr/local/libexec/bcftools\"  -c -o vcfcnv.o vcfcnv.c
> >vcfcnv.c: In function ?norm_prob?:
> >vcfcnv.c:602:93: error: ?M_PI? undeclared (first use in this function)
> >      return exp(-(baf-param->mean)*(baf-param->mean)*0.5/param->dev2) / param->norm / sqrt(2*M_PI*param->dev2);
> >                                                                                              ^
> >vcfcnv.c:602:93: note: each undeclared identifier is reported only once for each function it appears in
> >vcfcnv.c: In function ?main_vcfcnv?:
> >vcfcnv.c:1349:9: warning: implicit declaration of function ?fileno? [-Wimplicit-function-declaration]
> >          if ( !isatty(fileno((FILE *)stdin)) ) fname = "-";
> >          ^
> >vcfcnv.c: In function ?norm_prob?:
> >vcfcnv.c:603:1: warning: control reaches end of non-void function [-Wreturn-type]
> >  }
> >  ^
>
> This looks like expected behaviour to me. Specifying '-std=c99' defines a
> __STRICT_ANSI__ macro, which in turn means that mathematical constants like
> M_PI are not defined. Using '-std=gnu99' instead should work. You may also
> find that this more relaxed compiler setting doesn't generate so many
> warnings.
>
> Dave.
>
Definitely you need a gnu standard for /usr/include/alloca.h to make alloca
visible. It is not a POSIX function.

Cheers ... Duncan.

--
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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]