x86_64_defconfig and i386_defconfig: What is the difference?
Rajat Jain
rajatjain at juniper.net
Tue Sep 9 11:11:00 EDT 2014
Hi,
Thank you all for your responses. I got the answer I was looking for:
> Hello Rajat,
>
> Indeed, the i386 is for 32bits kernels, and x86_64 for 64 bits ones. If you
> generate the configurations using "make ARCH=x86 defconfig" and "make
> ARCH=i386 defconfig", you can easily compare the resulting configurations :
>
> .config from i386_defconfig :
> #
> # Automatically generated file; DO NOT EDIT.
> # Linux/i386 3.17.0-rc1 Kernel Configuration # # CONFIG_64BIT is not set
> CONFIG_X86_32=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y
> CONFIG_OUTPUT_FORMAT="elf32-i386"
> CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
> ...
>
> .config from x86_64_defconfig :
> #
> # Automatically generated file; DO NOT EDIT.
> # Linux/x86 3.17.0-rc1 Kernel Configuration # CONFIG_64BIT=y
> CONFIG_X86_64=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y
> CONFIG_OUTPUT_FORMAT="elf64-x86-64"
> CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
> ...
>
> As you can see, i386 is the 32 bits variant of the x86 architecture. There are of
> course many more differences between these two configurations.
>
> Regards,
>
> Hubert
Thanks all again,
Rajat
> -----Original Message-----
> From: Valdis.Kletnieks at vt.edu [mailto:Valdis.Kletnieks at vt.edu]
> Sent: Tuesday, September 09, 2014 7:28 AM
> To: Matthias Brugger
> Cc: Rajat Jain; linux-newbie at vger.kernel.org; kernelnewbies
> Subject: Re: x86_64_defconfig and i386_defconfig: What is the difference?
>
> On Tue, 09 Sep 2014 16:06:07 +0200, Matthias Brugger said:
>
> > > Can someone tell me if the i386 one is to be used when we want to
> > > build for a 32bit machine and the x86_64 is to be used for 64 bit machine?
> >
> > You can build the kernel with any architecture for any architecture.
> > This is called cross-compiling. The homepage [0] should explain you
> > how to do that.
>
> Right, but you still need to use a .config appropriate for the target machine,
> which is what I think Rajat was asking about.
>
> A defconfig is usually only known verified to boot on a few (possibly one)
> examples of that architecture hardware. For embedded ARM, it may be one
> specific development board or hardware device. For x86, I think they try to
> keep it "will probably kind of sort of boot on generic PC hardware with a
> common distro, but anything fancylike a webcam or better graphics than "vga
> tty emulation" may not work".
>
> A defconfig is pretty much just a proof of concept starting point for an actual
> working config for a given hardware system.
More information about the Kernelnewbies
mailing list