From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3647 invoked by alias); 13 Jun 2012 04:38:17 -0000 Received: (qmail 3246 invoked by uid 22791); 13 Jun 2012 04:38:14 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_HOSTKARMA_NO,TW_YY X-Spam-Check-By: sourceware.org Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 13 Jun 2012 04:38:01 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 2C69F1C720E; Wed, 13 Jun 2012 00:38:01 -0400 (EDT) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 8y5wXd8BtL6w; Wed, 13 Jun 2012 00:38:01 -0400 (EDT) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id DEAB91C720C; Wed, 13 Jun 2012 00:38:00 -0400 (EDT) Received: by joel.gnat.com (Postfix, from userid 1000) id 770AF145616; Tue, 12 Jun 2012 21:37:48 -0700 (PDT) Date: Wed, 13 Jun 2012 04:38:00 -0000 From: Joel Brobecker To: Pierre Muller Cc: gdb@sourceware.org Subject: Re: GDB -Wmissing-prototypes and flex troubles Message-ID: <20120613043748.GB2709@adacore.com> References: <004801cd48f1$e6599080$b30cb180$@muller@ics-cnrs.unistra.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <004801cd48f1$e6599080$b30cb180$@muller@ics-cnrs.unistra.fr> User-Agent: Mutt/1.5.20 (2009-06-14) Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2012-06/txt/msg00063.txt.bz2 > Should we: > 1) Specify a minimal version for flex? > 2) disable missing-prototypes option > for ada-exp.c compilation? > 3) Do 2) if version if below > minimum version adding those prototypes? The lazy way would be to require a minimal version for flex. I would be OK with that, although it is true that it is a bit of a shame that the user does not get an error at configure time. It should be relatively easy to do, except that this would force me to upgrade many installs of flex on some of AdaCore's machines. I don't mind doing the update too much, and I should, except I usually find out at the wrong moment, and I then just get past the error by copy/pasting the compile command, removing the -Werror flag, and then resume the build. And also, an error would be preventing people from building a release with an older version of flex, even though the warnings would be harmless and non-fatal. I don't think we want to unilaterally disable -Werror for ada-lex.c. We'd open the door to allowing warnings back in again, when we did all the work to clean them up. A variation of 3. Something like the following close to the start of ada-lex.l: #if < <2.5.35> /* Older versions of flex do not provide prototypes for these functions. Provide them ourselves, to avoid -Wmissing-prototypes warnings. */ int yylex_destroy (void ); int yyget_debug (void ); void yyset_debug (int debug_flag ); YY_EXTRA_TYPE yyget_extra (void ); [...] #endif I am not completly sure that this is going to work, maybe if some types are missing, for instance. Or maybe the prototypes depend on the version of flex. With all this being said, your option (3) is attractive. Except that in terms of implementation, it forces us to have a special rules for ada-lex.o. All in all, I tend to vote for the status quo... -- Joel