On Wednesday 22 February 2012, Russell King - ARM Linux wrote:
On Tue, Feb 21, 2012 at 04:18:02PM -0800, Andrew Morton wrote:
After a while I got it to compile for i386. arm didn't go so well, partly because arm allmodconfig is presently horked (something to do with Kconfig not setting PHYS_OFFSET) and partly because arm defconfig doesn't permit CMA to be set. Got bored, gave up.
That's not going to get fixed, unfortunately. It requires us to find some way to force various options to certain states on all*config builds, because not surprisingly a value of 'y', 'm' or 'n' doesn't work for integer or hex config options.
So the only way all*config can be used on ARM is with a seed config file to force various options to particular states to ensure that we end up with a sane configuration that avoids crap like that.
Alternatively, we need a way to tell kconfig that various options are to be set in certain ways in the Kconfig files for all*config to avoid it wanting values for hex or int options.
I usually set KCONFIG_ALLCONFIG to a file containing the extra options I want, for another reason: As long as we are building platforms separately, all{no,yes,mod}config and randconfig will always build for the versatile platform instead of something more modern.
We could change that and make mach-vexpress the default, but we can also wait until we have the initial multiplatform support done and then use that one.
Building vexpress_defconfig (or most other defconfig, I would expect) works fine with the CMA series applied. This should also work, but there a few bugs in unrelated device drivers that would need to get fixed first.
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -sj3 allmodconfig \ KCONFIG_ALLCONFIG=$PWD/arch/arm/configs/vexpress_defconfig
Arnd