Heads up: Linus plans to kill ARM defconfigs

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Thu Jun 10 02:32:34 EDT 2010


Hello,

On Wed, Jun 09, 2010 at 06:32:58AM -0700, Daniel Walker wrote:
> On Wed, 2010-06-09 at 08:07 +0200, Hendrik Sattler wrote:
> > Am Mittwoch 09 Juni 2010, 01:21:24 schrieb Ryan Mallon:
> > > Yes. I thought the problem was that Kconfig doesn't work correctly for
> > > this though. Does having 'select MTD_PARTITIONS' automatically cause
> > > CONFIG_MTD to be set? If not, then you basically need to have the full
> > > config option list, which is basically what defconfig is.
> > 
> > Anybody thought about improving Kconfig to make this possible?
> > Specifying CONFIG_MTD and CONFIG_MTD_PARTITIONS again and again will just 
> > repeat information (that CONFIG_MTD_PARTITIONS depends on CONFIG_MTD).
> > The recursive 'select' could have a different name.
> 
> There is work going on to create a SAT solver because the depends lines
> are often expression instead of just specifying a single other config
> option. So updating the select to work correctly isn't entirely trivial.
> 
> The other thing the SAT solver _could_ do is trivialize the current
> defconfig into files to only 10 lines or so depending on which arm ..
> For instance a defconfig file for trout under mach-msm (the one I
> maintain) would look like this,
> 
> CONFIG_MACH_TROUT=y
> CONFIG_MSM_DEBUG_UART3=y
> CONFIG_MMC_MSM7X00A=y
I removed all lines from all defconfigs that don't affect the resulting
.config basing on .35-rc1.  The diffstat is below.  As far as I checked
there are no added lines and the 'pluses' are only context noise.  So
the defconfigs are down to 124.4 (from 1214.4) lines on average.
You can see the result at

	http://git.pengutronix.de/?p=ukl/linux-2.6.git;a=commitdiff;h=arm/defconfig/reduced-v2.6.35-rc1

I'm currently reducing the defconfigs in .34 to be able to compare the
diffstats between (.34 -> .35-rc1) and between (.34-reduced ->
.35-reduced).  I would expect the diff is more or less the same as with
the Kconfig idea.

Compared to the Kconfig idea I see a few advantages:
 - Assuming that kautobuild would only use a base config + per arch
   selections we would loose compile coverage of e.g. CONFIG_AEABI.
 - I have a script that reduces a config, so there is a bit less manual
   work.
 - No need to change kautobuild

Best regards
Uwe

 arch/arm/configs/acs5k_defconfig               | 1146 --------------
 arch/arm/configs/acs5k_tiny_defconfig          |  860 ----------
 arch/arm/configs/afeb9260_defconfig            | 1157 +--------------
 arch/arm/configs/am200epdkit_defconfig         | 1044 +------------
 arch/arm/configs/am3517_evm_defconfig          | 1250 ---------------
 arch/arm/configs/ams_delta_defconfig           | 1224 +--------------
 arch/arm/configs/ap4evb_defconfig              |  722 ---------
 arch/arm/configs/assabet_defconfig             |  862 +----------
 arch/arm/configs/at572d940hfek_defconfig       | 1318 +---------------
 arch/arm/configs/at91cap9adk_defconfig         | 1107 +-------------
 arch/arm/configs/at91rm9200dk_defconfig        |  955 +-----------
 arch/arm/configs/at91rm9200ek_defconfig        |  942 +-----------
 arch/arm/configs/at91sam9260ek_defconfig       |  958 +-----------
 arch/arm/configs/at91sam9261ek_defconfig       | 1087 +-------------
 arch/arm/configs/at91sam9263ek_defconfig       | 1103 +-------------
 arch/arm/configs/at91sam9g20ek_defconfig       | 1049 +------------
 arch/arm/configs/at91sam9rlek_defconfig        |  864 +----------
 arch/arm/configs/ateb9200_defconfig            | 1222 +--------------
 arch/arm/configs/badge4_defconfig              | 1178 +--------------
 arch/arm/configs/bcmring_defconfig             |  721 ---------
 arch/arm/configs/cam60_defconfig               | 1089 +-------------
 arch/arm/configs/carmeva_defconfig             |  696 +--------
 arch/arm/configs/cerfcube_defconfig            |  851 +----------
 arch/arm/configs/cm_t35_defconfig              | 1577 +------------------
 arch/arm/configs/cm_x2xx_defconfig             | 1774 +---------------------
 arch/arm/configs/cm_x300_defconfig             | 1565 ------------------
 arch/arm/configs/cns3420vb_defconfig           |  759 ---------
 arch/arm/configs/colibri_pxa270_defconfig      | 1556 ------------------
 arch/arm/configs/colibri_pxa300_defconfig      | 1082 -------------
 arch/arm/configs/collie_defconfig              |  887 +----------
 arch/arm/configs/corgi_defconfig               | 1621 +-------------------
 arch/arm/configs/cpu9260_defconfig             | 1225 +--------------
 arch/arm/configs/cpu9g20_defconfig             | 1215 +--------------
 arch/arm/configs/cpuat91_defconfig             | 1207 +--------------
 arch/arm/configs/csb337_defconfig              | 1113 +-------------
 arch/arm/configs/csb637_defconfig              | 1124 +-------------
 arch/arm/configs/da8xx_omapl_defconfig         | 1205 --------------
 arch/arm/configs/davinci_all_defconfig         | 1641 -------------------
 arch/arm/configs/devkit8000_defconfig          | 1732 +--------------------
 arch/arm/configs/dove_defconfig                | 1482 -----------------
 arch/arm/configs/ebsa110_defconfig             |  692 +--------
 arch/arm/configs/ecbat91_defconfig             | 1226 +--------------
 arch/arm/configs/edb7211_defconfig             |  554 +-------
 arch/arm/configs/em_x270_defconfig             | 1554 +------------------
 arch/arm/configs/ep93xx_defconfig              | 1340 ----------------
 arch/arm/configs/eseries_pxa_defconfig         | 1128 -------------
 arch/arm/configs/ezx_defconfig                 | 1582 +-------------------
 arch/arm/configs/footbridge_defconfig          | 1185 +--------------
 arch/arm/configs/fortunet_defconfig            |  538 +-------
 arch/arm/configs/g3evm_defconfig               |  717 ---------
 arch/arm/configs/g4evm_defconfig               |  722 ---------
 arch/arm/configs/h3600_defconfig               | 1084 -------------
 arch/arm/configs/h5000_defconfig               |  917 +-----------
 arch/arm/configs/h7201_defconfig               |  542 +-------
 arch/arm/configs/h7202_defconfig               |  697 +--------
 arch/arm/configs/hackkit_defconfig             |  735 +---------
 arch/arm/configs/htcherald_defconfig           | 1073 +-------------
 arch/arm/configs/igep0020_defconfig            | 1467 -----------------
 arch/arm/configs/imote2_defconfig              | 1649 +-------------------
 arch/arm/configs/integrator_defconfig          |  817 +----------
 arch/arm/configs/iop13xx_defconfig             | 1061 +------------
 arch/arm/configs/iop32x_defconfig              | 1282 +---------------
 arch/arm/configs/iop33x_defconfig              | 1300 ---------------
 arch/arm/configs/ixp2000_defconfig             | 1024 +------------
 arch/arm/configs/ixp23xx_defconfig             | 1315 +---------------
 arch/arm/configs/ixp4xx_defconfig              | 1394 +----------------
 arch/arm/configs/jornada720_defconfig          | 1062 -------------
 arch/arm/configs/kafa_defconfig                |  830 +----------
 arch/arm/configs/kb9202_defconfig              | 1179 +--------------
 arch/arm/configs/kirkwood_defconfig            | 1700 --------------------
 arch/arm/configs/ks8695_defconfig              |  946 -----------
 arch/arm/configs/lart_defconfig                |  824 +----------
 arch/arm/configs/loki_defconfig                | 1028 +------------
 arch/arm/configs/lpd270_defconfig              |  968 +------------
 arch/arm/configs/lpd7a400_defconfig            |  835 +----------
 arch/arm/configs/lpd7a404_defconfig            | 1050 +------------
 arch/arm/configs/lubbock_defconfig             |  762 +---------
 arch/arm/configs/lusl7200_defconfig            |  436 +-----
 arch/arm/configs/magician_defconfig            | 1358 +----------------
 arch/arm/configs/mainstone_defconfig           |  755 +---------
 arch/arm/configs/mini2440_defconfig            | 1722 +--------------------
 arch/arm/configs/mmp2_defconfig                | 1135 -------------
 arch/arm/configs/msm_defconfig                 |  830 +----------
 arch/arm/configs/mv78xx0_defconfig             | 1547 ------------------
 arch/arm/configs/mx1_defconfig                 | 1018 +------------
 arch/arm/configs/mx21_defconfig                | 1072 -------------
 arch/arm/configs/mx27_defconfig                | 1152 --------------
 arch/arm/configs/mx31pdk_defconfig             |  728 ---------
 arch/arm/configs/mx3_defconfig                 | 1089 -------------
 arch/arm/configs/mx51_defconfig                | 1130 -------------
 arch/arm/configs/n770_defconfig                | 1283 ---------------
 arch/arm/configs/n8x0_defconfig                | 1134 +-------------
 arch/arm/configs/neocore926_defconfig          | 1205 +--------------
 arch/arm/configs/neponset_defconfig            | 1081 +-------------
 arch/arm/configs/netwinder_defconfig           |  978 +------------
 arch/arm/configs/netx_defconfig                |  845 +----------
 arch/arm/configs/nhk8815_defconfig             | 1185 +--------------
 arch/arm/configs/ns9xxx_defconfig              |   23 -
 arch/arm/configs/nuc910_defconfig              |  844 ----------
 arch/arm/configs/nuc950_defconfig              |  896 -----------
 arch/arm/configs/nuc960_defconfig              |  855 ----------
 arch/arm/configs/omap3_beagle_defconfig        | 1258 +---------------
 arch/arm/configs/omap3_defconfig               | 1969 -----------------------
 arch/arm/configs/omap3_evm_defconfig           | 1429 +-----------------
 arch/arm/configs/omap3_pandora_defconfig       | 1640 +-------------------
 arch/arm/configs/omap3_stalker_lks_defconfig   | 1541 ------------------
 arch/arm/configs/omap3_touchbook_defconfig     | 1809 ---------------------
 arch/arm/configs/omap_2430sdp_defconfig        | 1181 +--------------
 arch/arm/configs/omap_3430sdp_defconfig        | 1553 +------------------
 arch/arm/configs/omap_3630sdp_defconfig        | 1456 -----------------
 arch/arm/configs/omap_4430sdp_defconfig        | 1157 --------------
 arch/arm/configs/omap_apollon_2420_defconfig   |  873 +----------
 arch/arm/configs/omap_generic_1510_defconfig   | 1089 +-------------
 arch/arm/configs/omap_generic_1610_defconfig   | 1092 +-------------
 arch/arm/configs/omap_generic_1710_defconfig   | 1014 +------------
 arch/arm/configs/omap_generic_2420_defconfig   |  619 +--------
 arch/arm/configs/omap_h2_1610_defconfig        | 1234 +---------------
 arch/arm/configs/omap_h4_2420_defconfig        | 1018 +------------
 arch/arm/configs/omap_innovator_1510_defconfig | 1152 +--------------
 arch/arm/configs/omap_innovator_1610_defconfig |  780 ---------
 arch/arm/configs/omap_ldp_defconfig            | 1124 -------------
 arch/arm/configs/omap_osk_5912_defconfig       | 1003 ------------
 arch/arm/configs/omap_perseus2_730_defconfig   |  862 ----------
 arch/arm/configs/omap_zoom2_defconfig          | 1408 +-----------------
 arch/arm/configs/omap_zoom3_defconfig          | 1455 -----------------
 arch/arm/configs/onearm_defconfig              | 1067 +-------------
 arch/arm/configs/orion5x_defconfig             | 1693 --------------------
 arch/arm/configs/overo_defconfig               | 1621 +-------------------
 arch/arm/configs/palmte_defconfig              |  712 ---------
 arch/arm/configs/palmtt_defconfig              |  801 +----------
 arch/arm/configs/palmz71_defconfig             |  839 +----------
 arch/arm/configs/palmz72_defconfig             |  865 ----------
 arch/arm/configs/pcm027_defconfig              |  993 ------------
 arch/arm/configs/picotux200_defconfig          | 1207 +--------------
 arch/arm/configs/pleb_defconfig                |  712 +--------
 arch/arm/configs/pnx4008_defconfig             | 1286 +---------------
 arch/arm/configs/pxa168_defconfig              |  903 -----------
 arch/arm/configs/pxa255-idp_defconfig          |  753 +---------
 arch/arm/configs/pxa3xx_defconfig              | 1207 +--------------
 arch/arm/configs/pxa910_defconfig              |  820 ----------
 arch/arm/configs/qil-a9260_defconfig           | 1146 +--------------
 arch/arm/configs/raumfeld_defconfig            | 1690 --------------------
 arch/arm/configs/realview-smp_defconfig        | 1005 ------------
 arch/arm/configs/realview_defconfig            | 1001 ------------
 arch/arm/configs/rpc_defconfig                 |  882 +-----------
 arch/arm/configs/rx51_defconfig                | 1648 +-------------------
 arch/arm/configs/s3c2410_defconfig             | 2018 ------------------------
 arch/arm/configs/s3c6400_defconfig             | 1445 -----------------
 arch/arm/configs/s5p6440_defconfig             |  947 -----------
 arch/arm/configs/s5p6442_defconfig             |  842 ----------
 arch/arm/configs/s5pc100_defconfig             |  977 ------------
 arch/arm/configs/s5pc110_defconfig             |  858 ----------
 arch/arm/configs/s5pv210_defconfig             |  861 ----------
 arch/arm/configs/sam9_l9260_defconfig          |  962 +-----------
 arch/arm/configs/shannon_defconfig             |  837 +----------
 arch/arm/configs/shark_defconfig               | 1167 --------------
 arch/arm/configs/simpad_defconfig              |  886 +----------
 arch/arm/configs/spear300_defconfig            |  722 ---------
 arch/arm/configs/spear310_defconfig            |  723 ---------
 arch/arm/configs/spear320_defconfig            |  723 ---------
 arch/arm/configs/spear600_defconfig            |  711 ---------
 arch/arm/configs/spitz_defconfig               | 1547 +------------------
 arch/arm/configs/stamp9g20_defconfig           | 1327 ----------------
 arch/arm/configs/stmp378x_defconfig            | 1014 +------------
 arch/arm/configs/stmp37xx_defconfig            |  895 +-----------
 arch/arm/configs/sx1_defconfig                 | 1015 +------------
 arch/arm/configs/tct_hammer_defconfig          |  817 +----------
 arch/arm/configs/trizeps4_defconfig            | 1502 +-----------------
 arch/arm/configs/u300_defconfig                | 1118 -------------
 arch/arm/configs/u8500_defconfig               |  621 --------
 arch/arm/configs/usb-a9260_defconfig           | 1039 +------------
 arch/arm/configs/usb-a9263_defconfig           | 1031 +------------
 arch/arm/configs/versatile_defconfig           |  928 +-----------
 arch/arm/configs/viper_defconfig               | 1502 ------------------
 arch/arm/configs/xcep_defconfig                | 1031 +------------
 arch/arm/configs/yl9200_defconfig              | 1084 +-------------
 arch/arm/configs/zeus_defconfig                | 1842 ---------------------
 177 files changed, 652 insertions(+), 194157 deletions(-)

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |



More information about the linux-arm-kernel mailing list