| .. | .. |
|---|
| 32 | 32 | EXTRA_WARNINGS += -Wold-style-definition |
|---|
| 33 | 33 | EXTRA_WARNINGS += -Wpacked |
|---|
| 34 | 34 | EXTRA_WARNINGS += -Wredundant-decls |
|---|
| 35 | | -EXTRA_WARNINGS += -Wshadow |
|---|
| 36 | 35 | EXTRA_WARNINGS += -Wstrict-prototypes |
|---|
| 37 | 36 | EXTRA_WARNINGS += -Wswitch-default |
|---|
| 38 | 37 | EXTRA_WARNINGS += -Wswitch-enum |
|---|
| 39 | 38 | EXTRA_WARNINGS += -Wundef |
|---|
| 40 | 39 | EXTRA_WARNINGS += -Wwrite-strings |
|---|
| 41 | 40 | EXTRA_WARNINGS += -Wformat |
|---|
| 42 | | - |
|---|
| 43 | | -CC_NO_CLANG := $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?) |
|---|
| 44 | 41 | |
|---|
| 45 | 42 | # Makefiles suck: This macro sets a default value of $(2) for the |
|---|
| 46 | 43 | # variable named by $(1), unless the variable has been set by |
|---|
| .. | .. |
|---|
| 53 | 50 | $(eval $(1) = $(2))) |
|---|
| 54 | 51 | endef |
|---|
| 55 | 52 | |
|---|
| 53 | +ifneq ($(LLVM),) |
|---|
| 54 | +$(call allow-override,CC,clang) |
|---|
| 55 | +$(call allow-override,AR,llvm-ar) |
|---|
| 56 | +$(call allow-override,LD,ld.lld) |
|---|
| 57 | +$(call allow-override,CXX,clang++) |
|---|
| 58 | +$(call allow-override,STRIP,llvm-strip) |
|---|
| 59 | +else |
|---|
| 56 | 60 | # Allow setting various cross-compile vars or setting CROSS_COMPILE as a prefix. |
|---|
| 57 | 61 | $(call allow-override,CC,$(CROSS_COMPILE)gcc) |
|---|
| 58 | 62 | $(call allow-override,AR,$(CROSS_COMPILE)ar) |
|---|
| 59 | 63 | $(call allow-override,LD,$(CROSS_COMPILE)ld) |
|---|
| 60 | 64 | $(call allow-override,CXX,$(CROSS_COMPILE)g++) |
|---|
| 61 | 65 | $(call allow-override,STRIP,$(CROSS_COMPILE)strip) |
|---|
| 66 | +endif |
|---|
| 67 | + |
|---|
| 68 | +CC_NO_CLANG := $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?) |
|---|
| 62 | 69 | |
|---|
| 63 | 70 | ifneq ($(LLVM),) |
|---|
| 64 | 71 | HOSTAR ?= llvm-ar |
|---|
| .. | .. |
|---|
| 79 | 86 | # will do for now and keep the above -Wstrict-aliasing=3 in place |
|---|
| 80 | 87 | # in newer systems. |
|---|
| 81 | 88 | # Needed for the __raw_cmpxchg in tools/arch/x86/include/asm/cmpxchg.h |
|---|
| 89 | +# |
|---|
| 90 | +# See https://lkml.org/lkml/2006/11/28/253 and https://gcc.gnu.org/gcc-4.8/changes.html, |
|---|
| 91 | +# that takes into account Linus's comments (search for Wshadow) for the reasoning about |
|---|
| 92 | +# -Wshadow not being interesting before gcc 4.8. |
|---|
| 93 | + |
|---|
| 82 | 94 | ifneq ($(filter 3.%,$(MAKE_VERSION)),) # make-3 |
|---|
| 83 | 95 | EXTRA_WARNINGS += -fno-strict-aliasing |
|---|
| 96 | +EXTRA_WARNINGS += -Wno-shadow |
|---|
| 97 | +else |
|---|
| 98 | +EXTRA_WARNINGS += -Wshadow |
|---|
| 84 | 99 | endif |
|---|
| 85 | 100 | |
|---|
| 86 | 101 | ifneq ($(findstring $(MAKEFLAGS), w),w) |
|---|
| .. | .. |
|---|
| 109 | 124 | ifneq ($(V),1) |
|---|
| 110 | 125 | QUIET_CC = @echo ' CC '$@; |
|---|
| 111 | 126 | QUIET_CC_FPIC = @echo ' CC FPIC '$@; |
|---|
| 127 | + QUIET_CLANG = @echo ' CLANG '$@; |
|---|
| 112 | 128 | QUIET_AR = @echo ' AR '$@; |
|---|
| 113 | 129 | QUIET_LINK = @echo ' LINK '$@; |
|---|
| 114 | 130 | QUIET_MKDIR = @echo ' MKDIR '$@; |
|---|