From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24090 invoked by alias); 14 May 2014 13:39:49 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 23719 invoked by uid 48); 14 May 2014 13:39:44 -0000 From: "amacleod at redhat dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug plugins/61176] [4.9/4.10 Regression] plugin builds including gimple.h not building Date: Wed, 14 May 2014 13:39:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: plugins X-Bugzilla-Version: 4.9.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: amacleod at redhat dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 4.9.1 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-05/txt/msg01298.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61176 --- Comment #7 from Andrew Macleod --- Thats part of the fun. There is little rhyme nor reason to what includes what right now.. it was purely demand driven over many years. For your current purposes, gimple.h and tree.h were the primary accumulators we have already flattened, but there are a lot of include files which include 4 or 5 or 7 or more other files. Some where flattened, others haven't been tackled yet. We're trying to move to the include what you use model... with .h files containing just the exports for their .c file, and a few module headers which do some aggregation of common/required headers. Eventually including gimple.h alone will compile and provide basic manipulation routines, but you may still need to include other files depending on what you actually require. Plugins can either follow the same model, or could have one giant accumulator which includes everything... It sounds like the latter may be better for the interm, but I would encourage it to revert to the same model once the work is complete.