kernel_optimize_test/drivers
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
..
accessibility
acpi More ACPI updates for 4.19-rc1 2018-08-22 07:44:50 -07:00
amba
android
ata Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
atm
auxdisplay Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
base Driver core patches for 4.19-rc1 2018-08-18 11:44:53 -07:00
bcma
block for-4.19/post-20180822 2018-08-22 13:38:05 -07:00
bluetooth Bluetooth: mediatek: pass correct size to h4_recv_buf() 2018-08-13 15:59:39 +02:00
bus VLA leftovers pull summary: 2018-08-17 10:40:09 -07:00
cdrom
char RTC for 4.19 2018-08-20 16:30:27 -07:00
clk The new and exciting feature this time around is in the clk core. 2018-08-15 21:41:21 -07:00
clocksource RISC-V Updates for the 4.19 Merge Window 2018-08-19 09:56:38 -07:00
connector
cpufreq More power management updates for 4.19-rc1 2018-08-22 07:42:36 -07:00
cpuidle More power management updates for 4.19-rc1 2018-08-22 07:42:36 -07:00
crypto Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
dax dax: remove VM_MIXEDMAP for fsdax and device dax 2018-08-17 16:20:27 -07:00
dca
devfreq Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
dio
dma DMAengine updates for v4.19-rc1 2018-08-18 15:55:59 -07:00
dma-buf
edac EDAC: Add missing MEM_LRDDR4 entry in edac_mem_types[] 2018-08-17 15:13:34 +02:00
eisa
extcon
firewire firewire: use 64-bit time_t based interfaces 2018-08-17 16:20:27 -07:00
firmware module: allow symbol exports to be disabled 2018-08-22 10:52:47 -07:00
fmc
fpga
fsi
gnss
gpio - New Drivers 2018-08-20 15:38:44 -07:00
gpu include/linux/compiler*.h: make compiler-*.h mutually exclusive 2018-08-22 17:31:34 -07:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2018-08-20 15:59:01 -07:00
hsi
hv
hwmon Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
hwspinlock
hwtracing
i2c Merge branch 'i2c/for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-08-21 17:40:46 -07:00
ide Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide 2018-08-22 07:40:33 -07:00
idle
iio Merge branch 'i2c/for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-08-21 17:40:46 -07:00
infiniband mm, oom: distinguish blockable mode for mmu notifiers 2018-08-22 10:52:44 -07:00
input Merge branch 'i2c/for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-08-21 17:40:46 -07:00
iommu Driver core patches for 4.19-rc1 2018-08-18 11:44:53 -07:00
ipack
irqchip Xtensa improvements for v4.19: 2018-08-22 14:04:41 -07:00
isdn isdn: Disable IIOCDBGVAR 2018-08-16 12:26:24 -07:00
leds
lightnvm
macintosh
mailbox mailbox: Add support for i.MX messaging unit 2018-08-15 09:53:07 +05:30
mcb
md for-4.19/post-20180822 2018-08-22 13:38:05 -07:00
media Merge branch 'i2c/for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-08-21 17:40:46 -07:00
memory Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
memstick
message
mfd Merge branch 'i2c/for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-08-21 17:40:46 -07:00
misc Merge branch 'akpm' (patches from Andrew) 2018-08-22 12:34:08 -07:00
mmc
mtd Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
mux
net Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2018-08-21 13:47:29 -07:00
nfc
ntb
nubus
nvdimm
nvme Merge branch 'linus/master' into rdma.git for-next 2018-08-16 14:21:29 -06:00
nvmem
of Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-08-15 15:04:25 -07:00
opp
oprofile
parisc
parport Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
pci Merge branch 'akpm' (patches from Andrew) 2018-08-22 12:34:08 -07:00
pcmcia pcmcia: remove long deprecated pcmcia_request_exclusive_irq() function 2018-08-18 12:30:42 -07:00
perf Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
phy
pinctrl - New Drivers 2018-08-20 15:38:44 -07:00
platform platform-drivers-x86 for v4.19-1 2018-08-22 14:14:15 -07:00
pnp
power power supply and reset changes for the v4.19 series 2018-08-21 18:06:27 -07:00
powercap
pps
ps3
ptp Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
pwm
rapidio drivers/rapidio/devices/rio_mport_cdev.c: remove redundant pointer md 2018-08-22 10:52:51 -07:00
ras
regulator - New Drivers 2018-08-20 15:38:44 -07:00
remoteproc remoteproc/davinci: use the reset framework 2018-08-16 17:39:55 -07:00
reset
rpmsg
rtc RTC for 4.19 2018-08-20 16:30:27 -07:00
s390 TTY/Serial driver patches for 4.19-rc1 2018-08-18 10:50:41 -07:00
sbus
scsi Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
sfi
sh
siox
slimbus
sn
soc remoteproc updates for v4.19 2018-08-18 16:42:04 -07:00
soundwire
spi hwspinlock updates for v4.19 2018-08-18 16:45:27 -07:00
spmi
ssb
staging Staging/IIO patches for 4.19-rc1 2018-08-18 11:00:00 -07:00
target SCSI misc on 20180815 2018-08-15 22:06:26 -07:00
tc
tee
thermal Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal 2018-08-16 10:21:18 -07:00
thunderbolt
tty Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2018-08-21 13:47:29 -07:00
uio Char/Misc fix for 4.19-rc1 2018-08-19 09:30:44 -07:00
usb Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
uwb
vfio powerpc updates for 4.19 2018-08-17 11:32:50 -07:00
vhost SCSI misc on 20180815 2018-08-15 22:06:26 -07:00
video - Core Frameworks 2018-08-20 15:41:37 -07:00
virt
virtio virtio: Make vp_set_vq_affinity() take a mask. 2018-08-11 12:02:18 -07:00
visorbus
vlynq
vme
w1 power supply and reset changes for the v4.19 series 2018-08-21 18:06:27 -07:00
watchdog include/linux/compiler*.h: make compiler-*.h mutually exclusive 2018-08-22 17:31:34 -07:00
xen mm, oom: distinguish blockable mode for mmu notifiers 2018-08-22 10:52:44 -07:00
zorro
Kconfig
Makefile Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00