linux/arch/arm
Nick Desaulniers 815f0ddb34 include/linux/compiler*.h: make compiler-*.h mutually exclusive
Commit cafa0010cd ("Raise the minimum required gcc version to 4.6")
recently exposed a brittle part of the build for supporting non-gcc
compilers.

Both Clang and ICC define __GNUC__, __GNUC_MINOR__, and
__GNUC_PATCHLEVEL__ for quick compatibility with code bases that haven't
added compiler specific checks for __clang__ or __INTEL_COMPILER.

This is brittle, as they happened to get compatibility by posing as a
certain version of GCC.  This broke when upgrading the minimal version
of GCC required to build the kernel, to a version above what ICC and
Clang claim to be.

Rather than always including compiler-gcc.h then undefining or
redefining macros in compiler-intel.h or compiler-clang.h, let's
separate out the compiler specific macro definitions into mutually
exclusive headers, do more proper compiler detection, and keep shared
definitions in compiler_types.h.

Fixes: cafa0010cd ("Raise the minimum required gcc version to 4.6")
Reported-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Suggested-by: Eli Friedman <efriedma@codeaurora.org>
Suggested-by: Joe Perches <joe@perches.com>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-08-22 17:31:34 -07:00
..
boot Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
common ARM: Always build secure_cntvoff.S on ARM V7 to fix shmobile !SMP build 2018-06-23 18:26:48 -07:00
configs - New Drivers 2018-08-20 15:38:44 -07:00
crypto crypto: arm/chacha20 - always use vrev for 16-bit rotates 2018-08-03 18:06:05 +08:00
firmware ARM: disable KCOV for trusted foundations code 2018-07-03 17:32:19 -07:00
include KVM/arm updates for 4.19 2018-08-22 14:07:56 +02:00
kernel include/linux/compiler*.h: make compiler-*.h mutually exclusive 2018-08-22 17:31:34 -07:00
kvm KVM: arm: vgic-v3: Add support for ICC_SGI0R and ICC_ASGI1R accesses 2018-08-12 12:06:35 +01:00
lib Merge branches 'fixes', 'misc' and 'spectre' into for-linus 2018-08-13 16:28:50 +01:00
mach-actions
mach-alpine
mach-artpec
mach-asm9260
mach-aspeed
mach-at91 The new and exciting feature this time around is in the clk core. 2018-08-15 21:41:21 -07:00
mach-axxia arch: define the ARCH_DMA_ADDR_T_64BIT config symbol in lib/Kconfig 2018-05-09 06:57:04 +02:00
mach-bcm PCI: controller: Move PCI_DOMAINS selection to arch Kconfig 2018-06-26 15:37:37 -05:00
mach-berlin ARM: berlin: switch to SPDX license identifier 2018-05-24 14:49:09 +08:00
mach-clps711x
mach-cns3xxx
mach-davinci ARM: davinci: board-da850-evm: fix WP pin polarity for MMC/SD 2018-06-26 20:01:29 +05:30
mach-digicolor
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx sound updates for 4.18 2018-06-06 09:08:38 -07:00
mach-exynos ARM: exynos: Define EINT_WAKEUP_MASK registers for S5Pv210 and Exynos5433 2018-07-24 21:50:39 +02:00
mach-footbridge treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
mach-gemini
mach-highbank arch: define the ARCH_DMA_ADDR_T_64BIT config symbol in lib/Kconfig 2018-05-09 06:57:04 +02:00
mach-hisi
mach-imx regulator: gpio: Revert 2018-06-07 14:23:08 +01:00
mach-integrator
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
mach-keystone ARM: keystone: fix platform_domain_notifier array overrun 2018-05-14 09:24:29 -07:00
mach-ks8695 i2c: gpio: move header to platform_data 2018-05-17 16:27:09 +02:00
mach-lpc18xx
mach-lpc32xx
mach-mediatek
mach-meson ARM: meson: merge Kconfig symbol MACH_MESON8B into MACH_MESON8 2018-05-23 10:08:13 -07:00
mach-mmp headers: separate linux/mod_devicetable.h from linux/platform_device.h 2018-07-07 17:52:26 +02:00
mach-moxart
mach-mv78xx0
mach-mvebu
mach-mxs
mach-netx
mach-nomadik
mach-npcm
mach-nspire
mach-omap1 Merge branch 'i2c/for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-06-14 16:21:46 +09:00
mach-omap2 ARM: DRA7/OMAP5: Enable ACTLR[0] (Enable invalidates of BTB) for secondary cores 2018-07-12 03:56:32 -07:00
mach-orion5x
mach-oxnas
mach-picoxcell
mach-prima2
mach-pxa sound updates for 4.19 2018-08-14 14:10:30 -07:00
mach-qcom
mach-realview
mach-rockchip arch: define the ARCH_DMA_ADDR_T_64BIT config symbol in lib/Kconfig 2018-05-09 06:57:04 +02:00
mach-rpc mm: do not initialize TLB stack vma's with vma_init() 2018-08-01 13:43:38 -07:00
mach-s3c24xx Samsung mach/soc changes for v4.18 2018-05-14 13:52:23 -07:00
mach-s3c64xx regulator: gpio: Revert 2018-06-07 14:23:08 +01:00
mach-s5pv210
mach-sa1100 Merge branch 'i2c/for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-06-14 16:21:46 +09:00
mach-shmobile ARM: SoC platform updates 2018-06-11 17:49:09 -07:00
mach-socfpga PCI: controller: Move PCI_DOMAINS selection to arch Kconfig 2018-06-26 15:37:37 -05:00
mach-spear
mach-sti
mach-stm32 ARM: stm32: Don't select DMA unconditionally on STM32MP157C 2018-05-25 15:26:38 -07:00
mach-sunxi ARM: sun8i: smp: Add support for A83T 2018-05-08 15:00:20 +02:00
mach-tango
mach-tegra ARM: SoC platform updates 2018-06-11 17:49:09 -07:00
mach-u300
mach-uniphier
mach-ux500 ARM: ux500: Cut down Kconfig options 2018-05-04 11:02:52 +02:00
mach-versatile
mach-vexpress treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
mach-vt8500
mach-w90x900
mach-zx
mach-zynq
mm kernel/dma: remove unsupported gfp_mask parameter from dma_alloc_from_contiguous() 2018-08-17 16:20:32 -07:00
net ARM: net: bpf: improve 64-bit ALU implementation 2018-07-13 15:26:42 +02:00
nwfpe
oprofile
plat-iop
plat-omap ARM/time: Remove read_boot_clock64() 2018-07-20 00:02:41 +02:00
plat-orion
plat-pxa ARM: pxa: change SSP DMA channels allocation 2018-06-18 21:32:41 +02:00
plat-samsung headers: fix build error in arch/arm/plat-samsung/adc.c, add <linux/mod_devicetable.h> 2018-07-08 15:19:04 +02:00
plat-versatile
probes Updates for v4.19: 2018-08-20 18:32:00 -07:00
tools arm: Wire up restartable sequences system call 2018-06-06 11:58:31 +02:00
vdso arm: port KCOV to arm 2018-06-15 07:55:24 +09:00
vfp Merge branches 'fixes', 'misc' and 'spectre' into for-linus 2018-08-13 16:28:50 +01:00
xen xen: share start flags between PV and PVH 2018-06-19 13:51:00 +02:00
Kconfig Consolidation of Kconfig files by Christoph Hellwig. 2018-08-15 13:05:12 -07:00
Kconfig-nommu
Kconfig.debug Kconfig: consolidate the "Kernel hacking" menu 2018-08-02 08:06:48 +09:00
Makefile Kbuild updates for v4.19 2018-08-15 12:09:03 -07:00