Atsushi Nemoto wrote: > In the toplevel Makefile, CROSS_COMPILE is described as: > > # CROSS_COMPILE can be set on the command line > # make CROSS_COMPILE=ia64-linux- > # Alternatively CROSS_COMPILE can be set in the environment. > # Default value for CROSS_COMPILE is not to prefix executables > # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile > > And currently, arch/mips/Makefile assigns CROSS_COMPILE as: > > CROSS_COMPILE := $(tool-prefix) > > This overrides environment variable's settings unconditionaly so we > can no do the 'alternative' method described above (specify > CROSS_COMPILE by shell environment variable). > > If arch/mips/Makefile used "?=" assigment instead of ":=", we can > specify CROSS_COMPILE by shell environment variable. > > Is there any reason to using ":=" ? If no, shouldn't we change > arch/mips/Makefile corresponding to the description? > In general this seems correct. Another point is that the kernel has this: ifdef CONFIG_CROSSCOMPILE CROSS_COMPILE := $(tool-prefix) endif config CROSSCOMPILE bool "Are you using a crosscompiler" help Say Y here if you are compiling the kernel on a different architecture than the one it is intended to run on. I think the Kconfig could be changed to say that CONFIG_CROSSCOMPILE makes the build system use a built-in default tool prefix. -Geoff