powerpc/configs: Replace pseries_le_defconfig with a Makefile target using merge_config
authorCyril Bur <cyrilbur@gmail.com>
Tue, 26 May 2015 01:36:57 +0000 (11:36 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 2 Jun 2015 06:54:49 +0000 (16:54 +1000)
commitea4d1a87e6dee541a525c822b0b5da160940fc67
treed1ce5d5e6863ff5e921b8654aa8646b10b4fbce3
parenta1c97df2787f6542257f1fd85e6a9b055e1125be
powerpc/configs: Replace pseries_le_defconfig with a Makefile target using merge_config

Rather than continuing to maintain a copy of pseries_defconfig with
CONFIG_CPU_LITTLE_ENDIAN enabled, use the generic merge_config script
and use an le.config to enable little endian on top of pseries_defconfig
without the need for a duplicated _defconfig file.

This method will require less maintenance in the future and will ensure
that both 'defconfigs' are always in sync.

It is worth noting that the seemingly more simple approach of:

  pseries_le_defconfig: pseries_defconfig
   $(Q)$(MAKE) le.config

Will not work when building using O=builddir.

The obvious fix to that:

  pseries_le_defconfig:
   $(Q)$(MAKE) -f $(srctree)/Makefile pseries_defconfig le.config

Also does not work. This is because if we have for example:

config FOO
depends on CPU_BIG_ENDIAN
select BAR

Then BAR will be enabled by the first call to kconfig (via
pseries_defconfig), and then will remain enabled after we merge
le.config, even though FOO will have been turned off.

The solution is to ensure to only invoke the kconfig logic once, after
we have merged all the config fragments. This ensures nothing is
select'ed on that should then be disabled by the later merged configs.
This is done through the explicit call to make olddefconfig

Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
Reviewed-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com>
[mpe: Massage change log, fix white space and use ARCH not SRCARCH]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/Makefile
arch/powerpc/configs/le.config [new file with mode: 0644]
arch/powerpc/configs/pseries_le_defconfig [deleted file]