ARM: config: sort select statements alphanumerically
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 6 Oct 2012 16:12:25 +0000 (17:12 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 13 Oct 2012 16:11:28 +0000 (17:11 +0100)
commitb1b3f49ce4606452279b58b17f2bbe2ba00304b7
treec9cfdc72dd580a9c3ace71846af45b4f65268f46
parent4f1cd91497774488ed16119ec3f54b3daf1561de
ARM: config: sort select statements alphanumerically

As suggested by Andrew Morton:

  This is a pet peeve of mine.  Any time there's a long list of items
  (header file inclusions, kconfig entries, array initalisers, etc) and
  someone wants to add a new item, they *always* go and stick it at the
  end of the list.

  Guys, don't do this.  Either put the new item into a randomly-chosen
  position or, probably better, alphanumerically sort the list.

lets sort all our select statements alphanumerically.  This commit was
created by the following perl:

while (<>) {
while (/\\\s*$/) {
$_ .= <>;
}
undef %selects if /^\s*config\s+/;
if (/^\s+select\s+(\w+).*/) {
if (defined($selects{$1})) {
if ($selects{$1} eq $_) {
print STDERR "Warning: removing duplicated $1 entry\n";
} else {
print STDERR "Error: $1 differently selected\n".
"\tOld: $selects{$1}\n".
"\tNew: $_\n";
exit 1;
}
}
$selects{$1} = $_;
next;
}
if (%selects and (/^\s*$/ or /^\s+help/ or /^\s+---help---/ or
  /^endif/ or /^endchoice/)) {
foreach $k (sort (keys %selects)) {
print "$selects{$k}";
}
undef %selects;
}
print;
}
if (%selects) {
foreach $k (sort (keys %selects)) {
print "$selects{$k}";
}
}

It found two duplicates:

Warning: removing duplicated S5P_SETUP_MIPIPHY entry
Warning: removing duplicated HARDIRQS_SW_RESEND entry

and they are identical duplicates, hence the shrinkage in the diffstat
of two lines.

We have four testers reporting success of this change (Tony, Stephen,
Linus and Sekhar.)

Acked-by: Jason Cooper <jason@lakedaemon.net>
Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
39 files changed:
arch/arm/Kconfig
arch/arm/common/Kconfig
arch/arm/mach-at91/Kconfig
arch/arm/mach-clps711x/Kconfig
arch/arm/mach-davinci/Kconfig
arch/arm/mach-exynos/Kconfig
arch/arm/mach-footbridge/Kconfig
arch/arm/mach-h720x/Kconfig
arch/arm/mach-imx/Kconfig
arch/arm/mach-ixp4xx/Kconfig
arch/arm/mach-mmp/Kconfig
arch/arm/mach-msm/Kconfig
arch/arm/mach-nomadik/Kconfig
arch/arm/mach-omap1/Kconfig
arch/arm/mach-omap2/Kconfig
arch/arm/mach-prima2/Kconfig
arch/arm/mach-pxa/Kconfig
arch/arm/mach-realview/Kconfig
arch/arm/mach-s3c2412/Kconfig
arch/arm/mach-s3c2440/Kconfig
arch/arm/mach-s3c24xx/Kconfig
arch/arm/mach-s3c64xx/Kconfig
arch/arm/mach-s5p64x0/Kconfig
arch/arm/mach-s5pc100/Kconfig
arch/arm/mach-s5pv210/Kconfig
arch/arm/mach-sa1100/Kconfig
arch/arm/mach-shmobile/Kconfig
arch/arm/mach-tegra/Kconfig
arch/arm/mach-u300/Kconfig
arch/arm/mach-ux500/Kconfig
arch/arm/mach-versatile/Kconfig
arch/arm/mm/Kconfig
arch/arm/plat-mxc/Kconfig
arch/arm/plat-mxc/devices/Kconfig
arch/arm/plat-nomadik/Kconfig
arch/arm/plat-omap/Kconfig
arch/arm/plat-s3c24xx/Kconfig
arch/arm/plat-samsung/Kconfig
arch/arm/plat-spear/Kconfig