kbuild: add machine size to CHECKFLAGS

By default, sparse assumes a 64bit machine when compiled on x86-64
and 32bit when compiled on anything else.

This can of course create all sort of problems for the other archs, like
issuing false warnings ('shift too big (32) for type unsigned long'), or
worse, failing to emit legitimate warnings.

Fix this by adding the -m32/-m64 flag, depending on CONFIG_64BIT,
to CHECKFLAGS in the main Makefile (and so for all archs).
Also, remove the now unneeded -m32/-m64 in arch specific Makefiles.

Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
Luc Van Oostenryck 2018-05-30 22:48:38 +02:00 committed by Masahiro Yamada
parent 145167650b
commit 1f2f01b122
9 changed files with 10 additions and 10 deletions

View file

@ -877,6 +877,9 @@ endif
# insure the checker run with the right endianness # insure the checker run with the right endianness
CHECKFLAGS += $(if $(CONFIG_CPU_BIG_ENDIAN),-mbig-endian,-mlittle-endian) CHECKFLAGS += $(if $(CONFIG_CPU_BIG_ENDIAN),-mbig-endian,-mlittle-endian)
# the checker needs the correct machine size
CHECKFLAGS += $(if $(CONFIG_64BIT),-m64,-m32)
# Default kernel image to build when no specific target is given. # Default kernel image to build when no specific target is given.
# KBUILD_IMAGE may be overruled on the command line or # KBUILD_IMAGE may be overruled on the command line or
# set in the environment # set in the environment

View file

@ -11,7 +11,7 @@
NM := $(NM) -B NM := $(NM) -B
LDFLAGS_vmlinux := -static -N #-relax LDFLAGS_vmlinux := -static -N #-relax
CHECKFLAGS += -D__alpha__ -m64 CHECKFLAGS += -D__alpha__
cflags-y := -pipe -mno-fp-regs -ffixed-8 cflags-y := -pipe -mno-fp-regs -ffixed-8
cflags-y += $(call cc-option, -fno-jump-tables) cflags-y += $(call cc-option, -fno-jump-tables)

View file

@ -135,7 +135,7 @@ endif
KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm
KBUILD_AFLAGS +=$(CFLAGS_ABI) $(AFLAGS_ISA) $(arch-y) $(tune-y) -include asm/unified.h -msoft-float KBUILD_AFLAGS +=$(CFLAGS_ABI) $(AFLAGS_ISA) $(arch-y) $(tune-y) -include asm/unified.h -msoft-float
CHECKFLAGS += -D__arm__ -m32 CHECKFLAGS += -D__arm__
#Default value #Default value
head-y := arch/arm/kernel/head$(MMUEXT).o head-y := arch/arm/kernel/head$(MMUEXT).o

View file

@ -78,7 +78,7 @@ LDFLAGS += -maarch64linux
UTS_MACHINE := aarch64 UTS_MACHINE := aarch64
endif endif
CHECKFLAGS += -D__aarch64__ -m64 CHECKFLAGS += -D__aarch64__
ifeq ($(CONFIG_ARM64_MODULE_PLTS),y) ifeq ($(CONFIG_ARM64_MODULE_PLTS),y)
KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/arm64/kernel/module.lds KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/arm64/kernel/module.lds

View file

@ -18,7 +18,7 @@ READELF := $(CROSS_COMPILE)readelf
export AWK export AWK
CHECKFLAGS += -m64 -D__ia64=1 -D__ia64__=1 -D_LP64 -D__LP64__ CHECKFLAGS += -D__ia64=1 -D__ia64__=1 -D_LP64 -D__LP64__
OBJCOPYFLAGS := --strip-all OBJCOPYFLAGS := --strip-all
LDFLAGS_vmlinux := -static LDFLAGS_vmlinux := -static

View file

@ -309,9 +309,6 @@ ifdef CONFIG_MIPS
CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -x c /dev/null | \ CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -x c /dev/null | \
egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \ egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \
sed -e "s/^\#define /-D'/" -e "s/ /'='/" -e "s/$$/'/" -e 's/\$$/&&/g') sed -e "s/^\#define /-D'/" -e "s/ /'='/" -e "s/$$/'/" -e 's/\$$/&&/g')
ifdef CONFIG_64BIT
CHECKFLAGS += -m64
endif
endif endif
OBJCOPYFLAGS += --remove-section=.reginfo OBJCOPYFLAGS += --remove-section=.reginfo

View file

@ -28,7 +28,7 @@ export LIBGCC
ifdef CONFIG_64BIT ifdef CONFIG_64BIT
UTS_MACHINE := parisc64 UTS_MACHINE := parisc64
CHECKFLAGS += -D__LP64__=1 -m64 CHECKFLAGS += -D__LP64__=1
CC_ARCHES = hppa64 CC_ARCHES = hppa64
LD_BFD := elf64-hppa-linux LD_BFD := elf64-hppa-linux
else # 32-bit else # 32-bit

View file

@ -39,7 +39,7 @@ else
# sparc64 # sparc64
# #
CHECKFLAGS += -D__sparc__ -D__sparc_v9__ -D__arch64__ -m64 CHECKFLAGS += -D__sparc__ -D__sparc_v9__ -D__arch64__
LDFLAGS := -m elf64_sparc LDFLAGS := -m elf64_sparc
export BITS := 64 export BITS := 64
UTS_MACHINE := sparc64 UTS_MACHINE := sparc64

View file

@ -94,7 +94,7 @@ ifeq ($(CONFIG_X86_32),y)
else else
BITS := 64 BITS := 64
UTS_MACHINE := x86_64 UTS_MACHINE := x86_64
CHECKFLAGS += -D__x86_64__ -m64 CHECKFLAGS += -D__x86_64__
biarch := -m64 biarch := -m64
KBUILD_AFLAGS += -m64 KBUILD_AFLAGS += -m64