want to verify equivalence of Kconfig variants

Jeff Haran jharan at bytemobile.com
Fri Feb 24 18:25:50 EST 2012


> -----Original Message-----
> From: kernelnewbies-bounces at kernelnewbies.org [mailto:kernelnewbies-
> bounces at kernelnewbies.org] On Behalf Of Robert P. J. Day
> Sent: Friday, February 24, 2012 11:41 AM
> To: Kernel Newbies
> Subject: want to verify equivalence of Kconfig variants
> 
> 
>   i'm fairly sure i know the answer to this, but i figured i'd run it
> by others just to make sure i'm not missing anything subtle.
> 
>  in drivers/video/omap2/Makefile, we see:
> 
> ... snip ...
> obj-$(CONFIG_OMAP2_DSS) += dss/
> obj-$(CONFIG_FB_OMAP2) += omapfb/
> obj-y += displays/
> ... snip ...
> 
> and when i see "obj-y", i like to assume that's a component that will
> be compiled unconditionally.  but if you look at the Kconfig file in
> the displays/ directory, you see:
> 
> menu "OMAP2/3 Display Device Drivers"
>         depends on OMAP2_DSS
> ... entire file contents ...
> endmenu
> 
>   but that suggests that that entire subdirectory depends on
> OMAP2_DSS, so one could remove the dependency from that Kconfig file
> and just move it up to the Makefile above:
> 
> obj-$(CONFIG_OMAP2_DSS) += displays/
> 
> correct?  i prefer that approach since the dependency is obvious from
> the Makefile, without having to descend into the directory itself to
> learn of it.
> 
>   thoughts?  is there anything i'm not noticing about this?
> 
> rday

I'm no expert on kbuild, but I don't think your modification would be
equivalent to what's there now. In Documentation/kbuild/makefiles.txt,
they describe what obj-y means in section 3.2. If I follow the
description, it defines objects that will be linked with the kernel
image, so this:

obj-y += displays/

presumably means that all source files in the displays subdirectory will
be compiled and linked with the kernel image.

With this:

obj-$(CONFIG_OMAP2_DSS) += displays/

CONFIG_OMAP2_DSS could evaluate to 'm' depending on your configuration,
which would mean the same objects would be linked into a loadable
module.

Jeff Haran






More information about the Kernelnewbies mailing list