On Wed, Aug 13, 2014 at 10:42:59AM -0400, Vivek Goyal wrote: > Currently new system call kexec_file_load() and all the associated code > compiles if CONFIG_KEXEC=y. But new syscall also compiles purgatory code > which currently uses gcc option -mcmodel=large. This option seems to be > available only gcc 4.4 onwards. > > Hiding new functionality behind a new config option will not break > existing users of old gcc. Those who wish to enable new functionality > will require new gcc. Having said that, I am trying to figure out how > can I move away from using -mcmodel=large but that can take a while. > > I think there are other advantages of introducing this new config > option. As this option will be enabled only on x86_64, other arches > don't have to compile generic kexec code which will never be used. > This new code selects CRYPTO=y and CRYPTO_SHA256=y. And all other > arches had to do this for CONFIG_KEXEC. Now with introduction > of new config option, we can remove crypto dependency from other > arches. > > Now CONFIG_KEXEC_FILE is available only on x86_64. So whereever I > had CONFIG_X86_64 defined, I got rid of that. > > For CONFIG_KEXEC_FILE, instead of doing select CRYPTO=y, I changed > it to "depends on CRYPTO=y". This should be safer as "select" is > not recursive. > > Signed-off-by: Vivek Goyal <vgoyal at redhat.com> > --- > arch/x86/Kbuild | 4 +--- > arch/x86/Kconfig | 18 ++++++++++++++---- > arch/x86/Makefile | 5 +---- > arch/x86/kernel/Makefile | 2 +- > arch/x86/kernel/crash.c | 6 ++---- > arch/x86/kernel/machine_kexec_64.c | 11 +++++++++++ > arch/x86/purgatory/Makefile | 5 +---- > kernel/kexec.c | 11 +++++++++++ > 8 files changed, 42 insertions(+), 20 deletions(-) Thanks Vivek. It is no surprise but applying this patch resolved my issue. Shaun