From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 88800 invoked by alias); 26 Jan 2016 04:51:22 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 88779 invoked by uid 89); 26 Jan 2016 04:51:19 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.1 required=5.0 tests=BAYES_50,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW autolearn=no version=3.3.2 spammy=pride, pre-dates, predates, __strict_ansi__ X-HELO: mail110.syd.optusnet.com.au Received: from mail110.syd.optusnet.com.au (HELO mail110.syd.optusnet.com.au) (211.29.132.97) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 26 Jan 2016 04:51:18 +0000 Received: from dimstar.local.net (c122-107-168-99.eburwd5.vic.optusnet.com.au [122.107.168.99]) by mail110.syd.optusnet.com.au (Postfix) with ESMTP id 43EBC786704 for ; Tue, 26 Jan 2016 15:51:13 +1100 (AEDT) Received: (qmail 18252 invoked by uid 501); 26 Jan 2016 04:51:05 -0000 Date: Tue, 26 Jan 2016 19:33:00 -0000 From: Duncan Roe To: cygwin@cygwin.com Subject: Re: bcftools error running Make after installing update 2.4.1.1 to Cygwin64 Message-ID: <20160126045105.GA15234@dimstar.local.net> Mail-Followup-To: cygwin@cygwin.com References: <56A693F5.7070000@tiscali.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <56A693F5.7070000@tiscali.co.uk> User-Agent: Mutt/1.5.22 (2013-10-16) X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=R4L+YolX c=1 sm=1 tr=0 a=+cDhJlqnNvz9E7c5l3ERGg==:117 a=+cDhJlqnNvz9E7c5l3ERGg==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=eIhxMilvRf8A:10 a=kj9zAlcOel0A:10 a=7aQ_Q-yQQ-AA:10 a=FRQSvaR4Lw90OAh44SkA:9 a=CjuIK1q_8ugA:10 X-IsSubscribed: yes X-SW-Source: 2016-01/txt/msg00364.txt.bz2 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