lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <alpine.DEB.2.00.1212252222450.24528@chino.kir.corp.google.com> Date: Tue, 25 Dec 2012 22:32:01 -0800 (PST) From: David Rientjes <rientjes@...gle.com> To: Ingo Molnar <mingo@...nel.org>, "H. Peter Anvin" <hpa@...or.com>, dwmw2@...radead.org, tglx@...utronix.de, "H. Peter Anvin" <hpa@...ux.intel.com>, David Woodhouse <David.Woodhouse@...el.com> cc: linux-kernel@...r.kernel.org, linux-tip-commits@...r.kernel.org Subject: Re: [tip:x86/build] x86: Default to ARCH= x86 to avoid overriding CONFIG_64BIT On Thu, 20 Dec 2012, tip-bot for David Woodhouse wrote: > diff --git a/Makefile b/Makefile > index 540f7b2..9a07340 100644 > --- a/Makefile > +++ b/Makefile > @@ -165,7 +165,8 @@ export srctree objtree VPATH > # then ARCH is assigned, getting whatever value it gets normally, and > # SUBARCH is subsequently ignored. > > -SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \ > +SUBARCH := $(shell uname -m | sed -e s/i.86/x86/ -e s/x86_64/x86/ \ > + -e s/sun4u/sparc64/ \ > -e s/arm.*/arm/ -e s/sa110/arm/ \ > -e s/s390x/s390/ -e s/parisc64/parisc/ \ > -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \ > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index 46c3bff..9084c7b 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -1,7 +1,7 @@ > # Select 32 or 64 bit > config 64BIT > bool "64-bit kernel" if ARCH = "x86" > - default ARCH = "x86_64" > + default ARCH != "i386" > ---help--- > Say yes to build a 64-bit kernel - formerly known as x86_64 > Say no to build a 32-bit kernel - formerly known as i386 > diff --git a/arch/x86/Makefile b/arch/x86/Makefile > index 05afcca..fa981ca 100644 > --- a/arch/x86/Makefile > +++ b/arch/x86/Makefile > @@ -2,7 +2,11 @@ > > # select defconfig based on actual architecture > ifeq ($(ARCH),x86) > + ifeq ($(shell uname -m),x86_64) > + KBUILD_DEFCONFIG := x86_64_defconfig > + else > KBUILD_DEFCONFIG := i386_defconfig > + endif > else > KBUILD_DEFCONFIG := $(ARCH)_defconfig > endif > diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig > index 5598547..9444708 100644 > --- a/arch/x86/configs/i386_defconfig > +++ b/arch/x86/configs/i386_defconfig > @@ -1,3 +1,4 @@ > +# CONFIG_64BIT is not set > CONFIG_EXPERIMENTAL=y > # CONFIG_LOCALVERSION_AUTO is not set > CONFIG_SYSVIPC=y This creates quite a few build failures on auto-latest: arch/x86/built-in.o: In function `hpet_setup_msi_irq': hpet.c:(.text+0x34638): undefined reference to `arch_setup_hpet_msi' hpet.c:(.text+0x34651): undefined reference to `destroy_irq' arch/x86/built-in.o: In function `hpet_msi_capability_lookup': hpet.c:(.text+0x347ff): undefined reference to `create_irq_nr' arch/x86/built-in.o:(.data+0xd1c): undefined reference to `native_setup_msi_irqs' arch/x86/built-in.o:(.data+0xd20): undefined reference to `native_teardown_msi_irq' drivers/built-in.o: In function `dmar_set_interrupt': (.text+0x89eec0): undefined reference to `create_irq' drivers/built-in.o: In function `dmar_set_interrupt': (.text+0x89ef0b): undefined reference to `arch_setup_dmar_msi' drivers/built-in.o: In function `dmar_set_interrupt': (.text+0x89ef44): undefined reference to `destroy_irq' drivers/built-in.o: In function `free_dmar_iommu': (.text+0x8a6ae8): undefined reference to `destroy_irq' These functions require CONFIG_X86_IO_APIC, which is only possible with X86_64 or X86_32_NON_STANDARD. CONFIG_HPET_TIMER, however, can be enabled with X86_32, and CONFIG_DMAR_TABLE can be enabled with any X86 via CONFIG_INTEL_IOMMU. That said, I didn't try to fix this up because I believe the commit itself is wrong. When I do "make randconfig" and uname -m is x86_64, I expect CONFIG_64BIT to always be set. This commit makes this random for all x86 so that "make randconfig" may result in a 32-bit build. That should be the behavior for "make ARCH=i386 randconfig" but not "make randconfig" on a 64-bit machine. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists