Re: whose job is it to include various header files?



On Fri, 14 Mar 2008, Robert P. J. Day wrote:

On Fri, 14 Mar 2008, mws@xxxxxxxxxxxxxxxxxx wrote:

what i said in my first sentence is the imho proper way: if you
alter sources and includes get obsolete, remove them and fix
compiling again for files that formerly depended (implicit or
explicit) on this altered sources. not to much work for the
developer himself and also not exhausting the compile times.

and, in my defense, that's what i *thought* i was doing, not having
noticed that one of those "unnecessary" #includes really was
required after all. argh. that was embarrassing.

sure, let's beat this to death.

upon reflection, i realize i was trying to deal with two different
issues. on the one hand, there are the (countless?) header files that
don't include header files they normally should. for instance,
imagine a file fubar.c that contains:

...
#include <linux/percpu.h>
...
... some reference to GFP_KERNEL ...
...

but doesn't include <linux/gfp.h>, which it should 'cuz it's referring
to GFP_KERNEL. the above will still work since percpu.h includes
slab.h, which includes gfp.h, so it all works out in the end. and
there's simply too much of that going on to do anything about.

on the other hand, something that *is* worth fixing is what's in
percpu.h right now:
...
#include <linux/string.h> /* For memset() */
...

since it's clear(?) that percpu.h has no need for string.h, it does
make sense to remove that include and see if that causes the build to
break because others have quietly been taking advantage of that
include.

IMHO, then, that second case is worth trying to fix when it comes
up. the first really isn't, but i had the two confused and thought i
had actually come across the second example. again, my stupidity.

rday

p.s. just for fun, i did remove that include of string.h from
percpu.h and i'm doing an allyesconfig x86 build off on the side just
to see the result. if it still builds, then that *would* be worth a
quick patch, just to stop including stuff you don't need. and there's
going to be *lot* less of that, i would think.

--


========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry:
Have classroom, will lecture.

http://crashcourse.ca Waterloo, Ontario, CANADA
========================================================================
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Gawd, go throw a flash!
    ... Plenty of active hair or lane, and she'll usably imagine everybody. ... You won't fix me embodying just about your vast isle. ... the illegal gate may wake more ... Robert never inherits until Robert steps the ...
    (comp.arch.embedded)
  • Re: cannot delete or move message from outbox
    ... Robert, I am unabel to delete just one email from the outbox and although I ... as your message below is over a year old I have not tried your fix. ... I did not use admin ...
    (microsoft.public.windows.vista.mail)
  • Re: help error
    ... no fix just confirmation of a known ... Robert ... > only difference this time is we have a server now [as opposed to ...
    (microsoft.public.office.misc)
  • Re: Yet Another Maccie Dud [was Re: Windows Vista Possibly Punishes GNU GCC Applications]
    ... | I would appreciate being informed of a fix for this problem, ... deficiencies of the DJGPP or GCC environments, or their libraries, ... or Win98SE, so the problem is due to V*sta, not GCC 3.04 or DJGPP. ... compiling, linking, and running my sample code, using any ...
    (comp.sys.mac.advocacy)
  • Re: [slrn] Now Finicky About X-Face Headers?
    ... the Shark wrote: ... A very dirty fix, assuming you're compiling from source, might be ... No. I'd rather not have to fix it at all, ... This is not good news for those of us who want a usable slrn ...
    (news.software.readers)

Loading