Skip to contentSkip to conversation

next-20160314 - KASAN breaks 'make C=2' build...

DISCUSSION Valdis Kletnieks 3 participants 4 messages Mar 15, 2016

lore
Share & tools
lore
#0 lore raw

This config breaks sparse:

grep KASAN .config
CONFIG_KASAN_SHADOW_OFFSET=0xdffffc0000000000
CONFIG_HAVE_ARCH_KASAN=y
CONFIG_KASAN=y
# CONFIG_KASAN_OUTLINE is not set
CONFIG_KASAN_INLINE=y
CONFIG_TEST_KASAN=m

LANG=C make C=2

  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  CHK     include/generated/bounds.h
  CHK     include/generated/timeconst.h
  CHK     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh

DESCEND objtool
CHECK scripts/mod/empty.c
No such file: asan-stack=1
scripts/Makefile.build:291: recipe for target 'scripts/mod/empty.o' failed make[2]: *** [scripts/mod/empty.o] Error 1 scripts/Makefile.build:440: recipe for target 'scripts/mod' failed make[1]: *** [scripts/mod] Error 2
Makefile:552: recipe for target 'scripts' failed
make: *** [scripts] Error 2

Looks like it's this chunk from scripts/Makefile.kasan:

CFLAGS_KASAN := $(call cc-option, -fsanitize=kernel-address

                -fasan-shadow-offset=$(KASAN_SHADOW_OFFSET) 
                --param asan-stack=1 --param asan-globals=1 
                --param asan-instrumentation-with-call-threshold=$(call_threshold))

4AM is a bad time to figure out who's to blame here....

#1 lore raw

2016-03-15 12:11 GMT+03:00 Valdis Kletnieks <[email protected]>:

Quoted 28 lines

This config breaks sparse:

grep KASAN .config
CONFIG_KASAN_SHADOW_OFFSET=0xdffffc0000000000
CONFIG_HAVE_ARCH_KASAN=y
CONFIG_KASAN=y
# CONFIG_KASAN_OUTLINE is not set
CONFIG_KASAN_INLINE=y
CONFIG_TEST_KASAN=m

LANG=C make C=2

  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  CHK     include/generated/bounds.h
  CHK     include/generated/timeconst.h
  CHK     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh

DESCEND objtool
CHECK scripts/mod/empty.c
No such file: asan-stack=1
scripts/Makefile.build:291: recipe for target 'scripts/mod/empty.o' failed make[2]: *** [scripts/mod/empty.o] Error 1 scripts/Makefile.build:440: recipe for target 'scripts/mod' failed make[1]: *** [scripts/mod] Error 2
Makefile:552: recipe for target 'scripts' failed
make: *** [scripts] Error 2

Quoted 8 lines

Looks like it's this chunk from scripts/Makefile.kasan:

CFLAGS_KASAN := $(call cc-option, -fsanitize=kernel-address

                -fasan-shadow-offset=$(KASAN_SHADOW_OFFSET)
                --param asan-stack=1 --param asan-globals=1
                --param asan-instrumentation-with-call-threshold=$(call_threshold))

4AM is a bad time to figure out who's to blame here....

Update your sparse please. Make sure it has d917662d54ba ("lib.c: skip --param parameters").

#2 lore raw
Quoted 7 lines · Andrey Ryabinin

2016-03-15 12:11 GMT+03:00 Valdis Kletnieks <[email protected]>:

Quoted 3 lines

This config breaks sparse:

4AM is a bad time to figure out who's to blame here....

Update your sparse please. Make sure it has d917662d54ba ("lib.c: skip --param parameters").

And sure enough, sparse built from the git tree works as expected.

Fedora only packaged 0.5.0, which doesn't include the last few dozen commits. And they probably won't update until a sparse maintainer sticks a v0.5.1 tag on it. I suspect that other distros are similar.

Adding Christopher Li to the recipient list - any thoughts?

#3 lore raw
Quoted 6 lines · On Tue, Mar 15, 2016 at 4:19 AM, <[email protected]> wrote:

Fedora only packaged 0.5.0, which doesn't include the last few dozen commits. And they probably won't update until a sparse maintainer sticks a v0.5.1 tag on it. I suspect that other distros are similar.

Adding Christopher Li to the recipient list - any thoughts?

Yes, I should cut a new release long time ago. Let me just do that.

Chris