All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jörn Engel" <joern@logfs.org>
To: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Sam Ravnborg <sam@ravnborg.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [Patch] Always include <linux/types.h>
Date: Fri, 7 Nov 2008 09:02:37 +0100	[thread overview]
Message-ID: <20081107080237.GB28847@logfs.org> (raw)
In-Reply-To: <20081105203212.GA11910@x200.localdomain>

On Wed, 5 November 2008 23:32:12 +0300, Alexey Dobriyan wrote:
> 
> If you are working on improving compile times, it's better concentrate
> on removing unneeded includes. If just removing "extern"s from prototypes
> can reliably save several seconds, reducing headers can do wonders.

My goal was more to assume we want all headers to compile standalone and
see where that would lead.  Result for include/linux/ was some 500 added
lines, 170 of which were to add types.h or compiler.h.  Another 50-100
further includes were fairly well-spread across the spectrum.  The
remainder was declarations like
struct super_block;

Overall we have three evils to choose from.  Headers with unresolved
dependencies lead to random compile breakage after removing a header
from some .c file.  Even if the change was tested, it can still break
for some config/architecture combination month down the line.

Sprinkling more includes throughout the headers increase compile time.
And the common practice of declaring a structure instead of including
the header is a pita when working with ctags.  The last problem is
particularly annoying since I have no idea what problem this warning is
supposed to solve:
In file included from include/linux/coda_cache.c:1:
include/linux/coda_cache.h:18: warning: ‘struct super_block’ declared inside parameter list
include/linux/coda_cache.h:18: warning: its scope is only this definition or declaration, which is probably not what you want

Should we just teach gcc to shut up about that one?

Jörn

-- 
Anything that can go wrong, will.
-- Finagle's Law

  reply	other threads:[~2008-11-07  8:02 UTC|newest]

Thread overview: 183+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <48876009.8010701@panasas.com>
2008-07-24 17:30 ` [RFC 00/14] open-osd: OSD Initiator library for Linux Boaz Harrosh
2008-07-24 17:40   ` [RFC 01/14] libosd: OSDv1 Headers Boaz Harrosh
2008-07-24 17:45   ` [RFC 02/14] libosd: OSDv1 preliminary implementation Boaz Harrosh
2008-07-24 17:47   ` [RFC 03/14] osd_uld: OSD scsi ULD Boaz Harrosh
2008-07-27 21:16     ` James Bottomley
2008-08-06 17:25       ` Boaz Harrosh
2008-07-24 17:49   ` [RFC 04/14] osd_ktests: Add basic OSD tests Boaz Harrosh
2008-07-24 17:51   ` [RFC 05/14] libosd: attributes Support Boaz Harrosh
2008-07-24 17:53   ` [RFC 06/14] osd_ktests: Test Attribute lists Boaz Harrosh
2008-07-24 17:54   ` [RFC 07/14] libosd: OSD Security processing stubs Boaz Harrosh
2008-07-24 17:55   ` [RFC 08/14] libosd: Add Flush and List-objects support Boaz Harrosh
2008-07-24 17:57   ` [RFC 09/14] libosd: Not implemented commands Boaz Harrosh
2008-07-24 17:58   ` [RFC 10/14] libosd: OSD version 2 Support Boaz Harrosh
2008-07-24 17:59   ` [RFC 11/14] osd_ktests: OSDv2 auto detection Boaz Harrosh
2008-07-24 18:00   ` [RFC 12/14] osd: Kconfig file for in-tree builds Boaz Harrosh
2008-07-24 18:02   ` [RFC 13/14] osd: Documentation for OSD library Boaz Harrosh
2008-07-24 18:03   ` [RFC 14/14] scsi: Add osd library to build system Boaz Harrosh
2008-11-04 16:09 ` [PATCHSET 00/18] open-osd: OSD Initiator library for Linux Boaz Harrosh
2008-11-04 16:09   ` Boaz Harrosh
2008-11-04 16:17   ` [PATCH 01/18] major.h: char-major number for OSD device driver Boaz Harrosh
2008-11-04 16:17     ` Boaz Harrosh
2008-11-26 17:33     ` [osd-dev] " Boaz Harrosh
2008-11-26 18:07       ` Randy Dunlap
2008-11-26 18:07         ` Randy Dunlap
2008-11-04 16:42   ` [PATCH 02/18] scsi: OSD_TYPE Boaz Harrosh
2008-11-04 16:42   ` Boaz Harrosh
2008-11-04 16:44   ` [PATCH 03/18] libosd: OSDv1 Headers Boaz Harrosh
2008-11-04 16:44     ` Boaz Harrosh
2008-11-04 19:10     ` Andrew Morton
2008-11-04 19:42       ` Jörn Engel
2008-11-04 19:42         ` Jörn Engel
2008-11-04 20:29         ` Jörn Engel
2008-11-05 13:00         ` Boaz Harrosh
2008-11-05 13:00           ` Boaz Harrosh
2008-11-05 12:54       ` Boaz Harrosh
2008-11-05 12:54         ` Boaz Harrosh
2008-11-05 13:09         ` James Bottomley
2008-11-05 13:29           ` Boaz Harrosh
2008-11-09 14:52     ` [PATCH 03/18 ver2] " Boaz Harrosh
2008-11-09 14:52       ` Boaz Harrosh
2008-11-09 17:45       ` Jörn Engel
2008-11-09 17:45         ` Jörn Engel
2008-11-10  8:47         ` Boaz Harrosh
2008-11-10  8:47           ` Boaz Harrosh
2008-11-10 15:17           ` Jörn Engel
2008-11-10 15:17             ` Jörn Engel
2008-11-10 17:29       ` Randy Dunlap
2008-11-12 13:10         ` Boaz Harrosh
2008-11-12 13:10           ` Boaz Harrosh
2008-11-12 16:48           ` Randy Dunlap
2008-11-12 17:09             ` Boaz Harrosh
2008-11-12 17:15             ` Johannes Berg
2008-11-12 13:13         ` [PATCH 03/18 ver3] " Boaz Harrosh
2008-11-12 13:13           ` Boaz Harrosh
2008-11-12 18:59           ` Randy Dunlap
2008-11-13  9:38             ` Boaz Harrosh
2008-11-13 12:25             ` [PATCH 03/18 ver4] " Boaz Harrosh
2008-11-13 12:25               ` Boaz Harrosh
2008-11-13 18:16               ` Randy Dunlap
2008-11-13 15:41                 ` [osd-dev] " Benny Halevy
2008-11-04 16:44   ` [PATCH 04/18] libosd: OSDv1 preliminary implementation Boaz Harrosh
2008-11-04 18:03     ` Sam Ravnborg
2008-11-05 13:12       ` Boaz Harrosh
2008-11-09 14:55         ` [osd-dev] " Boaz Harrosh
2008-11-10  5:37           ` Randy Dunlap
2008-11-10  9:00             ` Boaz Harrosh
2008-11-05 16:39       ` [Patch] Always include <linux/types.h> Jörn Engel
2008-11-05 17:23         ` Alexey Dobriyan
2008-11-05 19:16           ` Jörn Engel
2008-11-05 19:48             ` Andreas Schwab
2008-11-05 20:02             ` Jörn Engel
2008-11-05 20:32               ` Alexey Dobriyan
2008-11-07  8:02                 ` Jörn Engel [this message]
2008-11-05 20:20             ` Alexey Dobriyan
2008-11-05 17:48         ` Boaz Harrosh
2008-11-04 19:16     ` [PATCH 04/18] libosd: OSDv1 preliminary implementation Andrew Morton
2008-11-05 13:44       ` Boaz Harrosh
2008-11-09 14:50     ` [PATCH 04/18 ver2] " Boaz Harrosh
2008-11-04 16:44   ` [PATCH 04/18] " Boaz Harrosh
2008-11-04 16:44   ` [PATCH 05/18] osd_uld: OSD scsi ULD Boaz Harrosh
2008-11-04 16:44     ` Boaz Harrosh
2008-11-04 16:44   ` [PATCH 06/18] osd_uld: API for retrieving osd devices from Kernel Boaz Harrosh
2008-11-04 16:44     ` Boaz Harrosh
2008-11-04 16:44   ` [PATCH 07/18] osd_test: User-mode application to run the OSD tests Boaz Harrosh
2008-11-04 16:44     ` Boaz Harrosh
2008-11-04 16:44   ` [PATCH 08/18] osd_ktests: Add basic " Boaz Harrosh
2008-11-04 16:44     ` Boaz Harrosh
2008-11-04 16:44   ` [PATCH 09/18] libosd: attributes Support Boaz Harrosh
2008-11-04 16:44     ` Boaz Harrosh
2008-11-04 16:44   ` [PATCH 10/18] osd_ktests: Test Attribute lists Boaz Harrosh
2008-11-04 16:44     ` Boaz Harrosh
2008-11-04 16:44   ` [PATCH 11/18] libosd: OSD Security processing stubs Boaz Harrosh
2008-11-04 16:44     ` Boaz Harrosh
2008-11-04 16:44   ` [PATCH 12/18] libosd: Add Flush and List-objects support Boaz Harrosh
2008-11-04 16:44     ` Boaz Harrosh
2008-11-04 16:44   ` [PATCH 13/18] libosd: Not implemented commands Boaz Harrosh
2008-11-04 16:44     ` Boaz Harrosh
2008-11-04 16:44   ` [PATCH 15/18] libosd: OSDv2 auto detection Boaz Harrosh
2008-11-04 16:44     ` Boaz Harrosh
2008-11-04 16:44   ` [PATCH 14/18] libosd: OSD version 2 Support Boaz Harrosh
2008-11-04 16:44     ` Boaz Harrosh
2008-11-04 16:44   ` [PATCH 16/18] osd: Documentation for OSD library Boaz Harrosh
2008-11-04 16:44     ` Boaz Harrosh
2008-11-04 16:44   ` [PATCH 17/18] osd: Kconfig file for in-tree builds Boaz Harrosh
2008-11-04 16:44     ` Boaz Harrosh
2008-11-04 16:44   ` [PATCH 18/18] scsi: Add osd library to build system Boaz Harrosh
2008-11-04 16:44     ` Boaz Harrosh
2008-11-04 19:19   ` [PATCHSET 00/18] open-osd: OSD Initiator library for Linux Andrew Morton
2008-11-05 13:56     ` Boaz Harrosh
2008-11-09 14:58     ` Boaz Harrosh
2008-11-09 23:26       ` Stephen Rothwell
2008-11-10 12:52         ` Boaz Harrosh
2008-11-10 13:04           ` Stephen Rothwell
2008-12-22 12:32 ` Boaz Harrosh
2008-12-22 12:32   ` Boaz Harrosh
2008-12-22 12:37   ` [PATCH 01/18] major.h: char-major number for OSD device driver Boaz Harrosh
2008-12-22 12:37     ` Boaz Harrosh
2008-12-22 12:39   ` [PATCH 02/18] scsi: OSD_TYPE Boaz Harrosh
2008-12-22 12:39     ` Boaz Harrosh
2008-12-22 12:41   ` [PATCH 03/18] libosd: OSDv1 Headers Boaz Harrosh
2008-12-22 12:41     ` Boaz Harrosh
2008-12-22 12:43   ` [PATCH 04/18] libosd: OSDv1 preliminary implementation Boaz Harrosh
2008-12-22 12:43     ` Boaz Harrosh
2008-12-22 12:46   ` [PATCH 05/18] osd_uld: OSD scsi ULD Boaz Harrosh
2008-12-22 12:46     ` Boaz Harrosh
2008-12-22 12:49   ` [PATCH 06/18] osd_uld: API for retrieving osd devices from Kernel Boaz Harrosh
2008-12-22 12:49     ` Boaz Harrosh
2008-12-22 12:51   ` [PATCH 07/18] osd_ktests: Add basic OSD tests Boaz Harrosh
2008-12-22 12:51     ` Boaz Harrosh
2008-12-22 12:55   ` [PATCH 08/18] libosd: attributes Support Boaz Harrosh
2008-12-22 12:55     ` Boaz Harrosh
2008-12-22 12:57   ` [PATCH 09/18] osd_ktests: Test Attribute lists Boaz Harrosh
2008-12-22 12:57     ` Boaz Harrosh
2008-12-22 13:00   ` [PATCH 10/18] libosd: OSD Security processing stubs Boaz Harrosh
2008-12-22 13:00     ` Boaz Harrosh
2008-12-22 13:02   ` [PATCH 11/18] libosd: Add Flush and List-objects support Boaz Harrosh
2008-12-22 13:02     ` Boaz Harrosh
2008-12-22 13:04   ` [PATCH 12/18] libosd: Not implemented commands Boaz Harrosh
2008-12-22 13:04     ` Boaz Harrosh
2008-12-22 13:07   ` [PATCH 13/18] libosd: OSD version 2 Support Boaz Harrosh
2008-12-22 13:07     ` Boaz Harrosh
2008-12-22 13:09   ` [PATCH 14/18] libosd: OSDv2 auto detection Boaz Harrosh
2008-12-22 13:09     ` Boaz Harrosh
2008-12-22 13:13   ` [PATCH 15/18] libosd: SCSI/OSD Sense decoding support Boaz Harrosh
2008-12-22 13:13     ` Boaz Harrosh
2008-12-22 13:16   ` [PATCH 16/18] osd: Documentation for OSD library Boaz Harrosh
2008-12-22 13:16     ` Boaz Harrosh
2008-12-22 13:18   ` [PATCH 17/18] osd: Kconfig file for in-tree builds Boaz Harrosh
2008-12-22 13:18     ` Boaz Harrosh
2008-12-22 13:20   ` [PATCH 18/18] scsi: Add osd library to build system Boaz Harrosh
2008-12-22 13:20     ` Boaz Harrosh
2009-01-06 14:04 ` [PATCHSET 00/18] open-osd: OSD Initiator library for 2.6.29 Boaz Harrosh
2009-01-06 14:07   ` [PATCH 01/18] major.h: char-major number for OSD device driver Boaz Harrosh
2009-01-06 14:10   ` [PATCH 02/18] scsi: OSD_TYPE Boaz Harrosh
2009-01-06 14:11   ` [PATCH 03/18] libosd: OSDv1 Headers Boaz Harrosh
2009-01-06 14:13   ` [PATCH 04/18] libosd: OSDv1 preliminary implementation Boaz Harrosh
2009-01-06 14:14   ` [PATCH 05/18] osd_uld: OSD scsi ULD Boaz Harrosh
2009-01-06 16:47     ` [PATCH ver2 05/16] " Boaz Harrosh
2009-01-06 14:16   ` [PATCH 06/18] osd_uld: API for retrieving osd devices from Kernel Boaz Harrosh
2009-01-06 14:17   ` [PATCH 07/18] osd_ktests: Add basic OSD tests Boaz Harrosh
2009-01-06 14:42     ` FUJITA Tomonori
2009-01-06 14:56       ` Boaz Harrosh
2009-01-06 15:12         ` FUJITA Tomonori
2009-01-06 15:49           ` Boaz Harrosh
2009-01-06 16:58             ` FUJITA Tomonori
2009-01-06 17:04               ` Boaz Harrosh
2009-01-06 16:49     ` Boaz Harrosh
2009-01-06 14:19   ` [PATCH 08/18] libosd: attributes Support Boaz Harrosh
2009-01-06 14:20   ` [PATCH 09/18] osd_ktests: Test Attribute lists Boaz Harrosh
2009-01-06 16:50     ` Boaz Harrosh
2009-01-06 14:21   ` [PATCH 10/18] libosd: OSD Security processing stubs Boaz Harrosh
2009-01-06 14:23   ` [PATCH 11/18] libosd: Add Flush and List-objects support Boaz Harrosh
2009-01-06 14:24   ` [PATCH 12/18] libosd: Not implemented commands Boaz Harrosh
2009-01-06 14:25   ` [PATCH 13/18] libosd: OSD version 2 Support Boaz Harrosh
2009-01-06 14:27   ` [PATCH 14/18] libosd: OSDv2 auto detection Boaz Harrosh
2009-01-06 14:29   ` [PATCH 15/18] libosd: SCSI/OSD Sense decoding support Boaz Harrosh
2009-01-06 14:31   ` [PATCH 16/18] osd: Documentation for OSD library Boaz Harrosh
2009-01-06 14:32   ` [PATCH 17/18] osd: Kconfig file for in-tree builds Boaz Harrosh
2009-01-06 17:40     ` Randy Dunlap
2009-01-07  8:48       ` Boaz Harrosh
2009-01-07 17:10         ` Randy Dunlap
2009-01-07  8:53       ` [PATCH ver2 15/16] " Boaz Harrosh
2009-01-06 14:34   ` [PATCH 18/18] scsi: Add osd library to build system Boaz Harrosh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081107080237.GB28847@logfs.org \
    --to=joern@logfs.org \
    --cc=adobriyan@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sam@ravnborg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.