Skip to content

Commit

Permalink
[PATCH] kbuild: fix dependency generation
Browse files Browse the repository at this point in the history
Commit 2e3646e changed the way the
split config tree is built, but failed to also adjust fixdep accordingly
- if changing a config option from or to m, files referencing the
respective CONFIG_..._MODULE (but not the corresponding CONFIG_...)
didn't get rebuilt.

The problem is that trisate symbol are represent with three different
symbols:
    SYMBOL=n => no symbol defined
    SYMBOL=y => CONFIG_SYMBOL defined to '1'
    SYMBOL=m => CONFIG_SYMBOL_MODULE defined to '1'

But conf_split_config do not distingush between the =y and =m case, so
only the =y case is honoured.

This is fixed in fixdep so when a CONFIG symbol with _MODULE is found we
skip that part and only look for the CONFIG_SYMBOL version.

Signed-off-by: Jan Beulich <[email protected]>
Signed-off-by: Sam Ravnborg <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Jan Beulich authored and Linus Torvalds committed Apr 1, 2007
1 parent f5ef2ab commit c21b1e4
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions scripts/basic/fixdep.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,11 @@
* the dependency on linux/autoconf.h by a dependency on every config
* option which is mentioned in any of the listed prequisites.
*
* To be exact, split-include populates a tree in include/config/,
* e.g. include/config/his/driver.h, which contains the #define/#undef
* for the CONFIG_HIS_DRIVER option.
* kconfig populates a tree in include/config/ with an empty file
* for each config symbol and when the configuration is updated
* the files representing changed config options are touched
* which then let make pick up the changes and the files that use
* the config symbols are rebuilt.
*
* So if the user changes his CONFIG_HIS_DRIVER option, only the objects
* which depend on "include/linux/config/his/driver.h" will be rebuilt,
Expand Down Expand Up @@ -245,6 +247,8 @@ void parse_config_file(char *map, size_t len)
continue;

found:
if (!memcmp(q - 7, "_MODULE", 7))
q -= 7;
use_config(p+7, q-p-7);
}
}
Expand Down

0 comments on commit c21b1e4

Please sign in to comment.